使用XGBoost算法改进ETF 交易策略,获得33.99%的年化收益率
↓推荐关注↓
原文:结合价格动量和拥挤度的两融 ETF 交易策略
来源 :中国银河证券研究院
一、本文简介
本文主要介绍了两融类ETF的交易策略。ETF作为指数跟踪工具,具有较好的资产配置价值。同时,结合价格扩散和明斯基时刻,可以充分发挥ETF的优势。基于“自上而下”思路构建ETF交易策略,可以捕捉价格动量并降低动量结束时“明斯基”时刻的损失。但是,价格动量指标存在主观因素和非智能化的限制。因此,本文采用机器学习的方法对ETF策略进行改进,输入的变量更加直接且更加丰富,结果相对于原策略也得到了有效的提升。2020年以来的测试数据上进行回测,策略的年化收益率为33.99%,夏普比率和Calmar比率分别为1.37和1.57。
二、背景知识
融资融券
在融资融券交易中,投资者需要支付一定的利息和手续费。此外,杠杆比例也会受到限制,以控制投资者的风险。虽然融资融券交易机制可以增加投资者的盈利机会,但也存在较高的风险,因为杠杆交易可能会放大投资损失,投资者需要谨慎选择和管理风险。
ETF行业划分
受经济周期、投资者情绪等因素影响,行业行情轮动,不同行业之间的收益差距比较大, 表现最好和最差行业月度收益率之差最大达到 25.86%,最小也达到了 8.83%,由于不同行业 ETF 收益差异性,ETF 行业择时具有现实意义,通过行业择时增加收益率高的行业 ETF 配置 权重可以提高策略收益率。
价格动量
鲁棒性好,能够处理各种类型的数据,包括类别型变量和连续型变量。 可以并行处理,且内存消耗小,具有高效性。 在特征选择和处理缺失值方面表现出色。 能够自动处理非线性关系和特征交互。
三、本文工作
3.1 动量择时动态 ETF 配置策略( PMI 策略)
动量择时动态 ETF 配置策略( PMI 策略)是一种基于“行业-个体”自上而下的方法选择ETF构建策略的三个步骤。
PMI策略年化收益率为27.42%,年化波动率为21.26%,夏普比率为1.25,Calmar比率为1.65。然而,相比之下沪深300 ETF配置策略的表现要差得多,年化收益率仅为1.13%,年化波动率为19.56%,夏普比率为0.16,Calmar比率为0.31。60/40配置策略的表现也不如PMI配置策略,年化收益率为1.88%,年化波动率为11.71%,夏普比率为0.22,Calmar比率为0.08。因此,通过动量和拥挤度构建ETF投资组合可以实现较为稳健的收益,并且在长期投资中展现出良好的回报。
3.2 使用XGBoost 算法改进交易策略
策略改进
XGBoost 算法包括明确问题、数据选择、特征工程、模型训练、模型评估及决策六个步 骤,分别为:
1)明确问题:预测 ETF 上涨概率。股票类 ETF:若最近 5 日收益率平均值大于 0.3% 且当日收益率大于零,则认为上涨,标记为 1,否则为 0。债券类 ETF:若最近 5 日收益率平 均值大于零且当日收益率大于零,则标记为 1,否则为 0。
2)数据选择:样本包含两融类股票 ETF 和债券 ETF,样本期间为 2016.01.01- 2023.04.16。
3)特征工程:选择特征变量即具有预测 ETF 上涨概率能力的变量,特征变量包括 5、 10、20、30、40、50、60 和 75 天移动均线,以及最近 10 天累积收益率(roc)、最近 10 天收 盘价累积增长量(mom)。根据 XGBoost 特征重要性排序,收盘价 close 对 ETF 上涨概率的影 响最大,30 天移动均线 MA60 对 ETF 上涨概率的影响最小。
4)模型训练:数据集划分为训练集和测试集。本报告训练集样本期间为 2016.01.01- 2019.12.31。模型训练需要预先设置参数即超参数(hyper parameters),超参数可以选择网 格搜索算法、随机网格搜索和手动调参等方法进行优化。在自动化搜索方法中,现存问题在于 计算量过大,寻优过程冗长。本报告选择随机网格搜索。
5)模型评估:机器学习的目的是拟合到“好”的模型即具有较好预测能力的模型,因 此需评估模型效果。评估指标包括准确率、精确度、召回率、F1 得分等。根据模型混淆矩阵, 准确率、精确度、召回率、F1 得分分别为 0.64、0.85、0.64、0.73。
6)决策:输出测试集 ETF 上涨概率,作为 PMI 的替代性变量。
策略回测
在改进策略中,我们采用XGBoost预测出的ETF上涨概率作为PMI指标的替代,不再直接输入原有各条均线数据到模型中。训练期从2016年至2019年,将2020年以来的回测数据作为模型的测试集。策略的年化收益率提高到33.99%,年化波动率为23.34%。夏普比率和Calmar比率分别为1.37和1.57,表现优于原有策略。但是近两年策略效果有所下降,如果使用滚动优化的方式进行,将会获得更好的效果。因此,在实践中需要注意调整参数和策略周期,以保证投资组合的稳定性和收益水平。
四、总结展望
- EOF -
加主页君微信,不仅Python技能+1
主页君日常还会在个人微信分享Python相关工具、资源和精选技术文章,不定期分享一些有意思的活动、岗位内推以及如何用技术做业余项目
加个微信,打开一扇窗
觉得本文对你有帮助?请分享给更多人
推荐关注「Python开发者」,提升Python技能
点赞和在看就是最大的支持❤️