量化策略:基于AdaBoost的投资模型

原创 课程小组 然然老师的Quantmental 2019-02-19 18:15

    

       这是北京大学光华管理学院《财务分析与量化投资》课程期末报告的优秀案例,由席子涵等同学完成的量化投资策略研究报告,基于是AdaBoost算法选择过去一段时间最有效的因子来预测和解释股票的收益,值得学习参考。

一、模型综述

1.1 监督学习概述

监督学习被广泛应用于预测。从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。

图一 监督学习示例

1.2 策略模型

将机器学习的方法用于量化投资中往往存在以下四个问题:(1)机器学习的方法很多时候是一个没有人们主观经验的黑箱;(2)金融数据的噪声往往使得预测十分困难;(3)存在过拟合的情况,在样本外表现很差;(4)对于模型结果很难给予直观解释

而我们的策略基于的是AdaBoost算法(Schapire[1998]),其通过选择过去几个月最有效的因子来预测和解释股票的收益。在学界该方法已经被使用(Creamer, et al. [2006, 2010])。相比于其它机器学习算法,该方法更少地面临过拟合的问题,对于噪声数据也不那么敏感。

我们基于Creamer的研究进行了一些改进,选用横截面数据而非时间序列数据。最终的输出结果也不仅仅是关于股票是否会有超额表现的置信程度,还会有最近一段时间比较有效的因子的列表。

1.3 AdaBoost算法简介

AdaBoost(adaptive boosting)将弱分类器以串行的方式组合起来。在训练之前,我们赋予全部样本相等的权重。第一步以原始数据为训练集,训练一个弱分类器 C1。对于分类错误的样本,提高其权重。第二步以更新样本权值后的数据为训练集,再次训练一个弱分类器C2。随后重复上述过程,每次自适应地改变样本权重并训练弱分类器。最终,每个弱分类器都可以计算出它的加权训练样本分类错误率,将全部弱分类器按一定权值进行组合得到强分类器,错误率越低的弱分类器所占权重越高。

    我们没有使用传统的树模型,我们希望弱分类器是清晰可解释的,且效果很弱能够达到积弱成强的效果,因此我们对每个单一因子构建弱分类器,每个月月底回溯数据进行模型训练,可以清晰地得出,boosting模型每个月会挑出什么因子。

1.4 投资模型算法

(1)数据准备

报告所有数据均为wind底层数据库实现,自行编写调取SQL数据库的接口,调取代码约1300行,但结构较清晰,boosting模型,回测模块,因子生成,各在一个代码模块,附于附录之中。

对于某一个特定的时间点来说,下一个月的股票表现位于前30%的股票我们定义为’Outperformers’,下一个月的股票表现位于后30%的股票我们定义’Underperformers’,每一个月对于数据重新打一次标签,标签基于的是相对排名而非绝对收益。

(2)算法流程:

    如下图所示:

图二 算法流程

二、因子介绍

2.1 创新因子

选取三个创新因子,分别是:

(1)(净利润-经营性现金流净额) / 净利润 (净利润为负时设为空值)

这个因子从经营性现金流的角度衡量公司的盈利质量,在本课程中提及过,在A股上有一定的选股能力。

(2)Berry Ratio

Berry Ratio定义为毛利润/营业费用,此处取营业费用为公司销售费用+管理费用。

(3)偏度

一阶矩收益率及二阶矩波动率常被作为因子加入多因子模型,但市场上对于三阶矩偏度的关注较少,我们将这个因子加入我们的模型。

2.2 传统因子

选取九类传统因子进行监督学习,分别是:盈利因子、成长因子、估值因子、动量因子、流动性因子、资本结构因子、现金流因子、技术类因子、波动率因子。

每类因子具体如下:

表一 传统因子列表

三、回测结果

3.1 多空收益(long-short performance)——模型有效性检验

A股市场有做空限制,融券规模极小,个股做空受限,但我们仍然可以通过多空组合的收益观察模型的有效性,看模型能否涨跌分明地将股票区分出来。

我们首先对模型的有效性做检验,用Wind全A样本做模型训练,剔除ST股票,在每月最后一天回溯1年的因子月度数据,训练模型并假设用第二天的开盘价成交,持仓1月,月底再重复操作,由于使用开盘价回测,在任何一个时点都不会有未来信息。

