距离职仅剩最后几日了,三个月的时间过得真快。

最后的时间里,带教没有再给我安排策略研究的工作,而是让我对数据再作一番筛选,算是用任务填充一下离职前的工作空窗。但我心猿意马,已经在考虑下一段实习的投递,因此大部分时间无心工作,转而刷了十几道 LeetCode 题。

既然如此,这几日的实习日记也就不写了,不如好好总结一下这段时间的经历与思考,复盘一下成功与失败的经验。平时产生的想法总是零零散散,因此这篇文章也许会写得慢一些,并时不时增添新的内容。

这段时间,发生了什么?

面试与 Offer

三个月以来,我在一家期货公司担任量化投研实习生。进入这家公司的经历很有趣,当时我正被上一家公司裁掉,一股脑投了几十份简历,回应的公司当然也寥寥无几。接到这家期货公司的电话时,面试官完全没有问那些典型的量化面试题,而是深度追问了我过往的实习项目,并确认了一下我的代码水平。

这家公司就这么发了 offer。

我做的事情

入职以后,我花了三周左右的时间,专门负责寻找和整理数据。由于我将会主要开展基本面量化研究,因此对数据的发现和筛选就极为重要。最初,我主要对黑色板块进行需求分析,因此我对照着研报,整理了数百条黑色品种下游行业的基本面指标,包括产量、销量、开工率等等。

数据整理完成后,我便开始对黑色板块整体进行择时研究。这一部分对我来说是进度最慢、最没有思路的环节。由于带教倾向于让我自己探索研究,因此没有给我指定很明确的方向。而我彼时对于期货投研毫无概念,故而全无思路,只能就相关性作一些盲目的分析,最后选取几个看似不错的数据进行简单的回测。可以想见,这样做的效果非常差——尽管我的回测净值曲线能够在训练集中高歌猛进,但是一旦进入测试集就一落千丈。毫无疑问,这意味着严重的过拟合。这段时间里我相当郁闷,进展也不足。由于公司开发的回测框架远远不能满足我的需求,我还花了不少时间自己写了一份回测框架(并一直在使用)。这个自研的回测框架相比公司的框架性能提升了百倍不止。

后来,在一次与带教的深入讨论后,我开始采取更加精细化的数据处理方式:挑选我认为有经济逻辑的数据,分别一个个作滞后、移动平均、时序排序、差分等处理,再对黑色板块价格指数进行回测。一通测试之后,选出几个效果较好的指标进行简单线性合成,最后再针对某些年份的回撤进行具体的处理。处理完效果很不错,无论是本地回测还是用公司的框架回测,都能得到大于 1 的夏普。

黑色板块的择时因子提交后,我又花了一周时间整理有色板块的下游行业基本面数据,但是最后并没有使用这些数据,而是转而做了仓单因子和期限结构因子的研究。这两个因子的研究相对就简单多了,只需要找到一两篇合适的研报照猫画虎,再按照自己的理解修正一下,基本就能得到不错的结果。这两个因子的研究过程大概持续了两三周。

回头来看,这三个月来提交的工作成果其实并不很多。想来,大部分时间是消耗在了与研究没有直接关联的环节上,比如开发回测框架、折腾公司的回测框架、找数据等等;而即使是在研究上,似乎也常常在没有头绪的混沌中内耗而毫无进展。因此总体来说,这不是一段高效产出、成果丰硕的实习。

基本面量化研究的特征

还记得上一段实习面试的时候,面试官曾问我:基本面量化有什么困难?当时我说不出什么所以然,但是现在有了一些新的想法:

  • 数据的频率与滞后性。基本面数据往往频率很低。我所用来作基本面分析的数据,几乎都是月频或更低频的数据。这样的发布频率必然导致回测样本较小,比如十年内最多提供 120 个调仓信号,十分容易过拟合。而基本面发生改变往往不会立即对合约价格产生影响,而是需要将影响慢慢传导到价格上。这样的传导过程有快有慢,同样给策略研究带来了难度。
  • 基本面印象因素的广泛性。从较大的时间尺度来看,商品合约的价格的影响因素非常多。从宏观的经济周期到中观的供需关系、库存、预期、政策等因素,再到短期的情绪、套利行为,一个单一的基本面指标很难对某一商品的价格具有很强的相关性。而又由于上述的样本小的原因,没有办法在足够长期的视角下评判一个指标对于价格是真的会产生影响还是仅仅存在相关性。

我想,基本面研究对我而言最大的好处在于,不苛求很底层的编程技术,也不需要对机器学习和神经网络这些工具精通,但是需要有比较好的市场逻辑观点,而这恰恰是与我的经历相符合的。

关于接下来的计划

当然是继续投递下一份实习了。面对当今的市场行情,实习经历似乎多少都不够。

对于下一份实习的方向,我其实没有什么具体的想法。做 CTA 很好,但是我也愿意尝试不同的路径:股票、数字货币、固收;高频、中频、低频;因子、规则、技术指标;机器学习、手搓因子、自动挖掘,我目前愿意尝试不同的实习方向。我觉得,不论是什么细分领域的实习,都能够为我整体知识技能体系的构建有所贡献。有时候人容易陷入抉择的内耗中,但与其犹豫不决,不如先动手做做看。我相信,前进总比停滞要好。