【技术分享】机器学习在量化交易方向的应用—基于神经网络的多因子选股策略

2021-12-22 16:04:09 浏览数 (1)

本文原作者:甘泉,经授权后发布。

一、多因子选股背景

量化交易策略无非三点:择时、选股、仓控。择时为短期套利交易策略,选股为中长期交易策略,目标是在中长期跑赢指数、获取市场超额收益率alpha。多因子选股的关键是找到寻找因子与股票收益率之间的相关性,即对收益率预测能力强的因子。一般多采用如下步骤:

而传统的多因子模型在构建大类因子特征时往往依赖于投资者的主观判断和逻辑推理。机器学习等量化模型,依据某种机制,构建出一个具有自适应和自动学习特征的模型,被广泛应用于多因子模型的构建。相较于SVM、Logistic Regression等机器学习分类器,深度学习可以通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习到更有用的因子特征。因而“深度模型”只是手段,我们的最终目标是利用深度神经网络进行多因子的“特征学习”,从而最终提升分类或预测的准确性。

二、模型特征——股票多因子

我们选股基于的股票池为中证500的成份股票。根据这些公司的财务指标和股票价格表现等数据,构建了盈利、技术、成长、估值、规模五大类因子特征作为模型输入:

盈利因子

技术因子

BPS

CloseAdj/OneMonthMaxCloseAdj

Dividend Yield

1 Month return

Dividend Yield Last Year

1 Month RSI

EPS

1 Month ADR

Sales/Enterprise Value

1 Month Amount Average

FCFF/Enterprise Value

3 Month return

Return on P/B

1 year daily Skewness

Return on P/E

1 Month Turn Over Average

ROE

3 MonthTurn Over Average

ROIC

illiquidity

规模因子

估值因子

成长因子

Market Free Shares

Acca_Operating Finance Investment

Net Profit Growth

Market Total Capital

Asset Impairment Loss To Gross Revenue

Operation Profit Growth

Market log Total Capital

Cash From Sales/Operating Revenue

Operation Income Growth

CFO/NOI

Revenue Growth

P/B

ROE Growth

P/E

Change Of Net Profit Growth

Net Profit Growth

我们基于上述因子,通过神经网络模型学习模型特征,从而选出市场表现最优的前50只股票,构建最优投资组合。

三、模型构建——深度神经网络

关于模型深度神经网络已经老生常谈,KM和网络上有无数帖子介绍,这里只是简单介绍不做展开。深度神经网络由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接;通过组合低层特征形成更加抽象的高层表示属性类别或特征。通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性。该模型的优点是不用做过多特征数据处理和筛选,丢到模型黑箱里即能训练出较Boosting或树类等机器模型相比不错的效果,在数据量足够、特征多的场景下效果尤为能发挥出他的威力。

而缺点也是显而易见:1)模型黑箱,对于特征无直观业务含义解释。2)容易导致梯度爆炸或梯度消失等梯度不稳定问题,训练收敛难以稳定,往往达到局部最优或陷入鞍点。3)计算成本高昂,大批量数据一般要在GPU上计算。4)还是更适合训练图像类数据,金融类数据多呈线性无法发挥“深度”神经网络对于非线性数据拟合能力的优势。本篇模型基于Keras框架完成训练和测试。

四、模型策略流程

首先确定滚动回测周期:以三年期股票特征因子打分作为神经网络的训练数据,三年即为训练窗口期。由调仓周期为20天,由换仓日当天的全市场股票因子数据作为测试数据集,预测下一期股票分类。构建对应的因子训练样本集和测试集。在构建技术因子标签时要注意,对于10天间隔交易日除权复权后价格要计算10天交易日期间收益率(由adjclose计算),最后对冲中证500收益率计算alpha收益。

训练回滚示意图

目标变量:根据换仓日后股票当月收益率将股票分为强、弱两组(二分类,0-1) :

