ETF双池动量轮动:固定池与动态流动性池
这套QMT策略把固定核心ETF池与动态流动性池合并,再进行均线、动量和异常量过滤。整理版为 v1.0.0(2026-10-08),适用于大QMT内置Python。

双池怎么构建
固定池保留预设ETF范围;动态池按前5个交易日平均成交额排序,默认取超过5000万元的前100只。两池合并去重后筛选,成交额排名不直接成为买入排名。
动态池09:20后首个回调补建,每日只更新一次。回测只有09:30或09:31分钟K线时也能触发。数据不足5根日线的ETF不参加动态成交额排名。
筛选规则
- 双均线过滤:筛选时价格高于短均线,短均线高于长均线,默认20/60日。
- 加权动量:25根已收盘日线加当前价格,对对数价格加权回归,评分为斜率推算年化值乘R²,保留
0 < score < 5。 - 投影量过滤:当日累计分钟量按已交易分钟投影到240分钟,再除以近5日日均量,默认上限2.5。
- 目标选择:默认选排名第一只;可配多只、优先不同名称主题,数量不足时允许同主题补足。
“年化值”是动量公式中的数学换算,不是策略年化收益。量投影假设成交量随时间均匀分布,也不等同于行情软件标准量比。
参数与时间表
| 项目 | 默认配置 |
|---|---|
| 持仓数 | 1 |
| 动量日线窗口 | 25,另加当前价 |
| 均线 | MA20 / MA60 |
| 动态池 | 近5日日均成交额 > 5000万元,最多100只 |
| 放量阈值 | 投影量比2.5 |
| 主题优先分散 | 关闭,可选 |
| 资金使用比例 | 总资产的100%,买入保留可用资金0.5%缓冲 |
| 观察模式 | 实盘默认启用,不发委托 |
| 时刻 | 动作 |
|---|---|
| 09:20后首个回调 | 更新动态池 |
| 13:09 | 检查成本比例止损、异常量和调出 |
| 13:10 | 按目标名单买入,无有效候选时使用防御ETF |
| 14:59 | 输出持仓日志 |
成本比例止损默认为0.92,只在卖出时刻检查。T+1、跳空与成交条件都会影响执行,不能理解为损失上限固定8%。当日止损或异常量触发的代码不再立即回买。
QMT运行步骤
- 在大QMT编辑器导入整理版Python源码,按UTF-8读取。
- 主图设为1分钟,下载候选ETF对应日线和分钟历史,回测区间前至少预留90个交易日。
- 先保持
dry_run=True运行观察,检查池数量、筛选名单和拟买卖日志。 - 客户端回测走
handlebar,实盘走run_time加分钟回调;日期戳避免同日重复执行。 - 对照资产、持仓、委托和成交后填写回测记录。实盘发单需要独立账户和独占状态文件。
历史日线截止上一交易日,回测当前价截止回调时刻。本地缺少行情会跳过候选。主图分钟缺失或错过13:09/13:10时刻不会盘后补单。
持仓隔离怎样做
整理版记录本策略曾提交买入的证券代码,只处理记录范围内的持仓。总持仓用 m_nVolume,卖出用 m_nCanUseVolume,可卖数量为0时不替换成总量。
实盘要求独立策略账户。发现未登记的已有持仓时暂停发单,同账户同证券的手工交易也不能凭这份代码表拆分。状态文件记录代码,不是逐笔成交归属账本。
委托返回不代表成交;卖单未成交会影响后续买入资金。相关接口见 get_trade_detail_data、passorder 和 委托回调。
与七星、五福对照
| 策略 | 主要侧重点 |
|---|---|
| 七星ETF动量轮动 | 固定池按动量拟合评分 |
| 五福ETF轮动 | 动态分层、滤波与防御安排 |
| ETF双池动量轮动 | 固定池加成交额动态池,双均线和投影量过滤 |
不同版本需要在相同区间、费用和数据下比较。增加筛选规则不等于提高收益。
源码与验证进度
配套材料包含 .py / .txt 源码、参数说明、版本说明、回测记录模板和14项本地行为测试。星球上架材料已整理,正式附件发布仍需完成来源核对及客户端验证,可在 知识星球 查看后续更新。
本地测试和语法检查通过。尚无本版已核验的QMT收益曲线、收益率或最大回撤;没有使用其他ETF轮动版本的回测图。
来源沿用策略库原文件注明的聚宽「ETF双池平滑动量轮动.py」,具体原作者和再分发授权尚待核对。固定池历史成分、ETF上市时间和退市样本会影响回测代表性。
不构成投资建议,不代操盘。