模型的输出值是置信度(上节中的h(X)),正数预测股票涨,且h(X)越大则置信度越高,在完成行业中性化,市值中性化后,用h(X)的值进行加权配置股票,正则做多,负则做空,按万1.5费率计算换手成本,回测从2009年8月31回测至2018年8月31,共9年,boosting第一因子置信度选股累计收益1.99,最大回撤3%,随着挑出因子增多,模型对股票的分类精确度在增大,但增大幅度减缓,在10-15个因子后已差别微小,基本呈现单调递增关系,无过拟合表现,前15个因子置信度累加,获得累计净值2.29,最大回撤仅2%,同期上证综指仅上涨17%。

图三 多空组合净值曲线

画出不同情况下的年化收益率,随着因子个数递增,模型年化收益基本稳定在13%-14%附近。

图四 年化收益率

随着模型选出的因子增多,用置信度打分的结果更加可靠,基本能够呈现单调递增的结果,但边际效果在递减,boosting算法的一大优点是性能较弱的因子加入模型时,由于本身权值较低,不会在平均水平上拉低模型的表现,与传统多因子不同,最后的因子组合是线性的加权,加入质量较差的因子会导致模型的结果变差,而boosting在加入因子时对权重做了优化,强调边际贡献

图五 最大回撤

3.2 多头组合(long-only performance)

图六 多头组合净值曲线

15因子累计收益73%,年化8%,同期上证综指累计收益几乎没有增长。从净值曲线可以看出策略收益和上证综指的高度相关性,模型选股时,降置信度h为负的股票权重全部设为0,将分位数0.7以下的股票权重全部设为0,在30%股票中根据置信度配比,持仓约800只股票,组合足够分散。

最大回撤为40%,发生在股灾期间,模型没有对组合止损做任何假设,即使在极端情况也是买入持有,去除股灾期间数据回撤约10%左右,策略如果继续做权重优化,还可以将回撤控制在更低水平。

图七 多头组合年化收益

随着因子个数递增,模型年化收益基本递增,呈现边际递减效果,不存在较弱因子拉低平均水平的情况,而是“积弱成强”,有效利用仅有的信息。

图八 多头组合最大回撤

3.3 中性组合(neutral performance)

既然模型本身是考虑股票的相对收益,自然想到测试模型在中性策略上的表现,中性策略使用沪深300股指期货做对冲工具,选股方式不变,回测结果如下,2010年1月至2018年8月累计收益60%,年化约7%,但未考虑保证金问题,如果保证金是30%,就会有30%闲置资金,折算后大概每年4.5%左右的收益,从图中可以看出,中性组合的超额收益明显和市场的相关性较低。模型具有良好的选股能力。

模型在2017年的表现不尽人意,收益基本持平,2017年的结构性行情是龙头白马股领先,而通过2016年的训练样本捕捉不到这样迅速的风格转变信息,在后续展望部分,我们会谈及模型的改进方法。

图九 中性组合累计收益

图十 中性组合年化收益

从年化收益的敏感性分析可以看出,boosting模型仍未展现出过拟合现象,随着因子个数增多,模型的结果越来越稳定。

3.4 因子选择概览

既然是风格轮动模型,我们自然关心每个月进行选股决策时,boosting模型挑选出了哪些因子,如图,横轴为时间,纵轴是因子,白点代表的是当月挑选出的因子。

可以观察到许多“明星因子”,他们被模型挑选的频率非常之高,如资产负债率,半年动量,一年动量。当然,单因子的IC并不一定很高,甚至符号也不一定稳定,而是在给定模型已选取的其它因子基础上,资产负债率这样的因子更容易选出来,可以说这样的因子一定是包含“信息”的,虽然不一定是单调的,直接对收益率有预测作用(即高IC)。

图十一 因子热力图

进一步展示了前5位因子的挑选情况,可以明显看出,一月换手率,126日,252日动量,资产负债率名列前四位,情绪、动量指标偏多,与A股市场博弈性较强有一定关联。

图十二 因子热力图

四、后续展望

(1)因子的分层效果越好,相关性越弱,组合因子的分类效果越好,且错误率是指数级递降。如果使用信号更强的因子,再叠加boosting的组合,一定能取得更好的效果。

(2)就模型设计而言,很多因子具有周期性(Luo et al. [2010c]),可采用之前12年的月份数据,即6月的预测,就用往年6月的数据作为训练样本来改进模型。

