查看原文
其他

如何构建连续的期货价格序列?

刀疤连 Chihiro Quantitative Research 2022-05-14

感谢李洋、李增海和刘洋溢对本文的建议,感谢Tushare团队提供高质量的期货数据。点击原文可阅读pdf版本,欢迎分享和转载。

【摘要】本文介绍了6种常见的连续期货价格序列构造方式,并讨论了它们的优势和劣势。接着设计了一个通用的连续期货价格方案——千寻期货品种收益率指数,从期货上市第一天进行编制,包括全部商品期货和金融期货。最后介绍了该收益率指数的两个应用场景。

1.背景

最近几年,随着A股市场持续低迷,一些另类投资方式开始暂露头角,其中CTA可以说是最耀眼的那一个。从智道金服管理期货指数[1]可以看到,除了17年稍微逊色以外,在其他年份年年收红,展现出极其诱人的获利能力;和股票投资相比,两者走势几乎不相关,具有极强的分散作用[2]

图1 智道金服CTA策略和股票策略指数

数据来源:智道金服,CQR

随着CTA投资的流行,越来越多的优秀研究人员关注这个方向,准备在这个领域大展身手。研究的第一步便是准备数据,首当其冲便是期货价格数据。和股票不大一样,一个期货品种往往同时存在多个合约,每个合约都有高、开、低、收、成交量和持仓量,不同合约走势相似但幅度不同。如何计算每个品种的价格变化趋势,如何衡量每个品种的波动水平,需要一个合理可靠的价格序列。

本文试图介绍各类期货价格序列的构造方法和优劣,然后提出一个通用的连续期货价格指数框架。接下来内容包括,第2部分介绍6种价格序列的构造方法并进行比较;第3部分介绍通用的连续期货价格指数框架——千寻期货品种收益率指数;第4部分展示了该价格指数的应用场景;第5部分总结。

2.常用方法

期货投资和研究中,一般将持仓量最大的合约称为主力合约,主力的远月合约中持仓量最大的合约称为次主力合约。按照换月时是否处理跳空及如何处理跳空,可以分为主力合约拼接法、合约加权法、向前加减调整法、向后加减调整法、向前比例调整法和向后比例调整法共6种方式。

2.1主力合约拼接

在每个交易日,确定持仓量最大的合约为主力合约,其行情即为当前该品种的代表。随着交割月的临近,主力合约持仓量逐步下降,次主力合约持仓量逐步上升,当次主力合约持仓量超过主力时触发换月,则在下一个交易日次主力切换为主力,该品种的价格由新主力合约的价格代表。目前主流的期货行情数据商文华财经,其主力连续本质上便是采用的这个方案。

主力合约拼接序列在构造上比较简单,其最大的缺陷是没有考虑换月时两个合约的价格差,导致出现跳空。如图2所示,焦煤在2018/4/10的主力合约为jm1805,该交易日jm1809持仓量超过jm1805达到换月条件,此时主力合约切为jm1809。由于两个合约收盘价格之间出现了缺口,导致主力拼接序列看起来并不连续[3]

图2 焦煤主力合约拼接

数据来源:Tushare,CQR

另外,利用主力合约拼接序列计算的收益率在长期并不等于投资者的真实收益率。考虑一个长期远月升水的品种,其远月合约价格往往大于近月合约,呈现出contango的状态[4]。其主力连续合约序列存在较多的正向跳空(次主力大于主力),虽然该序列看起来收益较高,但投资者并不能真正攫取得到。以苹果期货为例,见图3,其于2017/12/25上市后经历了3次主力变更,其中后两次出现了较大的跳高缺口,持有多头的投资者并不能从这些跳高中获益。真实的情形是,投资者将旧主力合约多头持仓按旧主力合约价格平掉,同时以新主力合约价格建立新的多头仓位。这种情况下,多头投资者长期真实收益要小于利用主力合约拼接序列计算的收益。

图3 苹果期货主力合约拼接序列

数据来源:Tushare,CQR

2.2合约加权序列

