查看原文
其他

使用XGBoost算法改进ETF 交易策略,获得33.99%的年化收益率

推荐关注↓

原文结合价格动量和拥挤度的两融 ETF 交易策略

来源 :中国银河证券研究院

一、本文简介

本文主要介绍了两融类ETF的交易策略。ETF作为指数跟踪工具,具有较好的资产配置价值。同时,结合价格扩散和明斯基时刻,可以充分发挥ETF的优势。基于“自上而下”思路构建ETF交易策略,可以捕捉价格动量并降低动量结束时“明斯基”时刻的损失。但是,价格动量指标存在主观因素和非智能化的限制。因此,本文采用机器学习的方法对ETF策略进行改进,输入的变量更加直接且更加丰富,结果相对于原策略也得到了有效的提升。2020年以来的测试数据上进行回测,策略的年化收益率为33.99%,夏普比率和Calmar比率分别为1.37和1.57。

二、背景知识

融资融券

融资融券(两融)交易机制是指证券交易所允许投资者通过自有资金(融资)或借入资金(融券)进行股票交易的一种机制。在这种机制下,投资者可以在一定比例范围内使用杠杆来进行股票交易,从而提高盈利水平。具体来说,融资融券交易机制通常包括两个部分:融资交易和融券交易。融资交易是指投资者通过向证券公司质押自己持有的股票获得贷款,然后用这些资金来购买其他股票。融券交易则是指投资者通过借入股票,在一定时间内将其卖出,并承诺在约定时间内归还同等数量的股票。
在融资融券交易中,投资者需要支付一定的利息和手续费。此外,杠杆比例也会受到限制,以控制投资者的风险。虽然融资融券交易机制可以增加投资者的盈利机会,但也存在较高的风险,因为杠杆交易可能会放大投资损失,投资者需要谨慎选择和管理风险。
ETF
ETF是Exchange Traded Fund的缩写,即交易所交易基金。它是一种开放式指数基金,旨在为投资者提供对某个特定市场、行业或投资策略的广泛暴露。ETF的交易方式类似于个股,可以在证券交易所上市交易,投资者可以通过普通经纪账户进行买卖。与传统的指数基金相比,ETF具有更高的流动性和交易灵活性,因为它们可以在交易日内任何时间进行交易,而且价格实时变动。此外,ETF通常以低廉的费用提供多元化投资机会,因此成为越来越受欢迎的投资工具之一。一些知名的A股ETF包括华夏上证50ETF、博时沪深300ETF、嘉实中证500ETF等。也可以跟踪某个特定行业或投资策略。
截至日前,沪深两市共有249只融资融券类ETF,管理资产总规模超过1.2万亿元,已经具备了较好的交易基础。且不同资产类别的ETF的收益存在显著不同,股票 ETF最近一年最大月度收益和最小月度收益差接近 20%。

ETF行业划分

根据股票ETF收益率和申万一级行业指数收益率的相关性,将两融类股票类ETF(不包括宽基类ETF和海外类ETF)划分为22个行业。由于个别行业包含的ETF数量少、规模小、基金份额低,为兼顾规模和流动性,进行行业之间的适当合并。


受经济周期、投资者情绪等因素影响,行业行情轮动,不同行业之间的收益差距比较大, 表现最好和最差行业月度收益率之差最大达到 25.86%,最小也达到了 8.83%,由于不同行业 ETF 收益差异性,ETF 行业择时具有现实意义,通过行业择时增加收益率高的行业 ETF 配置 权重可以提高策略收益率。

价格动量

价格动量策略是一种基于历史价格走势预测未来股价的投资策略。该策略认为,股票价格的走势具有惯性,即在较短时间内涨势或跌势持续一段时间。根据这个思想,价格动量策略会挑选出在过去一段时间内表现良好的股票,并买入其股票,同时卖出表现不佳的股票。这种策略可以通过相对强度指标(RSI)、移动平均线(MA)等技术分析工具来确定买卖时机。价格动量策略的优点是简单易懂、操作灵活,缺点是需要对市场有较深入的了解和分析能力,同时存在过度拟合、选股风险等问题。价格动量策略在实践中被广泛应用,尤其适用于股票市场处于震荡或难以判断趋势的情况下。

