回测的坑:主力合约拼接
一句话速览
拼接方式不同,同一套规则的回测收益能差出一倍。这是期货回测里最大也最隐蔽的一个坑。
这节课要你带走的
看完你知道两种拼接方式各自怎么污染回测、价差调整为什么会系统性高估长期持仓策略的收益,以及四条处理办法。
这是期货回测最大也最隐蔽的一个坑。同一套规则, 拼接方式不同,回测收益可以差出很多。
问题从哪来
回测需要一条连续的价格序列,但期货的合约是不断更换的。
技术差异篇讲过三种拼接方式:直接拼接、价差调整、比例调整。 这一节讲它们对回测结果的具体影响。
直接拼接的问题
保留了换月的假跳空。这些跳空会被你的策略当成真实价格变动。
后果:突破信号可能在换月那天被假触发; 均线、ATR 等指标被污染;止损可能被一个不存在的跳空打掉。
回测结果可能偏好也可能偏坏,取决于假跳空的方向 跟策略方向的关系,但无论如何都是失真的。
价差调整的问题
这是更常见的做法:把历史价格整体平移,消除跳空。
图形连续了,指标干净了,但它抹掉了移仓成本。
这是最要命的一点:实盘里每次移仓都要付价差, 而调整后的数据里这笔成本消失了。
后果:对长期持仓策略,回测会系统性高估收益。 持仓时间越长、移仓次数越多,高估越严重。
量化一下
怎么处理
一是明确知道自己用的是哪种数据。 这是第一步,而很多人从来没查过。
二是把移仓成本单独算进去。 用价差调整的数据回测,然后按实际移仓次数手工扣除成本。
三是用真实合约做验证。 在几个具体合约上手工跑一遍,看结果跟连续合约的回测差多少。
四是缩短回测的持仓周期做敏感性测试。 如果一套策略的收益高度依赖长期持仓,那它对移仓成本的敏感度就特别高。
价差调整让图变干净,代价是把移仓成本抹掉了。持仓时间越长,回测高估得越厉害。
做
今天就做这一件事
查清楚你的回测数据用的是哪种拼接方式。如果是价差调整,用上面的计算器算一下被抹掉了多少。
带走这一条:价差调整把移仓成本抹掉了,持仓时间越长回测高估得越厉害。正确做法是回测之后按实际移仓次数手工扣除成本。