PLUS会员

CTA多因子研究系列探索--期限结构因子

由catalyst创建,最终由qxiao 被浏览 250 用户

本文内容已经过期,不再适合平台最新版本,请查看以下最新内容,作为参考资料学习。

\

旧版声明

本文为旧版实现,仅供学习参考。

https://bigquant.com/wiki/doc/demos-ecdRvuM1TU


\

引言

期限结构因子是商品中最有特色的因子之一。在经典的商品模型中,期限结构,动量,市场构成了商品的经典模型。在本文中,我们通过测试也发现了期限结构是一个有着长期溢价的因子。从原理来看,期限结构的变化往往反应的不同交易者对后市商品价格涨跌的预期。关于对期限结构的解读,市面上一种比较流行的说法是库存仓储理论。根据该理论,期限结构中往往蕴含着供需关系的信息和市场的库存水平的信息。

本文将从期限结构的原理出发,从因子构造,因子分析,超参测试,回测结果四个方面对该因子进行测试。

\

因子构建

通常来说,我们将期限结构分为两种类型:Backward和Contango.其中Backward可以简单理解为期货远期的价格比近期的价格便宜,而Contango可以理解为期货远期的价格比近期价格更贵。当出现Backward时,往往预示着供需偏紧,这时候涨的意愿会大一些(当然这也不是绝对的,和品种所处的库存周期也是有关系的),另一方面,出现Backward的品种也反映了持有远月合约可以获得一定的溢价,因子Backward的结构下也更适合去做多。当出现Contango时,预示着供需较为松散,这时候价格不涨的可能性较大(不一定意味着下跌)。

在本文中,我们尝试构建了两个因子。

因子一:

使用各合约与近月之间的价差的平均值来表征期货的期限结构是Backward还是Contango,具体构建公式如下:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

其中CNt为将合约按照到期日排序的第N个合约,C1t即为近月合约;MNt 为到期日。在后文中记为ts_mean。

因子二:

使用主力合约与近月合约之间的价差来表征期限结构,在后文中记为ts2。

\

因子分析

首先需要明确的是测试环境。所有的测试时间均为2010年1月1日到2022年6月30日。测试使用的回测平台为BigQuant。仓位和杠杆方面,不使用杠杆且仓位使用为100%。使用的调仓周期均为5天。样本空间为品种的成交量大于100000的品种。

\

因子的IC统计

下图是ts_mean累计IC的表现:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}从因子IC统计来看,该因子的IC均值的绝对值为0.0199。该因子自身携带有基本面的供需信息,在CTA策略中也起到了较好的作用。


下图是ts2累计IC的表现:

{w:100}{w:100}{w:100}{w:100}{w:100}

因子分组测试

我们对因子进行了分组测试:我们将标的根据因子值大小的分位数分为了5组。其中top0表示因子值最小的一组,top4表示因子值最大的一组。LS表示top0 - top4的表现情况。

下图是ts_mean因子分组测试结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}下图是ts2因子分组测试结果:

{w:100}{w:100}{w:100}{w:100}{w:100}

\

超参测试

接着我们对动量因子进行了超参测试。分别从持仓周期和因子的回看周期这两个角度进行测试。下表中横轴为持仓周期,纵轴为回看周期。表中的值对应的是策略在不同参数下的年化收益率(%)。

下表是ts_mean的超参测试结果:

{w:100}{w:100}

从结果来看,该因子做均值并没有取得较好的效果,在回看周期为1的时候就表现较好,且该因子对持仓周期并不是很敏感。相反,相应的延长持仓周期到一个月策略会表现较好。


下表示ts2的超参测试结果:

{w:100}{w:100}{w:100}得到的结果和ts_mean基本一致。都是在回看周期为1的时候表现较好,且对持仓周期不是很敏感。

\

回测结果

更深一步的,我们仍然保持一周的调仓频率,选取更好的回看时长进行回测。回测采用多空对冲的方式,且多空品种数量为5,采用绝对数量的形式。并且我们会对回测结果每年的收益情况进行统计,形成了如下所示的回测曲线和统计结果。

下图是ts_mean的回测结果以及每年的收益风险统计结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}从测试结果来看,该因子整体的收益率为142.15%,年化收益率为7.31%,最大回撤为18.44%,策略收益波动率为7.81%。整体来看,该因子有不俗的表现。

我们按照年去统计,该策略在2010年到2015年都录得了正收益且2010,2013,2014三年的夏普在3.5左右。在2016年以及以后收益开始变得不稳定,在2022年年化收益率为33.8%,夏普为2.73. 这是由多方面引起的,一方面是市场CTA策略使用期限结构因子的策略越来越多,造成了在早些时间期限结构因子有较好的表现,而最后收益变得不稳定。但是这并不能说明该因子失效,因为该因子还是能表征基本面的变化,只是市场因子可能越来越拥挤了,需要用更精确的因子或者拉长持仓时间才能换取收益。另一方面,期限结构因子与库存周期息息相关,因此期限结构因子即使在2010年至2015年这段时间,其收益率也呈现周期变化,其表现时间好的时间往往是供需紧张的时间段。


下图是ts2的回测结果以及每年的收益风险统计结果:

{w:100}{w:100}{w:100}{w:100} {w:100}{w:100}{w:100}{w:100}该回测结果和ts_mean类似,都取得了不错的效果。

\

总结

我们通过测试期限结构因子,发现该因子背后逻辑有较强的基本面逻辑支撑。我们对期限结构因子进行回测,也取得了单因子夏普0.6的较好结果。

\

策略源码

{link}