ETF轮动策略创建教程
全面了解策略参数配置,打造专属量化策略
1. 策略概述
ETF轮动策略是一种基于动量因子的量化投资策略,通过分析ETF的历史价格表现, 识别出具有较强动量的ETF产品进行投资,并在动量减弱时及时调仓。
策略核心思想
追涨杀跌:通过量化指标识别市场趋势,在上涨趋势中持有强势ETF,在下跌趋势中及时止损。
核心逻辑:去弱 (卖出动量下降的标的) → 留强 (买入动量上升的标的)
策略流程
2. 标的池构建:ETF 与 LOF
不仅可以跟踪指数,还能纳入主动管理型基金,拓宽收益来源。
工具对比:ETF vs LOF
被动跟踪指数,持仓透明,流动性通常较好,适合捕捉市场贝塔 (Beta)。
涵盖主动管理型基金,可投资更广泛的资产,适合捕捉超额收益 (Alpha) 或稀缺资产。
宽基指数ETF
跟踪沪深300、中证500等宽基指数,风险相对较低,适合稳健投资者。
行业主题ETF
专注特定行业或主题,如科技、医药、新能源等,波动性较大但收益潜力高。
3. 基础参数配置
回测时间范围
开始日期
策略回测的起始日期,建议选择至少3年以上的时间跨度以获得更可靠的回测结果。
最早可选 2018-01-01;推荐 2020-01-01 或更早,确保包含牛市、熊市、震荡市等不同市场环境
结束日期
策略回测的结束日期,通常选择当前日期或最近一个交易日。
注意:结束日期必须晚于开始日期,且不能超过当前日期
初始资金
设置策略的初始投资金额,这个数值会影响回测结果中的绝对收益计算,但不影响收益率等相对指标。
设置建议
- • 最低金额:至少要能买到100股(1手)股票池中的产品
- • 推荐金额:100,000-500,000元
- • 考虑因素:ETF最小交易单位、手续费影响
交易成本参数
交易佣金
单边交易佣金率,以万分比计算。这是模拟券商收取的交易手续费,让回测结果更有真实性。
设置建议
- • 单位:万分比(如2.5表示万分之2.5)
- • 建议值:1-3(万1到万3, 目前主流的券商对ETF交易的佣金收取的比例都比较低,大多都在1%以下)
- • 影响:佣金越高,实际收益越低
- • 注意:设置接近实际佣金率,使回测更准确
滑点
模拟实际交易价格与理论价格的偏差,反映市场流动性和订单执行情况。滑点越大,买入价格越高,卖出价格越低,这是实际交易时的最坏情况。
设置建议
- • 单位:百分比(如0.10表示0.10%)
- • 建议值:0.01%-0.30%
- • 计算公式:实际买入价格 = 买入价格 × (1 + 滑点)
- • 影响:滑点越大,买入价格越高,卖出价格越低
4. 策略参数配置
动量周期
动量周期决定了计算动量指标时回看的历史数据天数。较短的周期对市场变化更敏感,较长的周期更稳定但反应较慢。
短周期 (5-15天)
高敏感度,交易频繁,适合短线操作
中周期 (15-30天)
平衡敏感度和稳定性,推荐使用
长周期 (30-60天)
低敏感度,交易较少,适合长线投资
动量计算方式
系统提供七种动量计算方式,分为收盘价版(使用每日收盘价)和分时版(使用每日固定时间点的分钟级价格)两大类。 各指标的详细计算公式请参阅 动量计算方式详解。
区间涨幅
公式:(当前收盘价 - N天前收盘价) / N天前收盘价,最常用的动量计算方式,支持设置上下限阈值。
RSRS动量
通过回归分析计算高低价弹性关系,经 Z-Score 标准化,跨标的比较更客观,适合择时精度高的策略。
斜率
对数收盘价等权线性回归,综合得分 = 年化斜率 × R²,兼顾涨速与趋势可信度。
加权斜率
与斜率相同,但近期价格权重线性增至 2 倍,对趋势转折响应更快。
与收盘价版的区别:分时版不使用收盘价,而是取过去 N 个交易日中每天与执行时间相同时刻的分钟级价格来构建价格序列,其余计算逻辑与对应的收盘价版完全相同。分时版需配合执行时间参数使用。
区间涨幅(分时版)
用执行时刻的分钟价格替代收盘价计算涨跌幅,减少尾盘集中交易带来的滑点干扰。
适用场景:策略在日内固定时点(如每日 10:00、14:30 等)执行调仓,希望动量口径与成交价格一致
斜率(分时版)
用每天执行时刻的分钟价格构成序列,做对数等权回归,综合得分 = 年化斜率 × R²。
适用场景:日内固定时点调仓,希望通过分时价格序列更精准地捕捉日内趋势的方向与稳定性
加权斜率(分时版)
同斜率(分时版),但对近期价格赋予更高权重,对趋势转折响应更快。
想直观感受不同计算方式的动量得分差异?可以使用动量计算工具,选择任意 ETF 和计算参数,实时查看各指标的历史走势与当前值。
动量计算工具动量阈值
动量阈值用于对参与排序的标的进行过滤:动量值低于下限或高于上限的ETF将被排除在买入候选之外,不参与最终的 Top N 选取。阈值的含义因计算方式而异。
提示:当所有ETF的动量值都不满足阈值条件时,策略将空仓或买入备选产品(若已配置)。
买入品种数 (Top N)
从动量排序中选择前N名ETF进行买入。这是策略集中度与分散度的关键参数。
参数说明
- • 可选值:1-10
- • 默认值:1
- • N=1:集中投资,收益波动较大
- • N>1:分散投资,降低单一ETF风险,但可能降低收益
资金分配(N > 1 时显示)
当买入品种数大于 1 时,若某日实际买入只数少于 N,可选用两种现金划分方式:
- • 按最大持仓数预留:始终按 N 个仓位等额分资金;少买时未建仓部分仍预留现金,单只仓位与「满仓 N 只」一致。
- • 按买入数分配(默认):只对当日实际买入的标的等额分资金,少买时单只分到的资金更多。
双动量配置
双动量是指同时使用两个不同回看周期计算动量得分,将两个周期的结果综合排名后筛选标的。相比单一周期,双动量能有效降低对参数的过度依赖,使策略在不同市场环境下表现更稳健。
工作原理
- • 分别用周期1和周期2计算每个ETF的动量得分
- • 将两个得分按相同权重合并,得到综合动量排名
- • 从综合排名中选取前N名进行买入
条件过滤
条件过滤在动量排名之前对标的池进行预筛选,不满足所选条件的ETF将从动量排序中移除,不会被买入。多个条件同时勾选时,ETF需要全部满足(AND关系)。
条件一:当前价格 > N日均线
只买入收盘价位于N日均线以上的ETF,避免在下跌趋势中买入。N可自定义,默认60日均线。
- • 常用设置:20日、60日、120日均线
- • 价格跌破均线后不买入,直到价格重新站上均线才重新纳入候选
条件二:快线均线 > 慢线均线(均线多头排列)
只买入快速均线在慢速均线之上的ETF,确认均线多头排列,过滤短期超跌反弹但趋势尚未确认的标的。
- • 快线均线(默认20日)需大于慢线均线(默认60日)
作用:条件过滤可减少在弱势或下跌趋势中买入的概率,提升每次买入的质量。两个条件均为可选,可单独启用或同时启用。
最小持有天数与日期计算类型
最小持有天数控制买入后的最短持有期限,防止频繁换仓。日期计算类型决定天数的统计口径,同时作用于最小持有天数和止盈冷却天数。
交易日计算(推荐)
只计算股市开盘的工作日,更符合实际交易情况
自然日计算
包括所有日期,适用于特殊需求场景
执行时间
执行时间决定了每天在哪个时间点计算动量并检查是否需要调仓,可选时间点为:9:30、10:30、14:30、14:50、15:00。想了解更多关于执行时间的说明可以查看回测执行时间与调仓时间的区别。
备选产品
当标的池中所有ETF都不满足买入条件(动量低于阈值、被条件过滤排除、或大盘择时触发)时,策略将买入此处设置的备选产品。未设置(选择"无")则直接空仓持现金。
- • 默认选项:无 / 10年国债ETF(511260)/ 银华日利ETF(511880)/ 招商双债LOF(161716)/ 黄金ETF(518880)
- • 支持搜索添加其他ETF/LOF作为备选
- • 建议:选择与股票相关性低的资产,如债券ETF或货币ETF,在空仓期降低波动
5. 大盘择时
大盘择时通过指定一个宽基指数ETF作为大盘参考,使用与策略相同的动量计算方式计算大盘的动量值,并与标的池中每个ETF的动量值进行比较。当标的池中所有ETF的动量值都低于大盘动量时,策略不买入,转为空仓或持有备选产品。
大盘指数
用于衡量市场整体强弱的参考ETF。策略会用相同的动量参数(周期、计算方式)计算该指数的动量值,作为买入门槛。
- • 可选:沪深300(510300)、上证综指(510760)、中证500(510500)、上证50(510050)、创业板指(159915)等
- • 大盘指数无需加入标的池,可单独设置
- • 支持搜索添加其他ETF作为参考指数
触发逻辑
大盘择时使用策略配置的相同动量参数(周期 + 计算方式)计算大盘的动量值。
- • ETF动量 > 大盘动量:该ETF保留在候选,参与正常排名和买入
- • ETF动量 ≤ 大盘动量:该ETF被排除,不参与本次买入
- • 当标的池中所有ETF都被排除时,策略空仓或买入备选产品(若有)
效果:大盘择时在市场整体走弱时自动降低持仓,使策略只在标的动量强于大盘时才买入,从而减少系统性下跌中的损失。建议搭配回测验证不同大盘指数选择对策略的影响。
6. 风险控制设置
止盈功能
止盈功能可以在达到预设盈利目标时自动卖出,锁定收益并降低回撤风险。
止盈阈值
当持仓累计收益率(从买入价到当前价)达到设定比例时,触发止盈卖出信号。设置过低会频繁止盈错失大涨机会,设置过高可能无法及时锁定收益。
- • 建议值:10%–20%
- • 计算公式:(当前价格 - 买入价格) / 买入价格 ≥ 止盈阈值
- • 止盈触发后需满足最小持有期才会卖出
止盈冷却期
止盈卖出后,在该天数内不再买入同一ETF,避免在高位反复买卖。冷却期的计算方式与日期计算类型设置联动。
- • 建议值:3-5个交易日
- • 计算方式:按照所选的日期计算类型(交易日/自然日)计算
- • 作用:避免止盈后立即重新买入同一ETF
止损功能
止损功能可以在持仓亏损达到一定程度时自动卖出,及时止损避免更大损失。
止损方式(可同时启用)
支持多种止损方式,可同时启用,任一条件满足即触发卖出。
跌幅止损
当持仓亏损达到设定比例时触发卖出。这是最常用的止损方式,简单有效。
高点回撤止损
当持仓从最高点回撤达到设定比例时触发卖出。适合捕捉上涨后的回调,保护已实现收益。
止损冷却期
止损后该天数内不再买入同一ETF,给市场调整时间。
使用建议:止损功能建议谨慎使用。ETF轮动策略本身具有一定的风险控制能力,过于激进的止损可能影响策略表现。建议先进行回测验证。
极端情况过滤
当ETF出现以下极端情况时,将从动量排序中临时移除,避免在异常情况下被买入。
当日跌停
勾选后,当日跌停的ETF不会被买入,避免遭遇连续跌停的极端行情。
当日涨停
勾选后,当日涨停的ETF不会被买入,避免追高,买入后遭遇回调风险。
两个条件可独立勾选,互不影响。被过滤的ETF仅在当日排除,下一个交易日正常参与排名。
风险提示:止盈和止损功能虽然可以控制风险,但也可能影响策略的整体收益表现。建议根据个人风险偏好和充分的回测验证后谨慎设置。
7. 策略监控与优化
日常监控指标
收益指标
- • 总收益率 - 策略累计收益
- • 年化收益率 - 年化后的收益率
- • 超额收益 - 相对基准的超额表现
风险指标
- • 最大回撤 - 策略的最大亏损幅度
- • 夏普比率 - 风险调整后的收益指标
- • 波动率 - 收益的波动程度
交易指标
- • 调仓频率 - 策略的调仓次数
- • 胜率 - 盈利交易的比例
- • 平均持仓时间 - 单次持仓的平均天数
参数调优
动量周期优化
- • 根据市场环境调整
- • 牛市可适当缩短周期
- • 熊市可适当延长周期
阈值调整
- • 市场波动大时提高阈值
- • 市场平稳时降低阈值
- • 根据交易成本调整
ETF池优化
- • 定期评估ETF表现
- • 剔除表现不佳的ETF
- • 添加新的优质ETF
风险控制
止损设置
- • 建议启用止损功能,设置8%-12%的跌幅止损
- • 可同时启用高点回撤止损,设置5%-10%的回撤阈值
- • 设置止损冷却期,避免止损后立即重新买入
- • 止损触发时不需要满足最小持有期,可立即卖出
交易成本控制
- • 合理设置交易佣金和滑点,使回测更接近实盘
- • 选择次日开盘价交易时,注意滑点会更大
- • 通过最小持有天数控制交易频率,降低交易成本
分散投资
- • 不要将所有资金投入单一策略
- • 建议策略资金不超过总资金的30%
- • 同时运行多个不同参数的策略
- • 可通过设置Top N > 1来分散单一ETF风险
8. 常见问题解答
Q: 策略多久调仓一次?
A: 调仓频率取决于动量阈值设置和市场波动情况。一般情况下,每月调仓2-4次。
Q: 如何选择合适的ETF?
A: 建议选择流动性好、覆盖面广、相关性低的ETF。可以参考平台推荐的ETF组合。
Q: 策略适合什么市场环境?
A: ETF轮动策略在趋势性市场中表现较好,在震荡市场中可能表现一般。
Q: 如何控制策略风险?
A: 通过设置合理的动量阈值、最小持有天数、止盈止损等参数来控制风险。建议启用止损功能,设置8%-12%的跌幅止损,同时可启用高点回撤止损保护收益。
Q: 止盈如何计算?
A: 止盈按持仓累计收益率计算,即(当前价格 - 买入均价)/ 买入均价。达到设定的止盈阈值后,在满足最小持有期的前提下触发卖出。止盈冷却天数内不再买入同一标的,避免在高位反复买卖。
Q: 策略需要多少资金?
A: 最低2,000元,建议至少10,000元以上,资金过少会影响ETF买入数量(ETF最小交易单位为100份)和手续费占比。
Q: 什么是双动量?有什么优势?
A: 双动量是指同时使用两个不同回看周期计算动量得分,综合两个周期的结果进行排名和筛选。相比单一周期,双动量的主要优势:
- • 降低对单一参数的敏感性,减少过拟合风险
- • 短周期捕捉近期趋势,长周期过滤短期噪音,信号更稳健
- • 在不同市场环境下适应性更好
建议短周期设为10天、长周期设为30天作为起始参数进行回测验证。
Q: 动量阈值应该如何设置?
A: 阈值的合理范围因计算方式不同而有所差异:
- • 区间涨幅 / 区间涨幅(分时版):下限建议 0.01~0.05(约 1%~5%),过滤弱势或横盘标的;上限可设为 0.3~1.0 过滤过热行情,设为 0 表示无上限
- • RSRS动量:下限建议 0~0.5(Z-Score 标准化后的值),设为 0 表示仅排除负动量标的;上限一般设为 0(无上限)
- • 斜率 / 加权斜率(及其分时版):下限建议 0~0.2,设为 0 表示仅排除负动量标的;上限一般设为 0(无上限)
我们也可以先设置的宽松一些,然后通过回测结果的动量值分布情况,逐步缩减动量值选择区间,直到找到最适合当前市场环境的阈值。
温馨提示
策略创建是一个持续学习和优化的过程。建议您从简单的参数开始,逐步深入理解策略原理,并根据实际表现进行调整优化。
.png)