首发于高智高质
选股与择时——基于前景理论与深度森林算法

选股与择时——基于前景理论与深度森林算法

摘要

传统的因子研究均基于历史上有效市场风格的选取、回测,但随着市场环境的变化,风格因子会逐渐失效,行为金融学则是从微观个体行为及其心理动因来挖掘市场波动更深层次的驱动因素。市场风格可能随时失效,但个体的非理性行为永远存在,将学术成果进行定量的应用能够有效的Alpha因子。

基于以上考虑,在股票池的筛选方面,本文从前景理论出发,引入资本利得突出量来定量地描述投资者的偏好特征,利用投资者的处置效应并结合市值因子和振幅因子对股票池进行有效的分层筛选。

在择时判断方面,本文采用深度森林算法对股票的涨跌情况进行判断,选取了股票技术指标和市场环境两个方面的特征作为输入训练特征进行滚动训练,实现对股票涨跌的判断。

最后,策略回测实现了90.895%的年化收益率和2.1411的夏普比率。本文的创新之处在于有效地运用了行为金融学的理论并将周志华教授今年刚提出深度森林算法加入到择时策略的训练中。


一 建模目的与问题分析

本文希望从历史价格数据和基本面数据中提取出有用信息,预测未来价格走势,建立能够获得超额收益的股票交易策略。面临三个问题:

一是如何从庞大的股票市场中选取可能会获得超额收益的一篮子股票;

二是如何对数据进行预处理;

三是如何利用提取后的信息来进行择时判断。

针对问题一,有如下的想法:根据行为金融学理论,投资者在不同盈亏程度下的风险偏好程度不同,我们可以通过计算投资者关于风险偏好的参考价格点来实现分层选股,从而实现在不同风险偏好下采用不同的因子选股;

针对问题二,有如下的想法:将数据通过双曲正切函数进行归一化,从而能探究不同数据种类在同一量级下对策略的影响,另外,在每次调仓前都将停牌或者数据缺失的股票除去;

针对问题三,有如下的想法:采用深度森林对选出来的股票的k线数据和相关技术指标进行滚动训练,实现对下一交易日的走势的预测,从而实现择时交易策略。


二 模型思路

首先,结合处置效应中投资者的偏好突变情况,通过基于CGO分层的因子选股模型,在CGO<0和CGO>0的情况下通过不同因子选出一篮子股票;

再者,通过反映价格序列特征的各类技术指标以及其他基本面因子,运用深度森林算法,训练出反映价格走势的模型;

最后,运用训练出来的深度森林模型,预测价格走势,从而建立择时交易策略。

三 模型建立

3.1 基于CGO分层的因子选股策略

传统的因子研究均基于历史上有效市场风格的选取、回测,但近年来风格因子逐渐失效,风格因子逐渐从Alpha因子转为风险因子。而行为金融学则是从微观个体行为以及产生这种行为的心理等动因来解释、研究和预测市场的发展,其挖掘的是市场波动的更深层次的驱动因素。市场风格随时可能失效,但个体的非理性行为永远存在,因此,我们需要挖掘行为金融因子。

3.1.1 前景理论与处置效应

前景理论是由Kahneman和Tversky(1979)[1]提出的,是指投资者在收益的情况下厌恶风险,在亏损的情况下喜好风险。作为期望效应理论的代替者,前景理论以非理性理论为基础,将心理学和经济学研究结合在一起,从一个全新的角度来分析决策者的行为,它前景理论使用S形的价值函数描述投资者在不同盈亏程度下的效用,如下图:



传统效用理论认为效用函数是全局的凹函数,而前景理论认为:投资者的风险偏好存在突变投资者在处于亏损状态时,是风险偏好的,处于盈利状态时则是风险厌恶的。

另外,通过价值函数的斜率阐释了投资者的行为随着盈亏状态的非对称变化(处置效应)即:投资者在处于高度盈利状态时效应增加缓慢,风险规避,从而倾向于抛售获利股票;在处于深度亏损状态时,由于效应函数平缓下降,有过度自信的的惜售心理,甚至“越跌越补”,股价则有较大的反转可能。

处置效应是由Shefrin和Statman(1985)[2]根据前景理论和心理账户提出的概念,即投资者趋于过长时间地持有正在损失的股票而过快地卖掉正在盈利地股票。

当投资者处于盈利状态时是风险回避者,而处于亏损状态时则是风险偏好者。所以在投资者在处置股票时,倾向于卖出盈利的股票、继续持有亏损的股票,也就是所谓的“出赢保亏”效应。

3.1.2 资本利得突出量

要研究投资者行为发生突变的时点,我们引入参考价格的定义。

投资者心中的参考价格和过去买入的成本价有关,并且与昨日的市价有关,如果仅以均线作为参考价格(RP),只包含股价最近的信息,则会丢失过往的交易信息。

我们以Grinblatt提出的以260周交易数据定义的参考价格(RP)计算公式为基础,考虑到A股市场短线交易者众多,我们提出了如下的基于过去100日成交均价按照换手率加权平均的RP的算法

