上午和老板开了个小会。老板提到了各个行业可以考虑的数据来源和基本面分析方向,还是有不少收获的。也许我最终筛选出来的因子有点太多,而且过于集中在少数的角度。比如,一个品种的基本面景气度本质上就是由供给和需求来决定,那么不妨将因子分成供给和需求两个方面,而需求又可以归纳为库存和下游产业对于品种的需求。通过这样的方式将基本面的分析分解为几个部分,且每个部分精选最重要的几个因子,也许就会有更好的效果。

其实现在策略开发中最令我头疼的环节就是回测。诚如 mentor 所言,不同的回测框架在细节的处理上有所不同,因此所返回的结果也会有所不同。可能正是因为这个原因,在我这里表现很差的因子在 mentor 的框架里却跑出了相对稳健的收益。而目前为止所有择时策略都没法在公司的回测系统当中使用,这使得标准实际上无法统一。而我手里又没有现成好用的回测框架,因此只能一遍又一遍地修改回测函数,试图将结果调整得与 mentor 的更像一点。我想这真的是挺大的一个问题,需要花费时间去解决。

下班前冷静下来仔细观察了一下因子,意识到我的回测生成持仓逻辑似乎是有问题的。按照我的逻辑,对于这些月频数据,只要数值大于上一期就做多,小于上一期就做空;而按照 mentor 的逻辑,只要标准化后的数值大于 0 就做多,小于0 就做空。无论是哪一个,我想都并不完善:

  • 我的方法:换手率相对较高,但是由于仅评价临近的两月数值差异,可能过于敏感——这些因子可能在反映大趋势上的能力大于反映短期波动的能力。
  • mentor 的方法:不能真正响应趋势或者短期波动,仅能反映当前因子值在全区间内的相对位置(而且实际上使用了未来数据)。另一个问题是,这样的方法可能带来非常低的换手率。

为了折中这两种方法,我考虑尝试此前实习所使用的方法,即观察当前数值与过去一段时间内(比如一年)的平均值相对大小,用来作为当前的因子值。

我想,除了这一点以外,也许还有很多细节需要留意,比如当月值可以处理成当月同比和累计同比、如何筛选有效的基本面数据等等。真是路漫漫其修远兮。

今天的状态挺一般的,注意力很难集中,也有点烦躁,看着上周写的代码不知道改如何修改。也许还不如摈弃此前的代码,重新写一份,不然越看越恼火。