策略模型:构建含4个隐层的深度神经网络,在最后一层设置softmax分类器。有监督训练整个神经网络,调节隐藏层数、节点数量(256-128-32-16)、激活函数(relu)、损失函数(交叉熵)等模型参数,提取因子主要特征。

策略输出:预测股票池所有股票换仓周期收益表现,根据深度神经网络输出的模型概率预测打分对股票进行排序,选出前10%(TOP50)股票作为最优股票组合。

五、模型表现

    根据模型输出的概率预测打分排序,先选出TOP50只股票构建等权重股票组合,与中证500指数做对比。

    绿色线代表模型选出的top50股票组合与灰色线中证500指数组合(大盘表现)的累计收益率(基金净值)效果,可见多因子选股模型选出的最优股票组合远远跑过大盘指数。当时运用的历史数据尾部正巧赶上15年股灾,股灾期间多因子选股模型选出的最优组合股票遇到重大风险的回撤表现也优于大盘指数。

以下为50只最优股票构建的等权股票组合的回测表现,年化alpha(相对优于市场的收益率)达25%,sharpe比例高达1.22。当然本篇模型是一个较为理想的市场环境,几乎无摩擦成本的前提下建立的,表现效果较好也是必然。

Performance statistics

Backtest

annual_return

0.37

annual_volatility

0.29

sharpe_ratio

1.22

calmar_ratio

0.75

stability_of_timeseries

0.83

max_drawdown

-0.49

omega_ratio

1.24

sortino_ratio

1.67

skew

-0.84

kurtosis

3.75

tail_ratio

0.90

beta

1.01

information_ratio

0.17

alpha

0.25

六、股票组合构建策略简介

一般在基金公司构建一个量化指数或者理财产品时,选了最优股票还不算完,还要对于股票的权重做配比,搭配债券货币等投资工具对冲风险,将投资组合的VAR控制在合理预期内,这里不做展开介绍:

还有一种流行的方法叫Smart Beta,某些主流基金的量化指数多采用此策略。其本质上追求的不再是对指数的紧密跟踪,而是希望通过在指数编制过程中对选股和权重安排的优化,不是简单的指数被动投资,而是一种有思想有个性的Beta投资策略。根据中证指数公司,获得跑赢传统市值加权指数的超额收益。它结合了主动投资和被动投资两个优点,能够突破市值加权指数的限制,为投资者提供更加灵活的、多样化的投资组合策略,以及更好地管理组合风险,所以越来越多的专业投资者把目光转向了以股价波动、派息能力、或公司业绩等因子作为基础的Smart Beta投资策略。

七:结语

多因子股票模型的本质,无非就是应用机器学习算法替代券商的行业研究员们每天看股票指标、公司业绩指标、行业分析报告等数据做出选股策略等思维决策的过程。用什么分类器模型在其次,关键还是在于找到对于股票价格预测效果强的特征因子扩充因子库,就像研究员们每日孜孜不倦的观察市场,读取行业报告,在他们脑中抽象出来特征因子来支持选股决策。当然,往往谁掌握了别人掌握不到的股票“因子”谁就能轻松找到市场的“alpha”。倘若我们有一台算力足够强大的数据处理器,实时抓取股票市场上所有的信号和指标抽象成因子并作出选股策略,券商行业研究员们的岗位是否就能被取代呢?当市场足够透明,市场信息完全可被解读,是否还有alpha可挣呢?

其实,写这篇文章的初衷关键是让大家了解目前市面上常见的一些量化指数、理财产品以及选股软件背后的模型策略是怎样建立的。也不是为了证明神经网络在选股上有多大的威力,倘若真是这样的话,市面上的所有量化基金表现也不会如此不尽如人意,有些甚至连大盘都无法跑过。真实股票交易场景远远复杂,尤其是在近几年”黑天鹅”事件频出的大环境下,还是那句话:“股市有风险,入市需谨慎”。

0 人点赞