下午 13:00 准时来到办公室,坐下开始处理昨天 mentor 让我做的任务,也就是将策略整理成因子。这格式一看,好像跟之前舍友展示的因子框架差不多,都是对于每个因子设计一个类,然后在类中完成结构化的数据读取、策略逻辑实现和返回值。不同点可能在于,mentor 给的代码似乎需要直接返回持仓(而不是因子),从这个角度来看,也许 mentor 的这个因子系统没有对大量因子进行组合优化的环节,而是一个因子就对应一个最终的策略。不管怎样,这些框架的思路都给人以灵感。

下午提交了代码之后收到一个重要的任务:潜入楼上的下午茶区域,为办公室跑腿带回美味的甜点。谁知这次下午茶是交行专门为推销信用卡而准备的,我一上楼就被重重包围,不断被推销员的话术淹没。我逃出重围,拿出盘子开始装甜点,这时又被叫停,原来是嫌我拿得太多了。我晓之以理、动之以情,总算顺利将甜点带回了办公室。吃了两个有青提的糕点,味道还不错。

完事了继续开干回测框架,目前依然在 Position 类攻坚。由于我给这个类设置了相对灵活的参数,因此对于参数的处理方式变得十分复杂。为了以不同的方式通过输入的因子值来选择多空的品种,我设计了三个模式,包括:

  • abs:按照因子绝对数值多空
  • rank:按因子值排序选择前后一定具体排名的品种多空
  • quantile:按因子值排序选择前后一定比例的品种多空

而对于每一模式,都可以通过直接输入数值或者文本来输入参数。比如,如果要按因子值排序,选择前 3-5 名的品种做多,后 5-8 名的品种做空,那么就可以输入 "l:3~5_s:5~8" 这样的参数来实现。

这样的灵活的参数输入方式为合法性检查和参数解析带来比较大的压力,以至于我到目前为止大部分时间仍旧在处理这一件事情,过程相当头大。

话说回来,虽然 mentor 让我先读一读有色与黑色对冲策略的研报,但是现在还一篇都没读。看来实习工作好像有点懈怠,必须警惕。