来源:中信建投期货微资讯 本报告观点和信息仅供符合证监会适当性管理规定的期货交易者参考。因本平台暂时无法设置访问限制,若您并非符合规定的交易者,为控制交易风险,请勿点击查看或使用本报告任何信息。对由此给您造成的不便表示诚挚歉意,感谢您的理解与配合! 作者 | 彭鲸桥 中信建投期货金融工程量化分析师 本报告完成时间 | 2024年3月24日 摘 要 上一篇中,我们利用动态时间弯曲(dtw)距离来判断相似度,将待考察片段与历史片段进行比对,选取历史最相似片段的下一日收益来预测涨跌,构建了一种基于日频量价数据的形态识别策略。 本文中,我们对原策略进行改进,构建“涨跌库”的思路,用余弦相似度替代动态弯曲距离,并尝试施加阈值的限制,在商品品种等权组合上测试改进的效果。分析原策略结果不够稳健的原因,可能是不同的品种趋势性不同导致与历史片段的相似性差别较大,进一步对阈值参数k进行了敏感性分析,后续还有进一步研究的空间。 风险提示:模型误设风险、历史统计规律失效等风险。 一 引言 上一篇中,我们利用动态时间弯曲(dtw)距离来判断相似度,将待考察片段与历史片段进行比对,选取历史最相似片段的下一日收益来预测涨跌,构建了一种基于日频量价数据的形态识别策略。由于该策略在不同品种上的效果不够稳健且对参数敏感,在本文中我们对策略进行改进,并寻找可能的原因。 一种改进方法是滚动地构建“涨跌库”。即对于每一个交易日,取其过去一年中涨幅最大和跌幅最大的各5日,前L天的序列纳入“涨库”和“跌库”,将该交易日的前L天片段分别与“涨库”和“跌库”中的片段进行比对,计算平均距离来判断其下一日的涨跌情况。 另一种改进方法是将动态时间弯曲距离替换为余弦相似度。由于动态时间弯曲距离作为距离只能取正数,区分不同序列的走势情况的能力较弱,并且考察片段和历史序列的片段长度其实是相等的,在这一点上没有最大化发挥出动态时间弯曲算法的优势,因此考虑将动态时间弯曲距离改为余弦相似度,这样以来走势为上涨的片段和下跌的片段就会有正负上的差异。基于余弦相似度的度量,结合涨跌库的思路,如果片段与涨库内片段的平均余弦相似度大于阈值,与跌库内的平均余弦相似度为负,则发出看涨信号,否则看跌。 此外,之前的策略是在日频数据上实现的,可以将日频数据换为60分钟数据。考虑到方法计算速度较慢,可以将信号进行延迟,观察策略效果。也可以在比对相似片段时设置一个动态时间弯曲距离的阈值k,只有在距离小于k时才认为是相似片段,而不是每天都固定地选取十个相似片段。 分析原策略结果不够稳健的原因,可能是不同的品种与历史片段的相似性差别很大。因为不同品种的趋势性不同,比如豆粕趋势性不好,而螺纹趋势性就较强。进一步对阈值参数k进行了参数敏感性分析。 二 涨跌库的思路 之前的思路是“先找相似,后看涨跌”的顺序,即首先在历史片段中寻找最相似的若干片段,然后观察这些片段的下一日收益,去计算待匹配片段的下一日收益。而涨跌库的思路顺序相反,可以描述为“先找涨跌,后看相似”,即首先寻找历史片段中涨幅和跌幅最大的片段,然后计算待匹配片段与这些片段的动态时间弯曲距离来刻画相似度,得出待匹配片段下一日的涨跌情况。 其中,“涨跌库”是每日滚动构建的。即对于每一个交易日,取其过去一年中涨幅最大和跌幅最大的各5日,前L天的序列纳入“涨库”和“跌库”。判断涨跌时,具体做法是将该交易日的前L天片段分别与“涨库”和“跌库”中的片段进行比对,计算出平均动态弯曲距离。 基于涨跌库的策略的具体步骤如下。 1.第一次循环确定阈值参数。循环当日及之前计算所有待匹配价格序列和历史价格涨库、跌库中序列的动态时间弯曲距离,取其第K个次序统计量的大小k作为距离的阈值。 2.第二次循环得出信号。对于每一个日期更新涨跌库,求出其过去n天内上涨最多的若干日期和下跌最多的若干日期,将这些日期之前的片段分别纳入涨库和跌库。分别计算当日待匹配价格序列与涨库、跌库中片段的平均动态时间弯曲距离,如果与涨库内片段的平均动态时间弯曲距离小于等于阈值k,并且与跌库内片段平均动态时间弯曲距离大于阈值k,就看涨;反之亦然。 三 基于余弦相似度的形态识别 之所以考虑用余弦相似度来替代动态弯曲距离,是出于以下两点原因。一是考虑到动态时间弯曲算法的一个主要优势是可以将不同长度的片段进行比对,通过压缩、拉伸和平移等操作识别其形态上的相似性;而策略中我们考察的片段和历史数据的待比对片段长度其实是相等的,并没有利用上动态时间弯曲算法主要的优势。二是动态时间弯曲距离本质上仍然是距离,取值始终是正数,在处理上涨行情和下跌行情时一定程度上不能很好地区分开;而余弦相似度的取值可正可负,更方便对相似度进行判断,对不同的行情进行区分。 ![]() 基于余弦相似度的策略的具体步骤如下。 1.第一次循环确定阈值参数。循环当日及之前计算所有待匹配价格序列和历史价格涨库、跌库中序列的余弦相似度,取其第K个次序统计量的大小k作为相似度的阈值。 2.第二次循环得出信号。对于每一个日期更新涨跌库,求出其过去n天内上涨最多的若干日期和下跌最多的若干日期,将这些日期之前的片段分别纳入涨库和跌库。分别计算当日待匹配价格序列与涨库、跌库中片段的平均相似度,如果与涨库内片段的平均相似度大于等于阈值k,并且与跌库内片段平均相似度小于0,就看涨;反之亦然。 四 实证分析 标的选取为IF、IH、IC、T四种期货,参考的技术指标为收盘价和成交量,交易频率为日频。每次调仓时,计算截至在所有商品品种等权重的品种组合上进行测试,其中所有品种统一参数。具体的权重分配方法为,初始时所有已上市品种的权重相同,在有新品种引入时会进行权重的再平衡,再平衡后每个品种的权重再次相同。参考的技术指标为收盘价和成交量,交易频率为日频。每次调仓时,计算截至当天长度为L的当前片段与过去n = 250天历史片段的动态时间弯曲距离,其中历史片段长度同样设置为L,阈值k取值为第K=300个距离次序统计量的值。其中,选取的标的品种如下表。 ![]() 为了消除行情序列非平稳性造成的偏差,对每一个待考察的序列和历史序列,将其价格标准化处理,价格除以序列最后一天的价格。成交量数据则全部进行移动平均的标准化,将所有成交量数据除以50天的移动均值。需要较大的数据量进行片段的比对,故回测期在n = 250个交易日之后开始,回测期为2013年1月30日至2023年3月2日,不考虑交易费。 4.1 余弦相似度涨跌库的思路 基于余弦相似度涨跌库的思路,得到的各个商品品种和等权重组合上的策略表现如下表。 ![]() 其中,距离阈值k设为0.8,dtw距离小于k则认为片段相似,如果没有相似片段则沿用上一次的买入或卖出信号。 上述策略在等权重品种组合上的净值曲线如下图: ![]() 原始思路的表现优于涨跌库的思路,在大多数品种上都能取得正收益。与单品种相比,等权重的品种组合最大回撤显著减小,具有较好的表现。 4.2 dtw原策略上施加阈值的限制 如果在原始的动态时间弯曲距离策略上,不使用涨跌库的思路,仅施加阈值限制进行改进,得到的各个商品品种和等权重组合上的策略表现如下表。 ![]() 其中,距离阈值k设为0.8,dtw距离小于k则认为片段相似,如果没有相似片段则沿用上一次的买入或卖出信号。 上述策略在等权重品种组合上的净值曲线如下图: ![]() 原始思路的表现优于涨跌库的思路,在大多数品种上都能取得正收益。与单品种相比,等权重的品种组合最大回撤显著减小,具有较好的表现。 五 参数敏感性分析 考虑在dtw原策略上施加的阈值k参数大小。不同品种的趋势性不同,待匹配片段与历史片段的距离大小不同,所以不同品种上k的筛选作用会有差别。分别计算所有品种的动态时间弯曲距离集合,两个特殊品种——豆粕、螺纹各自的动态时间弯曲距离集合,得到距离的分位数如下表。 ![]() 可见螺纹趋势性较强,与历史片段的动态弯曲距离较小,而豆粕趋势较差,所以与历史片段的动态弯曲距离较大。前文策略中所使用的阈值k=0.8约为全品种阈值的1/4分位数。下面对阈值k进行参数敏感性分析,在IF品种上进行测试,得出如下指标结果和净值曲线。 ![]() ![]() 可见在IF单品种上,策略效果对阈值参数k的变化是敏感的,夏普和净值变动较大。 六 总结 本文在第一篇的基础上,进一步对基于dtw距离的量价类策略进行了改进。分别通过引入“涨跌库”的新思路,将动态时间弯曲距离改为余弦相似度的度量,对原始思路的距离阈值进行设定,得出了改进后的策略在商品品种上的表现,其中余弦相似度涨跌库的思路效果欠佳,原始思路施加阈值后效果明显提升。最后分析原因可能是不同品种的趋势性不同,进一步对阈值参数k进行了参数敏感性分析,发现单品种上阈值参数k仍较为敏感,后续我们将会进一步分析研究。 ![]() |
1 小时前
1 小时前
1 小时前
1 小时前
1 小时前