(3)就风险优化而言,现在采用置信度加权,可以用标准的风险模型做均值-方差二次优化,进一步降低回撤。

五、参考文献

[1] Atsalakis, G, Kimon P.Valavanis, 2009, “Forecasting stock market short-term trends using a neuro-fuzzybased methodology”, paper available at http://zenithlib.googlecode.com/svnhistory/r98/trunk/papers/trading/2009-Forecasting_stock_market_shortterm_trends_using_a_neuro-fuzzy_based_methodology.pdf

[2] Binh, K., J. Jussa, Z. Chen, S.Wang, M. Alvarez, and Y. Luo, 2011c, “Quantiles: Technicalities in Asia” DeutscheBank Quantitative Strategy, 18 November 2011

[3] Cahan, R., Y. Luo, J. Jussa, and M. Alvarez, 2010b, “Signal Processing: Beyond the headlines”, Deutsche BankQuantitative Strategy, 19 July 2010

[4] Cahan, R., Y. Luo, M. Alvarez,J. Jussa, Z. Chen, and S. Wang, 2012, “Signal_Processing: The Tree of LIFO”, DeutscheBank Quantitative Strategy, 26 April 2012

[5] Creamer, G., and Y. Freund,2006, “Using Adaboost for Equity Investment Scorecards”, SSRN paper, availableat http://papers.ssrn.com/sol3/papers.cfm?abstract_id=940729

[6] Creamer, G., and Y. Freund, 2010, “Automated trading with boosting and expert weighting”, SSRN paper,available at http://papers.ssrn.com/sol3/papers.cfm?abstract_id=937847

[7] Huerta, R., F. Corbacho, C.Elkan, 2011, “Nonlinear support vector machines can systematically identify stocks with high and low future returns”, SSRN paper, available at http://ssrn.com/abstract_id=1930729

[8] S. Wang, Y. Luo, R. Cahan, , M.Alvarez, Jussa J. and Z. Chen, 2012, “The rise of the

machines”, Deutsche Bank Quantitative Strategy, 05 June 2012

[9] Luo, Y., R. Cahan, J. Jussa, and M. Alvarez, 2010a, “Signal Processing: Launching US quantitative strategy”, Deutsche Bank Quantitative Strategy, 12 April 2010

[10] Luo, Y., R. Cahan, J. Jussa, and M. Alvarez, 2010c, “QCD Model: DB quant handbook”, Deutsche Bank Quantitative Strategy, 22 July 2010

[11] Luo, Y., R. Cahan, J. Jussa,and M. Alvarez, 2010d, “Signal Processing: Style rotation”, Deutsche Bank Quantitative Strategy, 7 September 2010

[12] Rao, S., J. Hong, 2010,“Analysis of Hidden Markov Models and Support Vector Machines in Financial Applications”, available at http://www.eecs.berkeley.edu/Pubs/TechRpts/2010/EECS-2010-63.pdf

[13] Salvini, M., S. Mesomeris, J.Avettand-Fenoel, 2011b, “Thematic Report: Introducing the MIR”, Deutsche Bank Quantitative Strategy, 11 November 2011

[14] Schapire, R.E., Y. Freund, P.Barlett, and W.S. Lee, 1998, “Boosting the margin: A new explanation for the effectiveness of voting methods”, The Annals of Statistics, 26(5), 1998, paper available at http://cs.nyu.edu/~cil217/ML/BoostingMargin.pdf

[15] Wang, S., H. Ai, T. Yamashita,and S. Lao, 2010, “Combined Top-Down/Bottom-Up Human Articulated Pose Estimation Using AdaBoost Learning”, in International Conference on Pattern Recognition, 2010

[16] Wu, B., H. Ai, C. Huang, and S.Lao, 2004, “Fast Rotation Invariant Multi-View Face Detection

Based on Real Adaboost”, in Automatic Face and Gesture Recognition 2004, available at http://media.cs.tsinghua.edu.cn/~imagevision/papers/FG04-113-WU_B.pdf

[17] Yan, R., J. Nuttall, and C.Ling, 2006, “Application of Machine Learning to Short-Term Equity

Return Prediction”, SSRN paper,available at

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=888778

《财务分析与量化投资》课程小组

2019年1月

席子涵  杨欣瀚

沈铂涵  陈晓珩

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值