本篇是系统化资产配置系列报告的第三篇,主要探讨如何利用机器学习算法进行短期市场择时。在全球金融市场每天产生的海量数据中,如何筛选和有效利用这些数据来预测股票市场的走势是一项重要但复杂的工作。短期择时面临的主要挑战包括:短期市场走势受到情绪等因素的影响较大;如何选择有效的因子;如何对非线性因子进行建模;如何处理因子之间的相关性问题;以及在因子较多的情况下如何避免过拟合等。幸运的是,机器学习技术的发展为我们提供了一种有效的方法来处理这些问题。
在这份报告中,我们将股市未来的涨跌定义为一个分类任务,利用机器学习算法对Wind全A指数的未来涨跌进行建模。我们采用了51种日频因子数据,构建了一个基于决策树的AdaBoost分类器,从而对下一个交易日Wind全A指数的涨跌(1表示涨,-1表示跌)进行预测。这51种因子包括回购利率、信用利差、南华商品指数收益率、金银比率、标普500指数等不同类型的信息。
回测结果显示,如果不考虑交易成本,AdaBoost多空择时策略在2014年10月27日至2019年8月30日期间获得了41.31%的年化收益率和1.41的收益风险比,纯多头策略的年化收益率达到了24.67%,收益风险比为0.98,而同期简单持有策略的年化收益率和收益风险比仅为7.66%和0.26。
AdaBoost算法解决了构建择时模型所面临的多个问题,具体包括:1. 自动选择有效的因子;2. 对非线性因子进行建模;3. 通过自适应调整样本权重处理因子的相关性问题;4. 不易过拟合,模型较为稳健。
在此基础上,我们通过叠加兴业证券的水晶球择时模型,充分利用期权市场的信息,形成了表现更加出色的双塔奇兵择时模型。在假设交易成本为万分之五的情况下,多空策略在2015年6月1日至2019年8月30日期间实现了15.90%的年化收益率和0.72的收益风险比,纯多头策略的年化收益率和收益风险比分别为13.16%和0.70,而同期Wind全A指数的年化收益率仅为-11.18%。
尽管如此,我们仍需提醒读者,本报告的结论基于历史数据,市场环境的变化可能会导致模型的效果有所变化。
决策树是一种常用的非参数监督学习模型。它通过树形结构来进行分类或回归预测。决策树可以分为分类树和回归树,前者适用于离散目标变量,后者适用于连续目标变量。CART算法是一种典型的决策树算法,可以用于构建分类树和回归树。基尼系数是衡量数据集纯度的一个指标,基尼系数越小,说明数据集越纯净。信息熵也可以用来衡量数据集的纯度,它定义了数据集的不确定性。
本报告中的择时模型预测标的为Wind全A指数,使用了51种因子数据。因子包括流动性、风险偏好和技术指标等。因子的具体定义见附表。
决策树模型在构建择时策略时具有多个优势,如可以结合多个因子信息、拟合非线性关系、自动选择预测能力强的因子等。决策树模型的回测流程如下:
由于多层决策树容易出现过拟合问题,我们尝试使用多个单层决策树构建择时模型。优选决策树择时模型通过等权叠加多个单层决策树的预测结果来生成最终信号。具体步骤如下:
优选决策树择时模型的回测结果显示,多空策略的年化收益率达到了12.47%,多头策略为12.31%,显著优于简单持有的7.66%年化收益率。
AdaBoost算法是一种集成学习方法,它结合多个弱分类器,形成一个强分类器。AdaBoost算法不易过拟合,能够处理非线性关系,并能自适应地调整样本权重,从而剔除高相关性的因子。AdaBoost算法的基本流程包括初始化权重、训练弱分类器、调整样本权重等步骤。
我们使用51种日频因子数据构建基于决策树的AdaBoost分类器,对下一个交易日Wind全A指数的涨跌进行预测。为了提高模型的泛化能力,我们限制决策树的深度为1,即只有一个根节点和两个叶节点。
AdaBoost择时模型的回测流程如下:
回测结果显示,多空策略的年化收益率达到了15.90%,多头策略为13.16%,显著优于简单持有的7.66%年化收益率。
由于上证50ETF期权数据历史较短,前文中的机器学习择时模型并未使用期权相关的因子。然而,兴业证券的水晶球择时模型通过挖掘期权市场隐含的市场预期,充分应用期权信息,取得了极佳的历史表现。水晶球择时策略的收益率与AdaBoost择时策略的相关性较低,仅为0.02。因此,我们尝试将两者结合,形成双塔奇兵择时模型。
双塔奇兵择时模型的信号生成方式和回测流程如下:
通过这种方法,我们发现双塔奇兵择时模型在交易成本假设为万分之五的情况下,仍然表现出色,显著优于简单持有策略和优选决策树择时策略。
希望这份报告能帮助您更好地理解和应用机器学习算法在短期市场择时中的作用。