采用机器学习与二维伽马函数的股票指数量化交易策略

2023-06-15 01:21柴昱白陈伟赵舒欣毛新越
西安交通大学学报 2023年5期
关键词:阈值交易方向

柴昱白,陈伟,赵舒欣,毛新越

(西安交通大学电子与信息学部,710049,西安)

随着我国证券市场的不断迅猛发展,投资者面临着更加动态多变的投资可行集和市场环境[1]。因此,制定什么样的投资交易策略始终是一个研究的热点问题。近年来,使用计算机技术进行量化投资的方式为投资者交易提供了新思路。量化交易是投资者使用金融数学模型对证券市场交易数据进行量化分析而完成交易[2],其中投资择时依靠投资者对资产价格趋势的有效预判,选择适当时机买卖资产,以实现规避风险、获取超额收益[3]。计算机快速处理数据并计算得出结果的能力正适用于此。越来越多的量化交易者通过程序将交易过程集成化,以程序化自动交易完成整个交易过程。

机器学习方法在金融量化交易中得到了广泛的应用。Lohrmann等使用随机森林(random forest,RF)对标普500指数构建了一种四分类涨跌预测模型,证明此模型比只分涨跌模型更有助于改善交易策略[4]。王淑燕验证了随机森林量化选股模型在中国股票市场上有较好的性能[5]。李斌等设计了一套基于机器学习和技术指标的量化投资算法,证明由此构建的投资组合收益率远超大盘指数[6]。张茂军等设计并研究了一种基于决策树的量化交易择时策略,对比证明机器学习模型使用其构造的区间突破分类标签进行训练具有更好的预测效果[7]。高妮等使用集成经验模态分解和不敏感支持向量回归构建低频分量预测模型,构建了良好的指数择时策略[8]。

除了传统机器学习模型,神经网络模型在量化交易方面也得到了广泛研究。Nemes等将神经网络模型应用于罗马尼亚股票的短期趋势预测,提出了可为投资者交易决策提供参考的预测模型[9]。Thomas等发现利用长短期记忆神经网络模型(LSTM)预测非线性金融时序的精度显著优于随机森林等模型[10]。杨青等构造深层LSTM神经网络并对全球30个股票指数进行不同期限的预测研究,发现LSTM能够有效控制误差波动,泛化能力很强[11]。

现有的量化交易研究有一定的不足:一是标签构造较为简单,仅基于价格涨跌标记为(1:涨,2:跌),没有考虑具体涨跌幅数值[4,7];二是交易策略较为基础,通常仅使用简单建仓策略,并没有使用机器学习信号结合交易实时情况进行更细化的设计[7-8,12];三是交易验证不充分,现有文献通常仅使用历史数据进行回测实证,并没有使用实时获取的行情数据验证,对于其策略可在真实交易市场中获取理想收益难具说服力。

本文旨在通过探讨不同分类方式下机器学习对于股票指数涨跌的预测效果选择多空两方向表现最好的预测模型,在此基础上设计与机器学习预测信号紧密结合的实际交易策略,然后使用历史数据回测以及最接近真实交易的模拟盘实时数据进行验证分析,为投资者形成一种实际可用的交易策略提供参考。从而将机器学习的方法真正有效运用在金融交易市场中,并为形成稳定理性的股票交易市场提供行之有效的技术支持与智力支持。

1 随机森林和长短期记忆神经网络

1.1 随机森林

随机森林算法是Bagging类算法思想的一种改进算法,其采用并行计算的学习方式,各个学习分类器之间相互独立。随机森林通过组合多个决策树进行分类或者回归[13],得到广泛使用。决策树算法无需数据的归一化处理,简单易行,但是面对繁多冗杂的数据存在容易过拟合的缺陷,预测分类能力较差。随机森林通过自举采样和随机子空间分割赋予的双重随机性解决了决策树泛化能力弱的缺点[14]。

1.2 长短期记忆神经网络

LSTM是循环神经网络(RNN)的变体[15],它通过门机制使网络具有长期记忆的功能[16]并且缓解了RNN的梯度问题[17]。LSTM由记忆块递归连接而成,每个块的基础结构又包括一个存储单元和3个乘法单元。具体来说,乘法单元又根据实现的具体功能分别被称为输入门、输出门以及遗忘门。输入门决定输入信号能否改变存储器单元的状态,其可以短暂存储相关信息,是LSTM不同于RNN的最大特点[15]。输出门的功能是决定存储单元能否改变其他存储单元的状态。遗忘门的功能是决定记住先前的状态还是进行遗忘丢弃,如果上一条网络传递过来的输入数据具体值没有达到对应阈值,则丢弃此数据。LSTM神经网络基本结构如图1所示。

图1 LSTM神经网络基本结构

2 量化择时系统设计

2.1 机器学习模型

