论文:NoxTrader: LSTM-Based Stock Return Momentum Prediction for Quantitative Trading
一.特征生成
yfinance 平台提供的历史数据包含一组基本原始指标,包括每只股票的开盘价、收盘价、最高价和最低价。值得注意的是,这些初始数据点虽然是基础,但缺乏必要的深度,无法促进模型中的有效学习和精确的预测结果。因此,迫切需要对这一原始数据集进行转换过程,从而引入一些启发性的特征旨在增强模型的学习能力。
本着整体模式识别的精神,NoxTrader 采用多方面的方法进行特征工程。我们收集了市值超过 2000 亿美元的美国公司的市场数据,并利用丰富的见解来共同增强模型的能力。随后的列举解释了 NoxTrader 框架中精心集成的各种功能:
1.回报:
显示收盘价与之前的价格(通常是前一天的价格)相比上涨了多少。此指标可帮助模型更有效地了解股票价值随时间的变化。
2.ReturnMomentum:
ReturnMomentum 以回报范式为基础,通过量化当日回报与前一天回报之间的差异来增强模型的洞察力。此参数囊括了可能对未来股票表现产生影响的日内动态。
3.ReturnAcceleration:
ReturnAcceleration 深入研究时间动态,识别出 ReturnMomentum 每天的变化,从而囊括股票估值轨迹的复杂曲率。这种高阶导数增强了模型捕捉不断变化的趋势的能力。
4.WeekPriceMomentum:
WeekPriceMomentum利用更广阔的时间范围,评估收盘价相对于一周前状态的增长率。这种时间参考框架为估值趋势提供了长期视角,使模型能够洞察持续的动量。
5.月价格动量:
月价格动量进一步扩大了范围,它表示收盘价相对于前一个月价格的增长率。这种延长的时间背景预示着长期趋势,增强了模型的预测能力。
6.VolumeVelocity:
VolumeVelocity 认识到交易量的关键作用,因此将交易量增长率与前一天进行比较。此功能可让您洞悉市场情绪和供需动态的潜在变化。这些复杂的功能共同促进了 NoxTrader 学习效率的提高。
通过无缝集成这些多方面的指标,该模型能够更深入地理解市场细微差别,从而增强其预测能力并提高其预测的准确性。
二. 预测方法
在本节中,我们详细介绍了使用长短期记忆 (LSTM) 网络预测股票价格变化的方法。我们将讨论数据集、特征提取、模型架构、损失函数、性能评估以及所选方法背后的原理。
1.数据集:
数据集由单个数据实例组成,每个数据实例由两个主要部分组成:特征和标签。特征封装了过去 10 天的股市信息,包括 A 部分中提到的特征。值得注意的是,这些特征结合了当天以及前 9 天的数据。标签表示连续两天的回报差异,即回报动量。我们构建了一个由 240 个此类实例组成的训练集,这些实例的选择基于过去一年的历史数据。由于股市每周只开市 5 天,每周,大约20个交易日相当于一个月。
2.模型架构:
我们的方法采用长短期记忆 (LSTM) 网络作为主要模型架构。LSTM 固有的捕捉时间依赖性的能力使其适合对股票价格模式进行建模。通过识别股票价格和语言之间的相似性(两者都表现出时间序列),LSTM 旨在捕捉股票价格波动中的复杂模式。
3.损失函数:
选择均方误差(MSE)作为 LSTM 模型的损失函数。这一选择符合最小化预测和实际股票回报动量差异的目标。MSE 量化了预测值和实际值之间的平均平方差,使模型能够学习最小化此误差的最佳参数。预测性能评估:为了评估模型的性能,我们不仅采用了 MSE 损失函数,还计算了我们的预测与真实标签之间的相关性。该相关性指标主要在 0.65到 0.75 之间,表示预测趋势与实际趋势之间存在有意义的对应关系。重要的是,考虑到股票数据的时间性质,每10天需要重新训练一次模型,以确保其能够适应不断变化的市场模式。
4.模型泛化:
虽然超过10天的预测范围可能很有吸引力,但我们观察到超过此范围后相关性就会下降。具体来说,如果我们使用同一模型进行40天的预测,前20天的相关性明显超过后20天,这意味着较长预测期的准确性会降低。因此,预测全年的股价需要训练24 个独立模型,每个模型专门针对特定的 10天预测窗口。
三.回测环境
所提出的回溯测试框架旨在利用我们的模型产生的结果。具体方法是将模型生成的标签转换为相应的股票头寸,然后在与真实市场相似的条件下模拟交易活动。概述的系统包括两个部分:标签到头寸的转换和绩效评估。
1.标签到职位的转换:此部分包含双重程序,包括过滤和资本分配。
过滤:由于我们观察到,当预测标签幅度较大时,预测标签与实际标签之间的相关性会增强,因此预测标签在预定范围内的股票被归类为“无交易”。此外,我们注意到,回报速度和回报的极性之间存在很强的一致性,在回报速度幅度较大的情况下尤其明显。在确定“无交易”实体后,其余候选实体将经历一个调整过程,如果值为正,则减去一个常数,如果值为负,则加一个常数。
资本分配:剩余候选人将参与加权平均计算。每天,每个候选人将获得一个头寸价值。头寸价值由总权益乘以其各自的加权平均值确定。
2.绩效评估:投资组合收益和损失的计算需要将头寸乘以实际市场收益。随后引入基准以增强对投资组合绩效的理解。
在市天数:商品在市天数占总天数的比例。
持仓合格率:市场持仓数量与总持仓数量的比例。
年回报率:考虑复合效应后,投资在一年内获得的总回报。
胜率:所有仓位中成功交易的百分比。
最大回撤:投资价值从最高点到最低点的最大百分比跌幅。
四、实验结果
下面的实验将展示我们选择模型标签、建立评估标准以及最终制定综合策略的方法。
A. 初始收益预测
在我们研究的第一阶段,我们发现了一个值得注意的问题。尽管我们付出了努力,但预测结果(回报)与实际结果之间的相关性几乎可以忽略不计。这种令人费解的发展延伸到事后测试,模型的表现仍然远远不能令人满意。虽然整体相关性约为 0,但有趣的是,预测的上升和下降趋势与真实标签表现出一些相似之处。为了更深入地探究,通过计算预测回报差异与相应回报差异之间的相关性进行了分析真实标签差异,相关系数有所改善,但并不显著,为0.2。请参见图1.实线表示真实市场的回报动量,而虚线表示预测回报的差异。
图 1 . 预测回报差异与相应真实回报动量之间的相关性
B. 完善标签表达
进入这一阶段后,我们对真实标签的表示方式进行了重大改变。我们改变了最初使用股票收益的方法,采用收益动量作为新的标签表示。这一改变产生了显著的效果,相关系数飙升至令人印象深刻的 0.6。请参见图 2。实线表示真实市场的收益动量,而虚线表示预测的收益动量。这一变化再次证实了标签表示在模型预测准确性中的重要性。然而,当预测结果与原始收益反向转换时,出现了一种令人担忧的模式。相关性又跌回了可以忽略不计的水平,这让我们更加困惑。
图 2. 预测回报动量与真实标签之间的相关性
C. 回报动量回测
我们的重点转向理解堆栈在从差值转换为实际价格变化的过程中观察到的差异。有趣的是,使用真实回报动量作为回测的输入被证明是非常有效的。请参考图3。这一意外的成功暗示了回报动量的内在能力无需转化回回报即可有效获利。尽管如此,使用预测的回报动量进行回测却产生了令人失望的结果,表明模型的预测能力与其对实际数据的应用之间存在很大差异。请参考图4。
图 3. 回报动量的真实标签作为回测的输入
图 4. 预测回报动量作为回测的输入
D. 相关性可行性评估
为了评估预测标签与真实标签之间相关性的可行性,选择每组中相关性超过 0.7 的股票进行回溯测试。每组代表四个月的测试期。研究结果表明,观察到的相关性确实可行,年回报率为122.95%,最大回撤为11.14%。图 5 显示了该分析的综合结果。
图 5 . 高相关性候选人的累计回报图
E. 关联标签关系
我们的调查深入研究了标签和相关性之间的联系,并认为高相关性意味着卓越的性能。在此分析过程中,我们结合了每个不同组中标签的标准偏差。它揭示了一个可辨别的模式:标准偏差增加的情况与相对较高的相关性相关。有关深入的视觉表示,请参阅图 6 。
图 6 . 标 签标准差与相关性的关系
F. 最终策略
对关联标签关系的研究为我们提供了指导战略决策的见解。绝对值较小的标签被认为不利于我们的策略,因此在策略中被丢弃。此外,其余标签将接受调整过程,以标准化方式将其值调整得更接近零。实证结果令人震惊:六年内累计回报率为 325.38%年回报率为 3 7.72%,最大回撤为 23.84%。优雅起伏的曲线的视觉表现类似于指数曲线,有力地证明了我们的过滤方法具有显著的积极影响。表 I 中有一个全面的表格,而图 7 则以视觉方式强化了这些结果。
图 7. 最终策略的累计收益图