前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >27%年化回报率的深度趋势跟踪策略

27%年化回报率的深度趋势跟踪策略

原创
作者头像
核桃量化
修改2023-09-06 09:20:07
6190
修改2023-09-06 09:20:07
举报

论文 | A Deep Trend-Following Trading Strategy for Equity Markets

一. 本文摘要

本文介绍了一种新的深度趋势跟踪策略,通过递归优化方法对历史数据进行二元标注(上升趋势或下降趋势),然后训练深度神经网络模型有选择地持有被估计为上升趋势的股票。策略在S&P 500上进行样本外进行测试的年化回报率达到27.3%,夏普比率为1.3。此外,实验结果显示可以通过使用波动率进行策略调整,可以进一步提高策略收益,降低回撤。

二. 背景知识

趋势预测

资产价格的趋势预测和动量的投资策略是一种常见的投资方法。这种策略基于以下观察:价格趋向于在一段时间内保持相对稳定的方向,即存在趋势;并且在趋势形成时,价格往往会继续朝着同一方向移动,即存在动量。投资者使用各种技术分析工具和指标来识别和利用资产价格的趋势和动量。这些工具可以包括移动平均线、相对强弱指标(RSI)、趋势线和震荡指标等。通过分析价格图表和这些指标,投资者试图确定资产价格的走势,并据此做出买入或卖出的决策。

在趋势预测方面,投资者通常会尝试捕捉上升或下降趋势的开始,并在趋势结束之前进行交易。他们可能会通过观察价格突破关键的技术水平或移动平均线来确认趋势的开始,并根据趋势的持续性和力量来确定交易的时机和目标。

动量策略

动量策略是一种投资策略,可以分为多元动量和单元动量两种类型。多元动量策略通过比较资产与同组其他资产的表现来确定赢家和输家,而单元动量策略则只考虑资产自身过去的价格走势。

在这两种策略中,需要一个参考点来衡量当前资产价格。动量策略是一种根据趋势跟踪的规则来利用时间序列特征的方法,但对于如何确定趋势的规模以获取所期望的风险溢价并没有统一的定义。

三. 本文方法

本文提出一种新的趋势跟踪策略,利用深度神经网络来识别上升趋势。通过训练卷积神经网络和长短期记忆模型,将价格预测问题转化为二元分类任务,从而生成可替代传统量化动量排名模型的策略。通过大规模回测研究,证明了该策略在股票市场中识别上升趋势的能力,并在考虑交易成本后实现了可观的回报。同时,通过应用波动率调整,进一步提高了策略的风险-回报特征,并降低了最大回撤。

3.1 趋势标注

图片
图片

如上图所示,本文提出了一种新的趋势识别方法。该方法通过简单的递归优化方法生成了一个二元目标,用于训练深度学习模型以识别上升趋势。具体而言,根据给定的价格序列和设定的止损率,标记那些在持有投资期间能够最大化交易者资本的日子为目标日(类别1)。简单的说,通过模拟了一个交易者,每当从最近的高点开始计算的回撤超过设定的止损率时,关闭持仓。那些能够最大化交易者收益的序列被标记为类别1,其他的则被标记为类别0。在这个实验中,选择了回撤为10%来构建目标。通过这种方法将数据分为上升趋势和下降趋势。下面是该方法的伪代码:

图片
图片

3.2 输入特征提取

从机器学习的角度来看,技术指标是一种快速扩展特征空间的有用方法。事实上,无论是与机器学习相关的研究还是非机器学习相关的研究,通常都会使用技术指标,并将其与目标结合起来,以从相应的信号中得出良好的预测结果。本文使用了以下指标:

  • 简单移动平均线和指数移动平均线
  • 布林带
  • 相对强弱指数
  • 移动平均收敛差离指标

输入包括40个特征。附录B中详细说明了每个特征的计算方法和参数。

3.3 网络模型

图片
图片

如上图所示,本文提出了一种混合的CNN和LSTM深度学习模型,用于分类股票价格的趋势。这个模型结合了CNN模型提取空间特征的方法和LSTM模型提取时间序列特征的方法。使用卷积层来捕捉价格序列中的空间模式,比如价格的上升或下降趋势,然后使用长短期记忆(LSTM)层来捕捉价格序列中的时间依赖关系,以便更好地预测未来的趋势。

模型包括两个1D卷积层,用于提取空间特征,和一个LSTM层,用于提取时间序列特征。我们还使用池化层和全连接层来进一步处理和组合特征。最后,我们使用sigmoid激活函数生成最终的分类输出。为了训练模型,我们使用了Adam优化算法和批量梯度下降方法。我们还使用了早停机制来防止模型过拟合,并进行了数据预处理和输入数据的调整,以提高模型的性能。