2.1.1 特征选取

本文所使用的目标数据包括15 min线级别股票指数的逐笔资金流数据和价格数据,具体包括7个维度:主动卖出额、主动买入额、成交额、开盘价、收盘价、最高价和最低价。每日的交易时间为240 min,即一天共计16根15 min线数据。在最终7维度数据的基础上,本文通过不同处理方式计算得到了总体的特征指标共44维,所用方式基于不同指标的时间周期,不同指标相互间的不同运算而变化。

若输入特征过多会使模型复杂化[18],所以需要对计算的特征进行预处理。本文采用最大互信息系数法(MIC)[19]剔除特征相关性较大的指标,筛选后特征的数量由44维降至21维。

2.1.2 标签定义

本文提出了一种双阈值涨跌不平衡型标签,其计算方式如下

(1)

使用两个阈值的原因是:让1(涨)与2(跌)的判定更加严格,从阈值来看三类别的区分度更高,能够更便于模型进行类别特点的学习;这样的标签在实际交易中具有更高的容错率:因为其严格的判定条件,本在阈值相同型标签中可以标记为1(涨)或2(跌)标签的样本,若其收益的小值没有超过小阈值,仍被标记为0(平),这样就存在0(平)标签仍可能获利的情况,更有利于实际的交易。

2.1.3 分类方式

在传统机器学习随机森林算法的尝试中发现,直接进行涨、跌、平(1、2、0)三分类,会将大量样本分类为0,即平标签,实际上损失了很多可供交易的机会,造成有效交易信号的减少,所以在三分类的基础上本文还进行了B-B分类、B-T分类两次分类,其流程图分别如图2、图3所示。本文的机器学习模型分类方式共有3种。

图2 B-B分类方式

图3 B-T分类方式

(1)T方式。直接使用各个模型进行基础的三分类训练。

(2)B-B方式[20]。训练集原始标签为0(平)、1(涨)、2(跌),第一次训练过程为:将其中1(涨)、2(跌)两类视为一类,标记为新的1,然后与原始标签0(平)组合成新的训练集进行训练。第二次训练过程为:只取出原始数据中标签为1(涨)、2(跌)的样本作为训练集进行训练。

(3)B-T方式。训练集原始标签为0(平)、1(涨)、2(跌),第一次训练过程为:将原始数据集中标签为1(涨)、2(跌)的样本取出进行训练,训练方式等同于B-B方式中的第二次训练方式。第二次训练过程为:将原始数据集样本直接进行涨跌平(1、2、0)三分类。

2.2 交易策略

简单建仓策略中交易信号只用于开仓,即预测信号为买入时进行买入操作,达到止盈止损阈值时进行卖出。为最大化发挥机器学习模型预测信号在交易过程中的指导作用,将其与交易策略紧密结合,同时考虑到ETF交易中手续费较大的问题,本文在简单建仓策略的基础上进行了进一步改进。

2.2.1 持仓中的更新

本交易策略增添了根据正向交易信号进行持仓更新的操作,更新对象包括参考价格、止盈止损价格与此方向的持仓时间。具体执行过程为:若此时持有仓位且交易线程获得开仓正向预测信号,同时,此时获取的最新收盘价已优于上一次更新的参考价格,则更新参考价格为此时的最新收盘价,以参考价格与所定止盈止损阈值比例计算最新的止盈止损价格,更新持仓时间为0。

2.2.2 开仓阈值自适应调整

涨跌幅限制是为了抑制过度投机行为和从众行为而采取的一种价格稳定机制[21],此制度是指在一个交易日内证券的交易价格只能在指定的范围内波动[22]。对于股票指数来说,单日内的涨跌幅值不会过于夸张,因此当行情在多(空)方向已有较大涨(跌)幅时,应对其同方向的开仓进行限制以避免行情反转带来的亏损。本文统计所有数据多空方向的日内相对于开盘价的涨跌幅分布统计结果,具体见表1,统计结果所依据的数据集为表2中的神经网络训练集数据。

表1 中证500指数单日内涨跌幅分布统计结果

表2 模型数据集标签分布

表1中:NL为数据集中涨与跌方向的样本数;Cmax为此方向绝对值最大的涨跌幅,将数据集中涨跌幅为25%~75%的数量分位数所对应的涨跌幅表示为C25%~C75%。

可以直观得出:统计范围内,中证500指数单日内涨跌幅的整体分布集中在百分之一以内,日内最大跌幅大于日内最大涨幅,分别为(涨:0.035 0,跌:-0.057 2)。据此,本文借鉴图像处理领域中一种使用光照分量对光照不均匀图像进行自适应矫正的算法[23],提出一种根据日内涨跌幅对开仓方向的类概率判别阈值进行自适应调整的二维伽马函数,其公式如下式

(2)

