如何利用QMT做ETF轮动策略?低回撤套利模型搭建
发布时间:11小时前阅读:44

ETF轮动策略是量化交易中比较经典且适合个人投资者的策略类型。它不选个股,而是在不同行业或风格的ETF之间切换,捕捉相对强势品种,同时利用ETF分散个股风险。下面介绍如何用QMT搭建一个完整的ETF轮动系统。
首先,确定轮动池。一般选择3-5只相关性较低的ETF,例如沪深300ETF(代表大盘价值)、创业板ETF(代表成长)、黄金ETF(避险资产)、国债ETF(避险+收益)。也可以选择行业ETF如半导体、医疗、消费等。轮动池不宜太多,否则资金分散难以产生明显超额。
第二步,定义轮动信号。最简单的方法是使用“动量”指标,比如过去N日的收益率。每月末计算轮动池中每只ETF的近20日涨幅,选择涨幅最大的那只全仓买入;如果所有ETF涨幅均为负,则切换到国债ETF或空仓。这就是经典的“绝对动量+相对动量”策略。
第三步,在QMT中编写策略代码。你需要获取日线数据,在每月最后一个交易日调用handle_bar,计算动量,执行调仓。QMT支持定时任务,你可以设置每个月的特定日期运行。代码框架大致如下:
`
def init(context):
context.etf_list = ['510300.SH', '159915.SZ', '518880.SH', '511010.SH']
context.trade_day = 20 # 每月20日调仓,接近月底
def handle_bar(context):
if context.now.day != context.trade_day:
return
计算每个ETF的近20日收益率
选择最大者,若为负则买国债ETF
平掉其他持仓,买入目标ETF
`
第四步,回测验证。回测时间段尽可能长,包含牛市和熊市。注意ETF的分红和拆分会自动除权,QMT默认后复权数据,不需要额外处理。观察策略的年化收益、最大回撤、夏普比率。通常ETF轮动的最大回撤会比单一持股小很多,但收益率也可能低于最牛的那只ETF。
第五步,实盘优化。实盘时要考虑ETF的流动性,避免在成交稀薄的ETF上做轮动,否则冲击成本会吃掉收益。另外,调仓日尽量选择午后流动性较好的时段。QMT的算法交易功能可以帮助你平滑执行。
由于ETF轮动涉及到多只标的的批量交易和仓位切换,建议提前在QMT中设置好默认下单数量。另外,策略可能会在轮动日产生较多的买卖次数,佣金成本不可忽略,建议选择佣金较低的券商。
国金证券不仅提供10万资金即可开通的QMT/PTrade权限,其普通账户的ETF交易佣金也较为优惠(具体费率可咨询)。而且两融业务全线上开通,如果你在轮动中想加杠杆,可以直接线上操作。量化社群中也有很多用户分享自己设计的轮动池和参数,可以借鉴但不要盲目复制。搭建一个属于自己的ETF轮动系统,是体验量化魅力的绝佳起点。
温馨提示:投资有风险,选择需谨慎。


问一问

+微信
分享该文章