既然主力连续合约存在跳空不连续,一个替代方案便是合约加权价格。在每个交易日,将品种所有合约按照其流动性进行加权。这里流动性[5]一般用持仓量度量,主力合约的持仓量最大权重最高,当交割月逐渐来临,其权重开始慢慢降低,次主力合约的权重逐步增加,直到次主力变为主力占据主导。

合约加权序列不存在跳空,走势看起来比较平稳,能有效反应期货品种的价格走势,其中最具代表的就是wind编制的商品品种指数[6]和交易开拓者编制的000指数[7]。图4展示了wind苹果期货指数的走势,可以看出,和主力连续合约相比更加平稳光滑,完全没有缺口。

图4 苹果合约加权连续价格

数据来源:Wind,CQR

合约加权序列用来跟踪期货品种的价格走势和波动情况问题不大,用其进行回测度量收益可能并不恰当。首先,它是一个加权价格,不是一个真实的交易标的,实际交易中不可能同时持有一个品种的所有合约;其次,由于流动性的变化权重也不断变化,每日做再平衡(rebalance)也不现实。

2.3向后和向前加减调整

另外一组解决方案是向后或向前加减缺口幅度。

向后加减法,即保持当前主力合约的价格水平不变,将旧主力合约的价格按照缺口幅度调整到当前水平,其中缺口等于新合约价格减去旧合约价格。以苹果期货为例,假如当前主力合约为AP905,前一个主力为AP901,AP901之前是AP810,AP810之前是AP805,旧主力与当前主力的缺口累计分别为794、1535和1294,那么调整规则为:AP901合约的所有价格加794,AP810合约的所有价格加1535,AP805的所有价格加1294。图5展示了苹果期货向后加减法和主力合约拼接法的差异,可以看到向后加减调整确实能消除缺口带来的跳空,起到平滑序列的作用。

图5 向后加减调整法

数据来源:Tushare,CQR

向前加减法和向后加减法类似,保持期货品种第一个主力合约价格不变,将新的主力合约按照缺口幅度调整到旧合约水平。同样以苹果期货为例,其上市后第一个主力为AP805,后一个主力AP810和AP805的缺口为-241,AP901与AP805的累计缺口为500,AP905与AP805的累计缺口为1294。那么调整规则为:AP810合约所有价格增加241,AP901合约的所有价格减少500,AP905合约的所有价格减少1294。图6展示了向前加减调整法和主力拼接法的对比,可以看到向前加减调整法确实消除了跳空,完美解决了缺口问题。

图6 向前加减调整法

数据来源:Tushare,CQR

向后加减调整法通过调整历史主力合约价格,能保证当前合约价格水平不变,每次有新的主力合约产生时所有历史价格需要重算,维护起来比较麻烦;另外,品种持续下跌或通胀紧缩的环境中,当前主力和历史主力缺口可能较大,导致向后调整产生负值[8]。向前调整法无需每次重新计算历史价格,但最新调整序列值和最新主力合约价格存在差异;在品种持续上涨或通货膨胀的环境中,当前主力和初始主力缺口可能比较大,导致向前调整产生负值。

两个加减调整序列解决了主力合约拼接存在缺口的问题,但仍然不能用来计算投资者真实收益。接下来介绍比例调整法,能同时解决这两个问题。

2.4向前和向后比例调整

在调整换月缺口时考虑主力和次主力之间的比值而不是差值,即为比例调整法。按照调整的方向,也可以分为向前和向后两种方案。

向后比例法,保持最新主力合约价格不变,将历史主力价格按照缺口比例调整到当前水平,其中比例为新合约价格除以旧合约价格。以苹果为例,假设当前主力为AP905,AP901与AP905的比例为1.069,AP810与AP905的累计比例为1.153,AP805与AP905的累计比例为1.115。那么调整规则为:AP901合约的所有价格乘以1.069,AP810合约的所有价格乘以1.153,AP805的所有价格乘以1.115。图7展示了苹果期货向后比例法和主力合约拼接法的差异,可以看到向后比例法确实在保持当前主力合约价格水平不变的情况下,对换月缺口进行了修复。

图7 向后比例调整法

数据来源:Tushare,CQR

