DeepAlpha短周期因子研究系列之:LSTM在量化选股中的应用 (副本)
由small_q创建,最终由small_q 被浏览 13 用户
一、引言
DeepAlpha系列模型中,我们发现DNN全连接神经网络模型可以从基础的量价数据中有效提取出有效的选股能力。同时,股票的量价数据属于金融时序数据,对应的,在深度学习模型中LSTM具有较强的时序预测能力,因此我们将LSTM模型应用于量化选股模型,并分析和验证其效果。
二、LSTM长短期记忆神经网络
2.1 RNN循环神经网络
循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络,相比一般的神经网络来说,RNN将状态在自身网络中循环传递,因此可以接受更广泛的时间序列数据。
基础的RNN结构如下图所示:
RNN的公式为:
2.2 LSTM长短期记忆神经网络
长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,就是相比普通的RNN,LSTM能够在更长的序列中有更好的表现。
LSTM的结构如下图所示:
总结而言,LSTM内部主要有三个阶段:
- 忘记阶段。这个阶段主要是对上一个节点传进来的输入进行 选择性 忘记。简单来说就是会 “忘记不重要的,记住重要的”。通过忘记门进行判断。
- 选择记忆阶段。这个阶段将对输入有选择性地进行“记忆”。哪些重要则着重记录下来,哪些不重要,则少记一些。通过输入门控制。
- 输出阶段。将上面两步得到的结果相加,即可得到传输给下一个状态的h_t。这个阶段将决定哪些将会被当成当前状态的输出。主要是通过输出门控制。
2.3 LSTM短周期因子量化选股模型
DeepAlpha LSTM模型主要由:输入层,LSTM层,Dropout层和Dense层组成,模型结构如下图所示。
模型各层的核心参数为:
- LSTM层
- units: 64
- activation: tanh
- recurrent_activation: sigmoid
- Dropout层
- rate: 0.5
- Dense层
- units: 128
- activation: relu
三、实验
基于BigQuant人工智能量化投资平台(https://bigquant.com/),对LSTM在量化选股中的应用进行了研究。
3.1 实验方法
为了保证研究的客观性,我们采用《DeepAlpha短周期因子系列研究之一:DNN在量化选股中的应用》中同样的方法,利用基础量价因子预测股票未来5日的收益率。
3.2 数据准备
3.2.1 数据
选择2015年1月1日到2021年12月31日A股全市场的日线股票数据作为训练数据,股票未来5日的收益率为训练的Label。
3.2.2 因子
我们使用了开盘价、最高价、最低价、收盘价、换手率、当日收益率、成交量这7个基础数据,在量价行情基础数据中构建了98个因子。如下表所示:
表达式 | 含义 | 说明 |
---|---|---|
mean | 时序平均 | 共生成7个衍生因子,例如mean(close_0, 5) |
ts_max | 时序求最大 | 共生成7个衍生因子,例如ts_max(close_0, 5) |
ts_min | 时序求最小 | 共生成7个衍生因子,例如ts_min(close_0, 5) |
std | 时序标准差 | 共生成7个衍生因子,例如std(close_0, 5) |
ts_rank | 时序排序 | 共生成7个衍生因子,例如ts_rank(close_0, 5) |
decay_linear | 时序加权平均 | 共生成7个衍生因子,例如decay_linear(close_0, 5) |
correlation | 时序相关性 | 生成21个个衍生因子,例如correlation(close_0, volume_0, 5) |
向前偏移 | 7*5=35个,例如close_4 | |
衍生因子数 | 共计98个 (7*6+21+35) |
3.2.3 数据预处理
(1)Label预处理
短周期选股策略的目标是预测股票未来5日的收益率,并选择预测出收益率较高的股票进行买入。
- 极值处理:用1%和99%分位的值做clip
- 标准化处理:ZScoreNorm截面标准化
(2)因子预处理
- 标准化处理:ZScoreNorm截面标准化
- 缺失数据处理:fillna
- 极值处理:特征值剪裁{-3, 3}
- 序列窗口滚动:向前取5日的特征
3.3 模型训练
(1)基准模型选择
神经网络需要确定模型的一些超参数,用2011年1月1日到2013年12月31日的数据对LSTM的units参数进行超参数寻优,并将该参数用于后期的滚动训练中。
我们分别测试了LSTM的units参数[64, 128, 256],从验证集的效果来看,units为256的效果最好,回测结果如下图所示:
https://bigquant.com/experimentshare/5a5bb2ab8ec94226ac95968954112d20
(2)滚动回测
我们用超参寻优的结果进行滚动回测,回测采用3年训练,1年预测的方法,具体的数据划分如下:
- [2012, 2012, 2014] [2015]
- [2013, 2014, 2015] [2016]
- [2014, 2015, 2016] [2017]
- [2015, 2016, 2017] [2018]
- [2016, 2017, 2018] [2019]
- [2017, 2018, 2019] [2020]
- [2018, 2019, 2020] [2021]
回测的基本思想:根据模型预测收益率,买入当日排名靠前的50支股票资金管理。
相关参数:
- 初始资金:100万
- 资金管理:每只股票的最大资金占用不超过总资金的20%
- 手续费:买入0.03%,卖出:0.13%
滚动回测的结果如下:
https://bigquant.com/experimentshare/115baa900b2d49c0ad45e9632dded5a1
在2015年到2021年的回测周期中,LSTM量化选股模型年化收益率53.9%,最大回撤51%,夏普率1.38。
四、结论
我们基于BigQuant人工智能量化投资交易平台实现了LSTM量化选股策略,探索了LSTM长短期记忆神经网络在量化选股中的应用可行性。用2011年到2014年的数据进行的超参搜索,确定了基准模型的相关参数,并在2015到2021年进行了滚动回测。从滚动回测的结果来看,LSTM量化选股模型年化收益率53.9%,最大回撤51%,夏普率1.38,具有一定的选股能力。
由于LSTM具有时序特征的捕捉能力,对比DNN和CNN模型,能够提取因子的时序特征,可以作为DNN和CNN模型的有效补充。
未来的工作:
(1)从滚动回测的的结果来看,大部分年份的模型都取得了正收益,但是2017年模型走势于基准是完全相反的,需要进一步分析原因;
(2)在回测的前几个月,模型的收益都是为负,具体的原因是什么也值得探究。
\