该策略来源于闲画生财公众号,本文只是搬运、解读和给出最新回测。
策略简介
股债ETF轮动策略基于动量效应,选择过去22个交易日表现最好的ETF进行全仓投资,如果所有ETF都下跌则空仓。
策略步骤
- 计算各ETF的22日收益率
- 选择收益率最高的ETF(必须为正收益)
- 全仓买入该ETF,清仓其他持仓
- 如果所有ETF都下跌,则空仓
策略回测表现
- 回测时间:2016-01-04 - 2025-08-20
- 回测收益: 636.039%
- 回测年化收益: 23.971%
- 最大回撤: 30.962%
长期年化非常高,但回撤也非常大。

策略代码
def clear(etf, stocks):
if etf not in stocks:
for stock in stocks:
order_target_percent(stock, 0)
def handle_bar(context, bar_dict):
CHECK_RANGE = 22
etf0 = '162411.XSHE'
etf1 = '159915.XSHE'
etf2 = '513100.XSHG'
etf0_index = history_bars(etf0, CHECK_RANGE, '1d', 'close')
etf1_index = history_bars(etf1, CHECK_RANGE, '1d', 'close')
etf2_index = history_bars(etf2, CHECK_RANGE, '1d', 'close')
etf0_return = (etf0_index[CHECK_RANGE-1]-etf0_index[0])/etf0_index[0]
etf1_return = (etf1_index[CHECK_RANGE-1]-etf1_index[0])/etf1_index[0]
etf2_return = (etf2_index[CHECK_RANGE-1]-etf2_index[0])/etf2_index[0]
signal = max(etf0_return, etf1_return, etf2_return, 0)#
stocks = context.portfolio.positions
if signal==0:
clear('159912.XSHE', stocks)
elif signal == etf0_return:
clear(etf0, stocks)
order_target_percent(etf0, 1)
elif signal == etf1_return:
clear(etf1, stocks)
order_target_percent(etf1, 1)
elif signal == etf2_return:
clear(etf2, stocks)
order_target_percent(etf2, 1)
使用方法
详细教程参考 活该发财

文章评论