← 文档库
📄 文档learn/ETF策略/2026-06-29-ETF轮动策略改进版.md
🌱 创建于2026-07-08 02:17
✏️ 修改于2026-07-08 02:17
👁️ 浏览量—
🔗 短链接/~learn/s/f3ad4ead
🔐 可见性

ETF 轮动策略改进版:效率动量轮动

> 一句话总结:用「对数价格中枢 × 效率系数 × 区间动量」替代传统的「斜率 × R²」,从 ETF 候选池中每日选出趋势最强的 N 只持有。原文声称十年 38 倍(年化 42%),本文档记录策略逻辑并给出复现方案。

---

策略来源

微信公众号「量化君」系列文章:

原文声称绩效(2015-2025):

指标 原始版(斜率×R²) 改进版(动量×效率系数)
--------------------------------------------------
累计收益率 1460.59% 3867.10%
年化收益率 29.82% 42.01%
夏普比率 1.07 1.49
最大回撤 31.30% 26.05%

---

策略核心逻辑

三步改进

1. 趋势衡量:从「斜率 × R²」到「动量 × 效率系数」

原始版:用最小二乘法拟合 N 日价格斜率,乘以决定系数 R² 来衡量趋势质量。

改进版:用区间涨跌幅(动量)× 效率系数。

效率系数(Efficiency Ratio)出自 Kaufman 的自适应均线 AMA:

效率系数 = |位移| / 路程
        = |P_t - P_{t-N}| / Σ|P_i - P_{i-1}|

效率动量 = 动量 × 效率系数,既衡量涨了多少,也衡量涨得有多「顺畅」。

2. 价格:对数化处理

不用原始价格,改用对数价格:

对数价格 = ln(价格中枢)
对数收益率 = ln(P_t) - ln(P_{t-1})

好处:

3. 价格表征:从「收盘价」到「价格中枢」

不用收盘价,改用:

价格中枢 = (开盘价 + 最高价 + 最低价 + 收盘价) / 4

收盘价只是 K 线「彩带」中的一个点,价格中枢更好代表了整根 K 线的运行。

完整计算流程

每天执行以下步骤:

1. 对每只 ETF 计算对数价格中枢:
   log_price_center = ln((open + high + low + close) / 4)

2. 计算 N 日动量:
   momentum = log_price_center[t] - log_price_center[t-N]

3. 计算效率系数:
   displacement = |log_price_center[t] - log_price_center[t-N]|
   path = Σ|log_price_center[i] - log_price_center[i-1]|  (i 从 t-N+1 到 t)
   efficiency_ratio = displacement / path

4. 计算效率动量:
   efficiency_momentum = momentum × efficiency_ratio

5. 排序选出效率动量最强的 SELECT_NUM 只 ETF

6. 如果当前持仓 ≠ 最强 ETF,则调仓换入

---

参数说明

参数 含义 默认值
--------------------
CODE_LIST ETF 候选池代码列表 —
N_DAYS 动量和效率系数的回看天数 20
SELECT_NUM 选几只趋势最强的 ETF 1

---

复现注意事项(避坑)

---

代码位置

---

相关资源

▶ 📜 变更历史(1 次提交)

01005c22026-07-08 02:17chore: 更新择时图表缓存、推送消息、数据拉取、推送历史
🍃quant 知识库
by 伊甸园和枫

🔊 播放设置

勾选音源后调节配比,总和自动归一化
已选 0 个 · 合计:0%
合成中...
00:00/00:00
1.0x

分享图片

生成中...