拥挤度
拥挤度是指投资者对某个资产或投资策略的集中程度。当有大量投资者涌向同一只股票、同一种投资策略或同一类资产时,就会导致该资产或投资策略的拥挤度增加。拥挤度增加可能会导致市场出现错误定价的情况,因为投资者在追涨杀跌时往往被情绪驱动而非理性分析驱动。同时,高拥挤度也可能导致流动性风险和操作风险增加,因为当投资者纷纷想要退出时,市场可能没有足够的买家来接手这些投资者的头寸,从而导致价格下跌。对于投资者来说,了解拥挤度可以帮助他们更好地管理风险,避免盲目跟风。

Xgboost算法
XGBoost(eXtreme Gradient Boosting)是一种常用的基于梯度提升树算法的集成学习模型。XGBoost在数据挖掘、机器学习和统计建模等领域都有广泛的应用。XGBoost通过对弱分类器(决策树)的串行训练和加权来构造一个强分类器,以逐步减少误差。具体来说,它采用梯度提升框架,通过优化损失函数来训练每棵树,同时使用正则化方法来避免过拟合。该算法的优点在于:
  • 鲁棒性好,能够处理各种类型的数据,包括类别型变量和连续型变量。
  • 可以并行处理,且内存消耗小,具有高效性。
  • 在特征选择和处理缺失值方面表现出色。
  • 能够自动处理非线性关系和特征交互。
XGBoost是一种十分强大的机器学习模型,可以用于回归和分类问题,并在多个领域的实际应用中表现出色。

三、本文工作

3.1 动量择时动态 ETF 配置策略( PMI 策略)

策略构建


动量择时动态 ETF 配置策略( PMI 策略)是一种基于“行业-个体”自上而下的方法选择ETF构建策略的三个步骤。
首先,根据板块PMI(采购经理人指数)和拥挤度计算各板块得分,并选择PMI排名前5且拥挤度得分(历史分位数)排名前5的板块作为买入板块。
其次,在所选板块中,选择PMI最小且拥挤度得分最低的ETF作为投资目标。如果符合要求的ETF多于1只,则选择交易量最大的ETF以降低交易成本。
最后,根据ETF基金份额历史分位数计算各ETF权重,基金份额历史分位数越高,其权重越低。这种方法可以帮助投资者更科学地选择ETF并确定投资组合中各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 算法改进交易策略

PMI策略使用了简单的价格动量量化方法(如MA均线),容易出现滞后和误判的情况,并且对复杂市场环境和多重因素的影响不敏感。因此,需要对动量评估进行多维度的优化升级,以提高策略对市场的判断能力和投资收益。

策略改进

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,表现优于原有策略。但是近两年策略效果有所下降,如果使用滚动优化的方式进行,将会获得更好的效果。因此,在实践中需要注意调整参数和策略周期,以保证投资组合的稳定性和收益水平。

四、总结展望

ETF行业行情轮动策略基于动量和拥挤度择时,可以有效规避动量结束时即将来临的“明斯基”时刻,同时在捕捉动量收益的同时减小价格下跌所导致的损失。通过先选择行业再选ETF的“自上而下”思路构建ETF配置策略,可以获得稳健的收益。然而,由于价格动量PMI构建方式依赖于经验性规则,可能存在一定的主观性和不确定性。因此,我们采用机器学习的方法对ETF配置策略进行了改进,改进后的ETF配置策略具有更高的收益表现,能够更好地适应市场变化和风险管理需求。在实践中,投资者需要结合自身的风险承受能力和投资目标,以科学的方法制定ETF配置策略,提高投资组合的稳健性和收益水平。
注 | 本文仅为知识分享,不构成任何投资理财建议。


- EOF -


加主页君微信,不仅Python技能+1

主页君日常还会在个人微信分享Python相关工具资源精选技术文章,不定期分享一些有意思的活动岗位内推以及如何用技术做业余项目

加个微信,打开一扇窗



推荐阅读  点击标题可跳转

1、省厅选调 VS 阿里算法岗

2、Pandas + ChatGPT:交互式数据分析!

3、50个常用的 Numpy 函数详解!


觉得本文对你有帮助?请分享给更多人

推荐关注「Python开发者」,提升Python技能

点赞和在看就是最大的支持❤️

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存