11.会员专属(499)

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模型在量化投资领域的应用前景值得期待,后续我们也会进行更深入的研究和探索。

{link}