DeepAlpha短周期因子系列研究之:Transformer在量化选股中的应用 (副本)
由small_q创建,最终由small_q 被浏览 6 用户
\
一、引言
Google在2017年发布了Transformer,截止2022年5月,《Attention is all you need》论文的引用量已经超过了4万,可以说是近5年最热门的论文。
Transformer最初发布是用于时序任务和NLP任务,在近年来也有不少Transformer在CV应用比较出色的研究,我们有理由相信Transformer也可以应用于量化投资领域。
二、Transformer
Transformer的基本思想可以从平台之前发布的文章中看到,本文就不再进行重述。
https://bigquant.com/wiki/doc/moxing-zhineng-celve-4wqCcaD41I
三、实验
基于BigQuant人工智能量化投资平台(https://bigquant.com/),对Transformer在量化选股中的应用进行了研究。
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.2 基准模型
我们用2011年1月1日到2013年12月31日的数据对Transformer的超参数进行超参数寻优,并将该参数用于后期的滚动训练中。
我们测试的参数有:
- embed_dim: [64, 128, 256]
- nhead: [8]
- num_layers: [2, 4]
- dropout: [0.1, 0.3]
我们分别测试了LSTM的units参数[64, 128, 256],从验证集的效果来看,units为256的效果最好,回测结果如下图所示:
https://bigquant.com/experimentshare/43196ef4d1f94ec5916088be7bc965ec
3.3 滚动回测
我们根据超参寻优的结果,选择参数"[embed_dim=128, nhead=8, num_layers=2, dropout=0.3]"进行滚动回测,回测采用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/8e0f6b10cc54407f9a7abb36e6a534cb
四、总结
本文是我们Deepalpha系列关于模型的最后一篇,我们发现无论是DNN、LSTM和CNN都取得了不错的收益,同时,不同模型直接的结构性差异也降低了模型预测结果之间的相关性。
Transformer是目前深度学习领域最火热的模型之一,通过实验结果来看,Transformer模型在量化投资领域的应用前景值得期待,后续我们也会进行更深入的研究和探索。