策略分享

DeepAlpha-DNN 之使用报告

由cash01创建,最终由cash01 被浏览 298 用户

作者:cash01


最近不怎么撸策略了,一是因为最近俗务缠身,事情比较多,很多事情明日复明日,就一天天拖下去了,二是最近自己也比较迷茫吧,所谓无知者无畏,量化的东西研究的越多,反而越觉得随机性太大,越发的小心翼翼,即使撸到好的策略也是习惯性的否定自己,不太敢轻易投入实盘,错失了很多机会,目前还在心理建设吧,所谓辟山中贼易,辟心中贼难,大致如此吧。。。

开始正题吧,关于DNN,全神经连接连接网络,属于深度学习的中的相对简单和早期的一种算法类型。BQ平台使用了98个简单的量价类因子,经过平台特征抽取,集合三层全连接层的简单堆叠,使用滚动训练后,达到了8年40倍的收益,详情可参见链接【年度重磅】Deep Alpha-DNN,如何采用基础量价数据,构建深度学习模型实现8年40倍回测收益?,大家可以进入上述链接,查看详情,里面对一些概念和测试的方法与步骤做了很专业的介绍和解释!我这边就不浪费笔墨再进一步阐述了。

策略构建

下面,简单介绍下我在DNN 算法基础上,结合我个人的一些实践经验的测试结果,有些属于我个人的一家之言,希望能抛砖引玉吧。

标注

1.标注:平台提供了自动标注,自定义标注以及相应的标注模板,选择与算法契合的标注往往可以事半功倍,在这里我个人尝试用了如下标注,建议大家多尝试吧。使用同质化的标注往往也会提升因子的拥挤度。

-在这里我使用了calmar比率作为标注

训练时间

2.训练时间:训练时间是平台上经常问到的问题,什么时间段比较适合?很多大神都给了答案,例如可以寻找和最近一段市场风格相近的时间来训练模型等等。个人认为这个也跟选择不同的算法以及模型复杂度相关,并且训练数据的多少也要考虑训练的批数量以及学习率的设置。个人习惯使用8-10年数据,一方面为了减少模型的过拟合,另外也可以涵盖一个完整的市场周期。1年的数据也能跑出很好的模型!当然BQ模板是用的滚动训练,但是基于滚动训练的原理加上模型的随机性,固化模型就很挑战吧。。

-在这里我使用了大概十年数据。

数据过滤

3.数据过滤:考虑到金融市场的数据信噪比很低,很多人习惯于对数据进行简单的过滤,例如根据资金流因子,或者换手率,波动率或者基本面因子进行筛选,筛选一些强势类或者反弹类的股票作为股票池。或者结合主观,利用形态上的一些特征进行筛选,例如红三兵,仙人指路,跳空高开等等。当然也可以利用板块轮动,选择最近一段时间的强势板块作为股票池

-在这里我使用了最近创新高的板块作为股票池。

超参模型

4.模型超参:DNN模型相对简单,当然也可以通过堆叠模型的层数增加复杂度,这里我没有对BQ提供的模板做大的改动,沿用了三层结构,对模型的隐藏单元和dropout的比率做了些修改。

因子

5.因子:仍然使用了模板自带的98个因子,一方面这些因子相对简单,而且相关性都比较高,改动意义不大,另外一个就是因子组合属于量化里的一个比较大的话题了,不同的因子组合在相同模型下会带来不同的效果,因此为了减少因子变化带来的影响,个人选择沿用模板

-98个因子

回测

6.回测: 回测也是比较大的一个话题,很多人习惯加上止赢止损,个股过滤等等,我觉得还是要结合模型和因子吧,在经过大量回测测试后,同模型的策略加上止盈止损策略的回测和sharp比率是要远高于裸奔的回测的在这里因为主要是考量DNN模型的本身能力,就还是沿用了模板。

-个人使用了5天4股轮仓。

择时

7.择时:通常来说,大盘大幅回撤时,很少会有策略能够独善其身,所以能够通过大盘风控,对策略进行择时交易也很重要,BQ平台上模板使用的大盘的5天的回撤作为风控,也可以使用一些技术指标作为风控指标,例如RSI,MACD,华泰有篇研报是关于使用牛熊指标作为风控择时,感兴趣的可以翻出来看下,平台上最近也在介绍用涨停股个数比作为风控指标。大家多多尝试吧。因为目的只是测试DNN的选股能力,此处没有使用大盘风控。

-在这里没有使用风控

训练和固化

8.训练和固化:DNN训练需要注意模型本身的随机性,例如dropout,所以需要固化模型参数,否则会很难复现模型。为了避免幸存者偏差,建议模型测试集预留一段当前时间吧

-另测试集为20210104-20220318

回测结果

随机贴了几个训练结果:


{w:100}{w:100}{w:100}


{w:100}{w:100}{w:100}







\

总结和展望

因为时间关系,我没有对DNN 进行进一步测试,但是个人感觉还是有很大提升空间的:如

-改进标注,从回归到多分类

-加入更多网络层,调整网络层参数,如单元数,激活函数,学习率,批处理数等等。

-改进回测和风控

-使用高频数据等等。

最后,无论回测结果如何好,过拟合和欠拟合永远存在,如何在优化和泛化中寻找一个最佳的平衡点,才是AI量化的核心,我们在不断尝试各种模型,从随机森林,到梯度提升机,从bagging,bossting再到stacking,从机器学习到 stockranker,DNN,CNN,RNN,都是希望能够找到一个提升模型泛化能力的方法,回测的sharp高低不是目的,对未来数据的泛化能力才是根本。如果市场没有圣杯,那么大家岂不是刻舟求剑,如果市场有圣杯,那么我相信应该一定不是某个因子,某个策略,某种算法,而是主观上的信仰,客观上的方法,能够坚信策略一定战胜市场,并且可以批量生产高质量策略,方法为术,信仰为道,大道三千,择其一而从之,诸君加油!




\

标签

实盘
评论
  • 怎么获取源码?
  • 你好,请问能说说怎么过滤最近创新高的板块作为股票池吗?
{link}