论文题目:An Adaptive Box-Normalization Stock Index Trading Strategy Based on Reinforcement Learning
论文链接:https://link.springer.com/chapter/10.1007/978-3-030-04182-3_30#citeas
会议: International Conference on Neural Information Processing (ICONIP) 2018: pp 335-346(CCF C)
目录
摘要
stock box theory是一种经典的投资策略。本文提出了一种基于强化学习的自适应box-normalization(ABN)股票交易策略。
在我们的策略中:
将每个振荡盒(box)内的数据单独归一化处理;
给定每个box的数据,使用支持向量回归(SVR)预测未来一段时间内股票的最大涨跌幅(即上下限);
利用遗传算法,通过最小化预测均方误差(MSE)来选择技术指标,作为特征;
通过Q learning来进行单只股票的交易和两只股票的投资组合交易策略;
最后,根据股价的波动,动态调整振荡盒的触发阈值theta。
实验结果表明,我们的策略在不同的股票指数上表现出色。
1. 背景介绍
2. 相关工作
2.1 stock box theory
基本思想是,假设股价在一段时间内振荡,称为振荡盒(oscillation box),价格会在接近盒子的上限时下跌,在接近盒子的下限时上涨。当价格突破盒子的上限或下限时,价格将进入另一个振荡盒。这意味着,价格将在另一个盒子中开始上升或下降,因此现在是买入或卖出股票的最佳时机。该理论的应用通常是基于投资者的经验。难点在于如何确定盒子,以及根据盒子的状态制定相应的策略。
有人提出将该理论与SVR结合,SVR用于预测盒子的上限和下限,然后制定交易策略。他们将该方法在具有不同变化趋势的个股上进行了实验,表现出色。
3. ABN架构
框架如图1所示。
首先,将股指数据与各种技术指标在每个盒子中进行归一化,然后将归一化后的数据作为特征输入SVR,来预测未来一段时间的上限和下限,应用遗传算法来选择技术指标。根据预测的上限,设计Q learning的状态、行动、奖励,训练交易策略。下限被视为交易的止损信号。最后,根据股价的波动,动态调整盒子的触发阈值theta,以适应不同的市场环境。
3.1 用SVR预测上限和下限
随着时间的推移,连续的价格数据和技术指标,在每个振荡盒中被归一化。盒子的时间跨度为N天,预测未来M天的上限和下限值。
3.2 使用遗传算法优化输入特征
加入技术指标可以提高预测的准确率,技术指标的选择往往是基于投资经验,没有较好的方法来衡量技术指标对预测结果的影响。
我们使用遗传算法在常见的技术指标中选择合适的指标作为特征,以最小化SVR预测的均方误差。实验中,候选的技术指标如下:
3.3 基于RL构建交易策略
我们应用Q learning根据振荡盒的状态(SVR预测的上限)训练agent。下图是振荡盒的状态如下:
theta是上限的阈值,微分是上限的斜率(图中好像写错了,不是MGR,是MRR………)。
Q learning中只有三种action:买、卖、不动,并且每次只交易一支股票,将交易的利润作为奖励。
如果是两个不同股票的投资组合,则Q learning的action为两种股票的比例,只有0:0、1:0、0:1、1:1,奖励与上面相同。
4. 实验
实验数据:1993年-2013年的标普500数据,80%作为训练集,20%作为测试集。
4.1 盒子的触发阈值为常数
我们将盒子的时间跨度设为常数N=10,进行实验。在预测阶段,我们将盒子内数据归一化与全局归一化进行对比,见图5.
在图5(a),当训练集和测试集作为一个整体进行归一化时,测试集中的数据可能会超过训练集的临界值,这将导致预测无法拟合测试集中的数据。
如图5(b),对训练集和测试集分别归一化,可以改善这种情况。
如图5(c),对盒子内的数据做单独的归一化。
遗传算法的输入特征用不同的M值进行优化,预测未来M天的上限和下限。我们统计了遗传算法选择不同技术指标的次数,实验表明:最高价、收盘价、RSI6、MACD比较重要,实验中将这几个技术指标作为固定的输入特征。
Q learning中设置刚开始的探索概率为100%,然后逐渐减小到10%。N=10,M=10,theta=0.02时的训练情况如图6所示,图(a)表示总收益与迭代次数间的关系,图(b)和图(c)分别是训练集和测试集上的结果,theta对最终收益的影响:
在两只股票的资产配置问题中,我们收集了美国1999-2018年不同行业的市场数据进行实验。图7(a)显示两个股票的价格趋势,(b)和(c)分别是训练集和测试集的策略收益:
不同股票的投资组合在测试集上的收益见表2:
4.2 盒子的触发阈值为自适应的
在训练集上,我们用最佳的N值来预测不同M值下的情况,结果如表3所示,当M=10时,SPY指数的收益达到最大:
SPY的波动率(价格的均方差)变化如图8(a)所示,当股价波动较大时,应采用更频繁的交易策略,股价波动较小时,采用低频交易策略。所以,当股价波动率低于0.02时,振荡盒的触发阈值theta设为0.17,当波动率大于0.02时,theta设为0.14.
最后,我们使用预测的下限值来止损,如果下限小于指定阈值,则全部卖出。我们对多个股指进行实验,结果如表4所示: