HMM滚动训练择时研究【附源码】
最近社区上有几篇关于隐马尔可夫模型(HMM)的研究报告。在此基础上,本报告针对沪深300指数,采用滚动学习方式构建HMM模型,获得收益预测情况,从而生成交易信号。回测结果表明,该模型对于大盘系统性风险预判能力较强,年化收益为16.5%,夏普比0.75。
关于HMM的模型介绍,可以参考以下两篇帖子,这里不再重述。
本报告直接针对指数进行择时效果分析,回测参数:
- 回测时段:2013.04~2018.06;
- 投资标的:HS300指数;
- 交易费用:双边万三(参考ETF交易手续费);
- 持仓时间:10天。每10天进行一次择时;
- 滚动设置:从数据起始日到交易信号前1日,均作为样本数据。
具体模型构建过程:
1. 因子获取
获得5日收益率、10日收益率、10日内最高价比最低价、10日内平均成交量比5日内平均成交量。
为满足高斯分布,对10日内最高价比最低价因子进行了box-cox变换;
2.HMM模型训练
针对训练时段的数据,训练得到HMM模型,隐含状态数量设为6。各个因子间存在相关性,故协方差矩阵类型设为“full”。
由于HMM中用到的EM算法是梯度下降,可能会收敛到局部最优点,因此这里fit多次,并选取score最高的一个模型。(参考“Training HMM parameters and inferring the hidden states”)
3.收益预测
对当前交易日的隐含状态进行估计;
根据模型的状态转移矩阵,预测下一时段的状态的可能;
根据观测矩阵,计算下一时段的收益期望。
4.回测
根据下一时段的收益预测值,生成交易信号,若收益期望大于0.0006,则开仓或继续持仓;否则空仓。
回测结果:
- 总收益 119.4%
- 年化收益 16.5%
- 最大回撤 21.8%
- 夏普比率 0.75
- 交易次数 15
- 胜率 66.7%
附录
源码地址:《HMM滚动训练择时研究》
BigQuant 人工智能量化投资平台 是一站式的Python+机器学习+量化投资平台,对人工智能量化投资感兴趣的朋友可以直接前往平台进一步学习研究。
本文由BigQuant人工智能量化投资平台原创推出,版权归BigQuant所有,转载请注明出处