向前比例法,保持期货品种上市后第一个合约价格水平不变,将最新的主力合约价格按照缺口比例进行调整。上面的例子中,第一个主力合约为AP805,AP810和AP805的比例为0.967,AP901与AP805的比例为1.043,AP905与AP805的比例为1.115,那么调整规则为:AP810合约的所有价格除以0.967,AP901合约的所有价格除以1.043,AP905合约的所有价格除以1.115。图8展示了向前比例法和主力拼接法的比较,向前比例法同样能很好解决缺口的问题。

图8 向前比例调整法

数据来源:Tushare,CQR

两种比例法计算的连续价格序列除了能够保证序列的平滑,还能用来度量投资者的真实收益情况。其中向后比例法在每次主力合约改变后,都需要重新计算历史序列,维护起来并不友好;而向前比例法只需要动态跟踪合约换月情况,新主力的产生不影响历史数据计算,下一节设计通用框架时采用这种方法。

3.通用框架

3.1设计初衷

目前提供提供连续期货价格数据的机构比较多,比较有代表性的有wind资讯、交易开拓者和南华期货。Wind和交易开拓者期货设计的期货指数用来追踪品种走势和计算策略信号完全没有问题,但用来计算策略表现并不准确。南华收益率指数是本质上使用了向前比例法,能精确反映投资持有主力合约的收益情况,在业界口碑不错;缺点是数据起点是2004年7月[9],无法做更长时间段的研究;另外,南华期货只考虑了商品期货,如果想要做金融期货的研究却无从下手。

因此,在梳理了各类连续期货价格计算方法后,借鉴南华期货收益率指数的编制思路,采用向前比例法,下面试图设计一个全品种全历史的编制方案。为了更好便于区分和引用,将其命名为千寻期货品种收益率指数(Chihiro Futures Return Index)[10]

3.2具体规则

对于每一个商品期货[11]和国债期货,将其上市第一天设为基期[12],基点为1000点。定义持仓量最大的合约为主力(main),主力合约的远月合约中持仓量最大的合约为次主力(vice)。那么收益率指数的计算按下列过程和规则:

1)在非换月日,主力合约的涨跌即为期货收益率指数的涨跌,收益率指数的计算公式为:

2)如果次主力合约持仓量连续3天大于主力合约持仓量,则触发换月条件,将主力合约分3天均匀换到次主力合约,如图9所示。

图9 千寻期货品种收益率指数换月流程

数据来源:CQR

3)如果主力合约出现往后变动的情况,例如9月合约连续三个交易日持仓量大于同年5月合约,则不进行处理,确保展期只能朝前不能往后。

4)如果快要进入交割月还未启动换月,则进行强制换月。在交割月前一个月倒数第3个交易日开始,分3个交易日均匀移动到次主力合约。

股指期货比较特殊,其最后交割日为每个月第三个星期的星期五,次主力持仓量一般在最后交割日当天或前两个交易日超过主力。因此其换月规则设计如下:从距离最后交割日3个交易日那天起,分三天均匀将主力合约换到次主力合约。

4.应用

期货收益率指数应用范围极其广泛,其设计和计算只是期货研究的第一步。包括因子挖掘、组合构造、风险管理和归因分析,都会出现期货收益率指数的身影。这里举例介绍千寻期货品种收益率指数的两个应用:平均相关系数和carry策略回测。

4.1平均相关系数

期货品种之间的平均相关系数是影响CTA策略的重要因素(Baltas,2016),利用期货收益率指数,可以跟踪品种之间的平均相关系数。计算活跃期货品种[13]最近10年滚动1年的平均相关系数如图10,可以看到期货品种之间平均相关系数持续降低,对CTA策略组合分散极其有利。

图10 活跃期货品种平均相关系数

数据来源:Tushare,CQR

4.2期货策略指数

商品横截面期限结构因子(carry)最近几年越来越流行,其背后暗含了市场参与者对不同合约的价格预期,反映了经济周期、商品供求、市场情绪等诸多信息(刀疤连,2018b),图11展示了carry因子的回测结果。在对策略进行历史回溯时,用期货收益率指数使得结果更可信,更加逼近真实交易业绩。

图11 carry回测结果

数据来源:Tushare,CQR

5.总结

工欲善其事,必先利其器,量化研究是一个细活慢活。这篇报告是期货投资的基础研究,介绍了6种常见的连续期货价格序列构造方式,并讨论了它们的优势和劣势。接着设计了一个通用的连续期货价格方案——千寻期货品种收益率指数,从期货上市第一天进行编制,包括全部商品期货和金融期货。最后介绍了该收益率指数的两个应用场景。事实上,本文只是CTA研究的第一步,利用收益率指数可以做大量的衍生研究,这是后续要努力的方向。

参考文献

刀疤连. (2018a). 股市崩的时候,你可否想起我. Retrieved from https://mp.weixin.qq.com/s/_-beotOhmCe9prwyipBbCQ

刀疤连. (2018b). 如何构建稳健的商品期货carry组合?. Retrieved from https://mp.weixin.qq.com/s/N8pf0CQY7f11GWKM_3r8vw

wind资讯. (2014). Wind商品系列指数编制方案. wind资讯.

Baltas, N. (2016). Trend-following, risk-parity and the influence of correlations. In Risk-based and Factor Investing (pp. 65-95).

Masteika, S., & Rutkauskas, A. V. (2012). Research on futures trend trading strategy based on short term chart pattern. Journal of Business Economics and Management, 13(5), 915-930.


  1. 由于信息披露、编制规则和管理流程等诸多原因,国内各类私募基金指数存在较大的幸存者偏差。这里选用了相对来说比较正常的智道金服数据,数据可能仍然会有问题,但基本结论应该不受影响。 ↩

  2. 我在另外一篇文章中详细介绍了CTA的配置价值,感兴趣详见刀疤连(2018a)。 ↩

  3. 两个合约交割日相差4个月,由于市场情绪、季节性和供需等原因,导致了较大的价差。 ↩

  4. 当期货远月合约价格高于现货价格(或近月合约),此时该品种处于contango状态;相反,当期货远月合约价格低于现货价格(或近月合约),此时该品种处于backwardation状态。关于期货期限结构的研究,可以见刀疤连(2018b) ↩

  5. 期货的流动性可以用持仓量、持仓金额、成交量和成交金额等衡量。更多关于期货流动性的讨论,可以见刀疤连(2018b) ↩

  6. Wind的商品品种指数,权重由持仓额(合约持仓量*合约价格)确定,和单纯用持仓量加权效果近似 ↩

  7. 交易开拓者并没有公布其指数计算方案,按照其工作人员的回复,权重由持仓量和成交量同时确定 ↩

  8. 见Masteika、Rutkauskas和Alexander(2012) ↩

  9. 事实上,2000年左右已经有4个期货品种:大豆、沪铝、沪铜和橡胶 ↩

  10. 之所以命名“千寻”,因为很喜欢电影《千与千寻》 ↩

  11. 由于合约设计上的不合理,部分商品品种修改过合约细则,并更改了商品代码,这些品种包括WS、ER、ME、TC和RO,修改后的代码分别为WH、RI、MA、ZC和OI。本质上,这种修改并不影响商品的价格,商品还是那个商品,价格还是原来那个商品的价格,具有连续性。因此,将合约修改前后的数据进行了向后统一,例如RO即为OI,RO203即为OI203 ↩

  12. 橡胶在1996/10/16至1997/4/11,每个交易日只有一个合约(数据源wind)或者数据缺失(数据源tushare),因此橡胶的计算从1997/4/14开始计算 ↩

  13. 活跃品种包括AL,CU, FG, I, J, JM, L, MA, NI, PP, RB, RU, TA, V, ZC, ZN, BU, HC,A, C, CF, CS, JD, M, OI, P, RM, SR, Y, AU, IC, IF, IH, T, TF, TS。在每个交易日,利用前252个交易日收益率计算两两相关系数的平均值;如果品种没上市,则不纳入计算;如果数据长度不足252个交易日,也不纳入计算 ↩


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存