式子中的k为权重归一化系数,为过去t-n日的成交均价,为换手率。采用前复权价格计算。过去某一天换手率越大,之后换手率越小,携带的信息对未来越有效

资本利得突出量的算法如下:




表示第t天这只股票市场持仓者相对参考价格(RP)的平均盈亏情况,CGO越大,浮盈越大。


3.2 深度森林

我们希望提取出反映价格走势的特征来实现对价格走势的预测,通过选取一系列技术指标和基本面因子来训练深度森林模型。

3.2.1 深度森林算法:

深度学习最大的贡献,在于表征学习,通过端到端的训练,发现更好的特征,从而在后面用于分类的输出功能,但其实只要特征足够好,分类函数本身并不需要太复杂。

目前深度学习算法的成功是建立在多层神经网络的基础上的,这种成功近年来也被不断尝试能否复制到其他模型上。2017年南京大学的周志华教授尝试提出了一种深度的tree模型,叫做gcForest,用其论文中术语来说,叫做“多粒度级联森林”,此外,还提出了一种全新的决策树集成方法,使用级联结构让gcForest做表征学习。

在这篇论文里,提出了 gcForest,这是一种决策树集成方法(decision tree ensemble approach),性能较之深度神经网络有很强的竞争力。深度神经网络需要花大力气调参,相比之下 gcForest 要容易训练得多。实际上,在几乎完全一样的超参数设置下,gcForest 在处理不同领域的不同数据时,也能达到极佳的性能。gcForest的训练过程效率高且可扩展。在实验中,它在一台 PC 上的训练时间和在 GPU 设施上跑的深度神经网络差不多,有鉴于 gcForest 天然适用于并行的部署,其效率高的优势就更为明显。此外,深度神经网络需要大规模的训练数据,而 gcForest 在仅有小规模训练数据的情况下也照常运转。不仅如此,作为一种基于树的方法,gcForest 在理论分析方面也应当比深度神经网络更加容易。

级联森林

级联森林的构成:级联森林的每一层都是由好多个森林(既有随机森林,

又有完全随机森林)组成,而每一个森林又是由好多个决策树(Decision Tree)组成,所以这种组合是集成的集成!其中每一层的随机森林和完全随机森林保证了模型的多样性!具体的级联森林结构如下图3所示。




图1中的级联森林每一层包括两个完全随机森林(黑色)和两个随机森林(蓝色)。每个完全随机森林包含1000个完全随机的决策树,每个决策树的每个节点都是随机选择一个特征做分裂,直至每一个叶节点包含的实例属于同一个类,或者实例数目不多于10个;每个随机森林也是1000个决策树,每个决策树的生成是选择sqrt(d)个特征(d输入的总特征),每次选择gini值最高的做分裂。

级联森林的迭代终止条件:迭代到效果不能提升就停止!!!

级联森林中每个森林是如何决策的呢?

每个森林中都包括好多棵决策树,每个决策树都会决策出一个类向量结果(以3类为例,下面也是),然后综合所有的决策树结果,再取均值,生成每个森林的最终决策结果——一个3维类向量!每个森林的决策过程如下图4所示。



这样,每个森林都会决策出一个3维类向量,回到图1中,级联森林中的4个森林就都可以决策出一个3维类向量,然后对4个*3维类向量取均值,最后取最大值对应的类别,作为最后的预测结果!

多粒度扫描

多粒度扫描是为了增强级联森林,为了对特征做更多的处理的一种技术手段,具体扫描过程如下图5所示。



图5是分别对序列数据和图像数据的原始输入特征做Multi-Grained Scanning处理的过程。

对于序列数据,假设我们的输入特征是400维,扫描窗口大小是100维,这样就得到301个100维的特征向量,每个100维的特征向量对应一个3分类的类向量,即得到:301个*3维类向量,最终每棵森林会得到903维的衍生特征变量。

图像数据的处理和序列数据一样,图像数据的扫描方式是从左到右、从上到下,而序列数据只是从上到下。

当然,可以用各种尺寸不等的扫描窗口去扫描,这样就会得到更多的、更丰富的特征关系。

3.2.2 深度森林结构分析

在大数据集上,分别和DNN类、LR、RF、SVM等算法做了对比。

1)图像分类(数据集:MNIST):略低于DNN,基本持平(99.05%与98.96%);

2)人脸识别(数据集:ORL):人脸图像数量不同时,gcForest都最好;

3)音乐分类(数据集:GTZAN):gcForest最好(65.67%);

4)手部运动识别(数据集:sEMG):gcForest最好(55.93%);

5)情感分类(数据集:IMDB):gcForest最好(89.32%)。

2、在几个小数据集上表现也很好。

3.2.3 深度森林特征选择

选取的特征为K线数据和相关技术指标,如下:

l MACD指标

本质为过滤设定的短期波动、凸显设定的长期惯性从而达到化繁为简的描述价格走势的指标;

l RSI指标

反映股票市场供求关系的指标,可用来判断市场上多空双方买卖力量的强弱程度;

l 动量指标

反映单只股票在最近某段周期内的收益状况;

l 波动率指标

反映单只股票在最近某段周期内的波动状况;