式中:Pt为此时要求的类概率判别阈值;m为表1中所统计的样本75%分割点对应的涨跌幅,此处两方向判别阈值的绝对值均取近似值0.007 5;pc为此时刻获取的最新收盘价相对于今日开盘价的涨跌幅。此函数为分段函数,阈值一般情况下为0.5,只有在|pc|>|m|时才应用式(2),其对阈值的自适应调整效果如图4所示。

图4 二维伽马函数校正后的类概率判别阈值

图4中类概率判别阈值初始为0.5,以日内涨跌幅正值为例,在pc>0.007 5时类概率判别阈值与pc呈正相关,其增长趋势为先缓慢增加而后迅速上涨,代表类别判据越来越严格。在机器学习预测过程中,只有在预测概率大于给定判别阈值时才能预测为对应类别,而在横坐标日内涨跌幅pc为0.02时,纵坐标类概率判别阈值Pt为0.99,即只有预测的概率大于0.99才可判为此类,已接近判别阈值的极限1。这意味着在pc>0.02后基本已不存在判为此类的可能,在交易过程中则表示为无此方向的交易信号,不进行持仓更新或开仓。据表1所用数据集统计,pc>0.02的样本仅占所有样本的1.67%,所以,经此函数调整阈值,只丧失了少于1.67%的交易机会,说明此种算法对在交易方向上已出现较大日内涨跌幅值行情时的开仓进行限制的同时,并没有影响实际交易过程中所需要的良好召回率。

3 实验分析

本文先通过机器学习模型的对比分析选定交易策略中多空方向分别使用的机器学习预测模型,然后,为了验证本策略的收益能力,还设计了简易量化交易系统,实现了交易策略的程序化自动交易,不仅可以使用历史数据进行回测验证,还可以在交易日获取实时行情数据进行模拟盘的实时验证。量化交易系统总体框架如图5所示。

图5 量化交易系统总体框架

3.1 实验数据

本文样本集基于中证500指数日内15 min线级别数据。随机森林模型数据集共7 647条数据。研究表明使用近一年的交易日即约250天交易数据进行训练具有良好的效果[7,10,24],据此,本文选取训练集为:2020年1月29日至2021年1月29日共4 147条数据。验证集为:2021年1月29日至2021年3月29日共562条数据。测试集为2021年3月29日至2021年12月29日共2 938条数据。

参考文献[10]对比实验,本文设置神经网络模型中深度神经网络(DNN)为LSTM网络的参照模型。因神经网络模型的学习能力依赖于样本数,而本文的15 min线级别数据每日只有16条数据,一年(250交易日)约4 000条训练数据,数据较少,而神经网络模型的学习性能依赖于更充分的训练样本,所以本文在神经网络模型训练预测中使用时间更久远的历史数据共9 565条。其中,训练集:2019年7月3日至2021年1月29日共6 081条数据,验证集与测试集与随机森林模型相同。

3.2 模型预测结果

随机森林模型几乎无需调整参数便具有很好的预测性能[10],因此本文选用模型默认参数进行实验。DNN、LSTM模型则参考文献[12,25]中的设置,设置结构如下:一个输入层(神经元个数等于输入特征数),两个隐含层(神经元个数分别为32、16),隐含层间设置Dropout层(失活概率0.1)以防止过拟合,一个输出层(神经元个数等于各分类方式中的目标分类个数)。

表3与表4是本节所列预测模型分别在验证集与测试集数据中预测表现的评价指标。常用的机器学习评价指标包括精确率、错误率、召回率,考虑到实际交易中除了追求预测的准确性,还需要一定的召回率保证稳定的交易机会,否则,盲目追求预测正确而使召回率过低会导致开仓数量急剧减少,浪费交易机会,因此本文还重点关注召回率。

表3 模型在验证集的预测效果评价

表4 模型在测试集的预测效果评价

表3验证集结果显示多方向LSTM-B-T分类具有最高的精确率0.307 7,虽然其错误率0.283 5比RF-B-T分类0.269 2略高,但其召回率0.274 0是RF-B-T分类0.137 6的二倍左右,因此认为LSTM-B-T分类模型在验证集多方向预测表现最佳;做空方向DNN模型预测表现不佳,出现预测精确率为0的结果。其原因是由于DNN-T分类模型将待测样本全部预测为0,导致预测精确率为0,而DNN-B-T分类模型的第二步分类是T分类,所以其最终精确率也为0。其他做空方向模型的预测结果中:RF-B-T分类的预测精确率0.485 3,大幅领先其他预测模型且其召回率理想,因此认为RF-B-T分类在验证集空方向预测表现最佳。