3.4 训练数据

训练长度设置为20年,交易期为5年,这导致两个连续的训练期共计25年。在这20年的训练数据中,我们将最后4年用作验证集,以计算在保留样本上的验证准确率。为了进行训练,我们选择那些至少有20年历史记录的股票。这意味着那些在1990年之后才上市的股票在第一个训练期不会被考虑,而在2010年底属于标准普尔500指数的股票也不会在第一个训练期考虑。同样的规则也适用于第二个训练期。由于这些规则的存在,我们在第一个训练期中可以选择的股票数量为306只,在第二个训练期中为334只。

由于缩小了股票选择范围,相对于持有整个指数的替代方案,我们的数据集可能会有一些偏差。因此,我们进行了一万次的随机抽样回测,比较了平均收益与标准普尔500指数和我们考虑的策略之间的差异。然而,结果表明,缩小的样本集并不能超过市场表现。实际上,随机抽样分布的平均每日收益低于市场收益,这意味着通过从我们的样本集中随机选择股票,平均而言无法超过基准指数的表现。

3.5 训练目标

对于每支个股,我们使用过去30天的股票价格序列和相关特征作为输入,将目标设定为判断该股票是否处于上涨趋势。通过训练,神经网络学习如何判断每支股票的上涨趋势。在交易期间,网络再次接收一个30天的输入序列,并通过一个介于0和1之间的数值来表示该股票在当天是否可能处于上涨趋势。数值接近1表示股票可能在当天上涨。根据这些模型的预测结果,我们按照升序对所有股票进行排序,并选择前n支预测上涨概率最高的股票进行投资。投资资金平均分配给这些股票,并持有直到下次重新平衡的日期。为了研究重新平衡频率对投资绩效的影响,我们在每日、每周和每月进行重新平衡,并考虑了交易成本。需要注意的是,为了避免未来信息的偏差,我们在排序估计值时将其延迟一天使用。

四. 实验分析

实验设置

每个个股的训练样本包括30天的股价序列和相关特征,模型在交易期间接收30天的输入并给出当天上涨概率。根据模型估计,资金被分配给具有高上涨概率的股票,并在下次再平衡日期前持有。研究考察了不同再平衡频率对经济绩效的影响,并使用多种绩效指标评估了策略的表现。实验结果显示该策略优于S&P 500基准,并且在考虑交易成本后仍然具有盈利能力。

图片
图片

上表的实验结果显示,在两个交易期间中,模型的样本外F1分数平均为72.1%。这意味着模型可以相对准确地预测股票的上涨趋势。与其他相关研究相比,我们的模型表现相似,而且研究表明,略高于50%的准确率在市场中性环境下可以带来高额的超额收益。

图片
图片

上图提供了不同再平衡频率(每日、每周、每月)和选定股票数量(1、2、3)的累积收益概述,不计算交易成本。通过观察累积表现,我们可以得出以下结论:

  • 所有深度学习策略在测试期间的表现优于标普500指数,展示了良好的回报。
  • 随着选定股票数量的减少,每个再平衡期间的超额收益也减少。选择更少的股票可能会降低潜在的回报。
  • 较短的再平衡频率(如每日)对策略的盈利能力更有利,可能带来更高的回报。
图片
图片

图7提供了各种标准绩效指标的概述,并展示了扣除交易成本后的结果。根据指标数据显示,所提出的方法可以显著超过基准指数的回报。日再平衡且选定股票数量为1的配置,在年化回报方面超过基准指数2倍。在风险调整后的回报方面,选定股票数量为1和2的配置,夏普比率约为1.3,索提诺比率略低于2。

图片
图片

五. 总结展望

本文提出了一个基于深度CNN-LSTM模型的趋势跟随策略,通过引入一个新的趋势分类算法,我们的模型能够稳定地识别上升趋势。实验结果显示了该策略具有较好的表现,显著超越基准策略后续我们可以进一步研究和改进基于深度学习模型的趋势跟随策略。可能的方向包括考虑更复杂的模型架构、引入其他市场数据进行训练和预测、以及进一步优化交易成本管理。

图片
图片

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 本文摘要
  • 二. 背景知识
    • 趋势预测
      • 动量策略
      • 三. 本文方法
        • 3.1 趋势标注
          • 3.2 输入特征提取
            • 3.4 训练数据
              • 3.5 训练目标
              • 四. 实验分析
                • 实验设置
                • 五. 总结展望
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档