l 希尔伯特变换——瞬时趋势线

可实现价格序列瞬时信号的提取;

l ATR指标

极端的高ATR或低ATR值可以被看作价格趋势的反转或下一个趋势的开始;

l 中证500指数收益率

反映小盘股平均收益状况;

l 上证50指数收益率

反映大盘蓝筹股平均收益状况。

3.2.4 数据预处理

①如遇数据缺失值,将其赋值为NAN;

②为了保证不同等级特征数据的可毕竟,我们需要运用某种特征空间变化的方式将信号进行整合,同时为了保证正负信息的完整性(正为上涨趋势,负为下跌趋势),我们采用双曲正切函数作为映射手段,将数据映射到(-1,1)区间内。

3.2.5 训练集与测试集的选取

由于市场是会发生变化的,那么尽可能快速的调整策略(在这里就是模型内参)是很重要的。比较常用的方法就是滚动窗训练法,如下图:



滚动窗口设为30天。

标签:预测下一交易日的走势,若上涨,记为+1,若下跌,记为-1。

参数选择:

① shape_1X样本维度:设为与滚动窗口一致;

②window:多粒度扫描(Multi-GrainedScanning)算法中滑动窗口大小,默认设置为3;

② n_cascadeRF:级联层中随机森林的数量,设为特征数的1/4;

③ n_cascadeRFtree:级联层中单个随机森林中的树数,越大越好,但考虑算法的可执行性,设为100;

④ 其他参数均保持默认设置。

四 交易策略

4.1 策略设计想法

本文制定的交易逻辑分为选股和择时两部分。先通过计算CGO因子实现分层选股,再然后通过深度森林对股票相关数据和指标进行特征的训练,实现对价格走势的预测,从而实现择时交易。

4.2 策略制定

4.2.1选股:

首先计算当日股票的CGO值,将CGO<0和CGO>0的股票分为A,B两组,A组股票买入市值较小的百分之1的股票,B组股票买入15日振幅较小的百分之1的股票。

4.2.2择时:

通过深度森林对所选股票前30日的特征进行滚动训练,预测股票下一交易日的涨跌,若上涨,则买入,若下跌,则不买。买入股票时,资金等权分配;

4.2.3止盈止损:

若大盘下跌超过百分之3则全部卖出,不设止盈操作

五 模型实现与测试

回测收益图如下:






回测周期:2014年 1月1号至2017年1月1号

回测年化收益:90.895%

Alpha:0.5818

Sharpe比率:2.1411

六 模型改进方向

深度森林模型很适合对大规模复杂高维的数据进行特征学习,在选股阶段可通过大规模alpha因子和风险因子进行特征提取,进而选择可买入的股票。

深度森林模型也可通过对股票走势形态的特征向量的训练来对未来的走势形态进行模式识别,从而实现短线择时操作。

七 模型的评价

基于行为金融学的CGO选股模型,可有效避免只通过单一Alpha因子选股可能会造成的因子失效导致的风险;而深度森林模型的应用对比其他机器学习模型在分类效果相对于计算量与复杂度上的“性价比”非常高,且不论特征量的多少都适用,是极佳的股票择时分析模型。

参考文献:

[1] Kahneman Daniel, TverskyAmos,Prospect theory: An analysis of decision underrisk[J].Econometrica,1979,67:263-29

[2] The Disposition to SellWinners Too Early and Ride Losers Too Long: Theory and Evidence[J]. Journal ofFinance,1985,40:779-7901

[3] Zhi-Hua Zhou, Ji Feng, Deep Forest: Towards AnAlternative to Deep Neural Networks, ARXiv,2017:1702.08835


欢迎关注“高智高质”的微信公众号、今日头条、微博、知乎专栏、知乎、雪球、网易新闻(以上用户名皆为:高智高质)、摩尔金融(用户名:Watson)

推荐阅读

非投资类精选:

【揭露收割机】揭露支付宝"相互保"正反方两篇10万+爆文的忽悠点

【拨开迷雾】严谨推理重庆公交事件13条线索后真相大白:司机虽非故意坠江,但故意......

【敬畏之心】即使缺乏观测证据,看完我也相信一定有外星人

投资类精选:

【AI量化进阶】长短期记忆(LSTM)神经网络预测比特币价格

【AI量化进阶】stacking集成学习

【AI量化进阶】选股与择时——基于前景理论与深度森林算法

【量化进阶】卡尔曼滤波及其在配对交易中的应用

【量化进阶】浅谈ICA独立成分分析

【量化策略】投资大师的策略,是否真的有用?

【量化入门】浅谈贝叶斯统计

【量化科普】聪明人都懂的概率思维,如何充分运用于投资中让自己处于更有利的位置?

【投资入门】熊市中只能靠空仓和抄底?这个策略了解一下?

【投资科普】为什么女人都喜欢看宫斗剧

编辑于 2018-11-09

文章被以下专栏收录

    中国高智商协会会员,历任量化基金经理、量化研究员、行业研究员,美国特许金融分析师CFA一级通过者。业余坚持高智高质的原则写投资与非投资文章