表4测试集结果显示虽然多方向预测RF-B-T分类具有最高的精确率0.324 3,但其召回率仅有0.047 6,表现不佳,而召回率表现优异的LSTM-B-T分类精确率0.246 7,错误率0.186 4,召回率0.244 0,综合表现相比于LSTM-T精确率0.247 2,错误率0.216 1,召回率0.325 9,其精确率相近且错误率更低,因此认为LSTM-B-T分类在测试集多方向预测表现最佳;同理做空方向排除多数召回率低于0.1的模型后,RF-B-T分类在召回率0.453 0表现优异的情况下其预测精确率0.225 6,错误率0.170 6,精确率高于错误率5个百分点,预测结果是理想的,因此认为RF-B-T分类模型在测试集空方向预测表现最佳。

综上所述,本文通过验证集与测试集在多空方向的评价指标进行对比归纳得出,在做多方向上LSTM-B-T模型最为理想,做空方向上RF-B-T模型的预测表现最为理想。其相应方向评价指标与原待测样本中数据分布比例的对比结果显示两模型都对精确率与错误率有较好的提升,同时保证了稳定的召回率,适用于实际交易策略的形成。

3.3 交易回测结果

本文使用中证500指数ETF完成多空方向的回测与模拟盘交易验证。需要说明的是为使用指数ETF完成空方向的交易,需要在前一交易日提前持有底仓,因此本文的交易策略收益因底仓的存在而跟随中证500指数波动,此策略追求获得对标指数基准收益的超额收益,是一种指数增强型策略。

本文对比实验中的交易策略如下:①买入并持有策略,后文以M1表示,此策略的收益率等于指数此段周期内股票指数的价格增长率,是实验的基准策略;②随机建仓策略,即随机给定此时刻预测信号,结合简单建仓策略进行买入卖出的策略,以M2表示;③持仓更新策略,即使用机器学习预测模型与持仓更新策略进行交易的策略,以M3表示;④完整策略,即结合持仓更新策略与二维伽马函数对开仓信号的类概率判别阈值进行自适应调整的策略形成的最终完整策略,以M4表示。

各交易策略在2021年1月29 日至2021 年12月29日的回测收益曲线如图6所示。

图6 不同策略整体回测收益曲线

图6中M2与M3对比可得,相比于随机判断,机器学习模型的预测信号提供了正确的指导作用,获取了正向收益。M3与M4对比可得,加入开仓信号的类概率判别阈值自适应调整策略实现了更小的回撤以及更大的收益。不同策略整体回测收益评价指标见表5,本文的完整策略交易指标整体最优,策略收益率为28.84%, 相比于持仓更新策略提升了约2个百分点,相对于基准策略的超额收益率为11.24%,实现了超越参考标的中证500指数的增强收益。

表5 不同策略整体回测收益评价指标

图7为本文所提完整交易策略在验证集与测试集时间区间内于多空两向整体交易回测的开平仓交易点示意图。

图7 完整策略多空方向整体回测交易点

蓝色曲线为交易标的每时刻收盘价连起来的价格走势曲线。可以看出,在验证集与测试集时间区间内的交易情况中多空两方向都表现为开仓点较为密集,证明开仓次数理想,没有损失较多交易机会。且在2021年3月10日与2021年9月22日附近的流畅行情中,蓝色曲线上空方向开平仓点较少,证明持仓更新的设定在流畅行情中有效增加了持仓时间,避免频繁开平仓而造成手续费的磨损,从而产生了相对较多的收益。

3.4 模拟盘结果

图8为2022年3月15日至6月15日的模拟盘测试图,点画线从零开始呈逐渐上升趋势,代表超额收益始终为正值,收益表现良好。具体的模拟盘测试评价指标见表6,胜率大于50%且盈亏比接近2.1,证明开仓创造的收益远大于开仓导致的亏损,这3个月的超额收益为2.599%,折算年化收益为13.38%,指数增强年化收益为11.08%,夏普比率为1.476。

表6 模拟盘测试评价指标

图8 模拟盘测试收益

4 结 论

本文设计了多空方向采用不同机器学习模型的日内股指ETF程序化自动交易策略并完成回测和模拟盘验证。研究发现:本文给定的分类方式中,B-T方式具有较好的预测表现,多空方向最终确定的LSTM-B-T模型、RF-B-T模型都以此分类方式为基础;使用历史数据的回测对比实验结果显示,本文提出的结合持仓更新及二维伽马函数的完整交易策略使交易评价指标得到整体性提升;最终,使用实时交易数据进行程序化自动交易的模拟盘测试获取了11.08%的指数增强年化收益,证明此策略是一个对标指数可获得良好超额收益的量化交易策略,具有重要的工程应用价值。

猜你喜欢
阈值交易方向
2022年组稿方向
2021年组稿方向
2021年组稿方向
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
比值遥感蚀变信息提取及阈值确定(插图)
大宗交易榜中榜
室内表面平均氡析出率阈值探讨
交易流转应有新规
大宗交易