诸葛陈凯「ERP股债轮动 + 期指增强」策略 —— 可执行说明书
来源:2026-09-20 周直播 互动问答 Q26(债券 / 股债搭配问题)中主播口述的回测作业
文档版本:v1.0 编制日期:2026-09-21
回测区间:2010-04-16(沪深300股指期货 IF 上市)~ 2026-09-21
一、策略逻辑总览
整个策略分两层:
| 层级 | 作用 | 决策变量 |
|---|---|---|
| 第一层:股债择时(Beta开关) | 决定"拿股还是拿债" | 沪深300 股权溢价指数 ERP |
| 第二层:权益端载体选择(Alpha增强) | 决定"股用什么工具拿" | 500/300 比价、IF 年化贴水 |
主播原话要点:
「沪深300的股权溢价指数在6以上的时候,全仓的买入沪深300ETF;股权溢价指数跌破3的时候就清仓。」
「ERP 6以上买 → 持有期间:①500/300比价<1.4 换成 IC 逐月滚月;②否则看 IF 年化贴水是否>4%,超过就换成 IF。」
「跌破3清仓后,资金去买 511010(国债ETF)。」
「去回测一下,从2010年有沪深300期指以来……得出你自己的结论,然后再去想一想还有没有必要在这样的策略上去上杠杆。」
二、核心指标定义
2.1 股权溢价指数 ERP(Equity Risk Premium)
ERP = (1 / PE_TTM) × 100% − 中国10年期国债到期收益率- PE_TTM:沪深300 滚动市盈率(TTM,扣非/整体法由数据源决定)
- 10年期国债收益率:中债国债到期收益率 10年
- 单位:百分点(%)。例如 ERP = 5.73 表示股票盈利收益率比无风险利率高 5.73 个百分点。
数据源
| 项 | 来源 | 覆盖区间 | 说明 |
|---|---|---|---|
| ERP / PE_TTM 日频序列 | 自建工具站 https://crane-trade-tools.vercel.app/api/erp/sh000300 | 2005-04-08 ~ 今(ERP 自 2006-06-02 起,4896 个样本) | 2026-09-21:PE_TTM=13.4853、ERP=5.7326、10Y=1.6829%,历史分位 72.86%。与主播直播口径 5.77 吻合(差 0.04) ⚠ 务必全程固定同一 PE 口径:乐咕乐股口径比本口径高约 +0.31pct,换口径等于换策略(年化差 0.8~1.4pct) |
| 10年期国债收益率 | akshare bond_zh_us_rate(中国国债收益率10年) | 1990-12-19 ~ 今 | 备用/校验 |
| 沪深300价格指数 | akshare stock_zh_index_daily(sh000300) | 2009-12-31 ~ 今 | |
| 沪深300全收益指数 | akshare 全收益口径 | 2009-12-31 ~ 今 | 用于计算 ETF 端持有收益 |
| 中证500价格/全收益 | 同上(sh000905) | 2009-12-31 ~ 今 |
2.2 中证500 / 沪深300 比价
Ratio = 中证500价格指数收盘 / 沪深300价格指数收盘主播阈值:Ratio < 1.4 → 300 换 IC。
2.3 股指期货年化基差率(贴水/升水)
Basis = 期货结算价 − 现货指数收盘
BasisPct = Basis / 现货指数
年化基差率 = BasisPct × 365 / 剩余自然日天数- 负值 = 贴水(期货便宜,多头持有者获得"贴水收敛"收益)
- 正值 = 升水(多头付出成本)
- 主播阈值:年化贴水率 > 4%(即 年化基差率 < −4%)→ 300ETF 换 IF
- 主播补充:能到 8% 更应换(2026-09 实测 IF 年化 −10.9%、IC −10.0%,满足两档)
数据源:中国金融期货交易所官方日交易行情 CSV http://www.cffex.com.cn/sj/hqsj/rtj/{YYYYMM}/{DD}/{YYYYMMDD}_1.csv 覆盖 2010-04-16 ~ 2026-09-21 全部 3993 个交易日,共 27100 条合约日记录。
说明:新浪
futures_zh_daily_sina(IF0/IC0)仅覆盖 2017-01-17 之后,无法支撑 2010 起点的回测,故本策略全程自建 CFFEX 近月合约连续序列,口径统一。
实测年化基差率统计(2010-04-16 ~ 2026-09-21,近月合约,结算价口径)
| 品种 | 均值(dte≥5) | 全样本均值 | 中位数 | 5%分位 | 25%分位 | 75%分位 | 95%分位 | 2026年均值 |
|---|---|---|---|---|---|---|---|---|
| IF | −4.86% | −6.17% | −3.16% | −31.4% | −11.0% | +3.5% | +15.1% | −10.90% |
| IC | −15.78% | −17.68% | −11.14% | −57.8% | −20.3% | −4.3% | +4.6% | −9.96% |
口径说明:主用「剔除距到期 <5 个自然日」的样本(临近到期时年化分母趋近 0 会放大基差)。
未做剔除的全样本均值为 −6.17% / −17.68%。两种口径均不影响策略换仓决策。
实现的滚月超额(年化):IF +2.49%(2010-2026)、IC +12.54%(2015-2026)。
IF 逐年平均年化基差率(%):
| 2010 | 2011 | 2012 | 2013 | 2014 | 2015 | 2016 | 2017 |
|---|---|---|---|---|---|---|---|
| +17.6 | +5.7 | +8.1 | −5.7 | −0.5 | −36.7 | −23.8 | −11.4 |
| 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|---|---|---|---|
| −5.4 | −4.1 | −9.9 | −8.7 | −3.6 | +2.7 | −3.8 | −8.9 | −10.9 |
关键洞察:2010-2012 期指长期升水(IF 年均 +5.7% ~ +17.6%),此时换 IF 是亏的;
2013 年之后转为长期贴水,换 IF 才划算。这正是主播要大家回测才能体会到的"时变"特征。
逐年实现的滚月超额见《回测报告》§6.1(2010 −8.80%、2014 −10.29%、2016 +16.98%、2023 +0.25%)。
三、交易规则(可执行版)
3.1 第一层:ERP 股债择时(滞回开关)
| 触发条件 | 动作 |
|---|---|
| ERP > 6.0 | 进入权益(若当前持债则卖出债券、买入权益) |
| ERP < 3.0 | 清仓权益,转入债券(买入 511010) |
| 3.0 ≤ ERP ≤ 6.0 | 维持现状不动(滞回带,不交易) |
- 初始状态(2010-04-16):当日 ERP < 3 → 起始持仓为债券
- 信号用 t 日收盘的数据计算,t+1 日执行(避免未来函数)
3.2 第二层:权益端载体选择
在每次换月滚动日(= 股指期货到期日,即当月第三个周五)以及每次 ERP 触发入场时,按下列优先级重新评估:
若 Ratio(500/300) < 1.4 且 IC 已上市(≥2015-04-16):
持有 IC 近月合约,逐月滚月
否则 若 IF 年化基差率 < −4%(即年化贴水 > 4%):
持有 IF 近月合约,逐月滚月
否则:
持有 沪深300 ETF(回测中用沪深300全收益指数替代)主播原话中 IC 条件是无条件优先的(不要求 IC 贴水多少);
主播提到的"年化 8% 贴水更好"只是对 4% 阈值的加强说明,不单独设 8% 档。
IC 于 2015-04-16 上市(主播口述"15年2月"略有偏差),此前该条件不可执行,自动退化为 IF 判断。
⚠️ 关于"换回 ETF"的阈值:主播原话只给了 ETF → 期指 这一个方向("贴水超 4% 就换过去"),
未定义何时换回来。本回测为完备性补上了反向规则,并沿用 −4%。
但严格说反向阈值应为 0%(升水才换回)——4% 是"机会成本阈值",0% 才是"盈亏平衡阈值"。
回测对比见 §4.4:0% 阈值在年化/回撤/夏普/换手上全面不劣于 4%。
实盘执行建议采用 0%,尤其当账户资金不足以全额承接 ETF 时(见 §4)。
3.3 期指滚月执行
- 持有近月合约(到期日最近的未到期合约)
- 到期日当天(第三个周五)以结算价平旧仓;同一结算价开新合约
- 日收益 = 所持有合约自身结算价的日变动率(换月日自动衔接,无跳价误差)
3.4 债券端
| 时段 | 工具 | 数据源 |
|---|---|---|
| 2013-03-05 起 | 511010(国债ETF) | 东财基金净值 + 日增长率复利得到总收益序列 |
| 2010-04-16 ~ 2013-03-04 | 上证国债指数 sh000012 日收益 | 上市前代理,年化约 3.9% |
⚠️ 口径校正:511010 全称"国泰上证5年期国债ETF"(2013-03-05 成立,跟踪上证5年期国债指数,久期约 4-5 年),主播口述为"十年期国债ETF"有误。
若需要真正的 10 年期久期,应使用 511260(十年国债ETF,2017-08 上市),但样本过短,不适合做 2010 起点的回测。
本报告按主播指定使用 511010,并同时给出以 sh000012 全时段代理的敏感性对照。
四、资金规模约束与杠杆边界(2026-09-22 新增,必读)
本章回答一个回测里没体现、但实盘一定遇到的问题:
"规则让我把 IF 换回 510300,可我手里没有 137 万,怎么办?"
4.1 策略设计的资金口径是「全额」,不是「保证金」
回测中的 18.19% 年化,隐含的资金结构是:
你有 137.1 万
├── 20.6 万 押在期货账户做保证金(占名义 15%)
└── 116.5 万 放在货币基金 / 国债逆回购(年化约 2%)
总收益 = 指数涨跌 + 期指贴水收敛 + 闲置现金利息期指在这里只是"更便宜地持有同一笔指数暴露"的工具,不是加杠杆的工具。 如果你只有 25~30 万却开了一手 IF,那不是在执行这个策略,而是在执行 4.6~5.5 倍杠杆版—— 两者风险等级完全不同,回测里的 -26.38% 最大回撤对你不成立。
4.2 一手 IF 的头寸换算(2026-09-22 实时)
| 项 | 数值 |
|---|---|
| 沪深300 现价 | 4569.87 点 |
| IF 合约乘数 | 300 元/点 |
| 一手 IF 名义价值 | 1,370,961 元(约 137.1 万) |
| 510300 现价 | 4.636 元 |
| 等价 510300 份数 | 约 295,700 份(约 137.1 万元) |
| 开仓保证金(15%) | 20.6 万元 |
| 维持保证金(12%,跌破即追保/强平) | 16.5 万元 |
保证金比例以自己期货公司实际收取为准(交易所标准 + 期货公司加收,通常 12%~18%)。
4.3 本金多少才不会被打爆
设本金 E、名义 N=137.1 万、维持保证金率 12%,则触发强平的指数跌幅 = (E − N×12%) / N:
| 本金(万) | 实际杠杆 | 可承受亏损(万) | 触发强平的指数跌幅 | 评价 |
|---|---|---|---|---|
| 20 | — | — | — | 开不了仓 |
| 25 | 5.5x | 8.5 | −6.2% | 极危险 |
| 30 | 4.6x | 13.5 | −9.9% | 偏薄 |
| 40 | 3.4x | 23.5 | −17.2% | 偏薄 |
| 50 | 2.7x | 33.5 | −24.5% | 勉强 |
| 54 | 2.5x | 37.5 | −27.4% | 扛住策略历史回撤的下限 |
| 70 | 2.0x | 53.5 | −39.1% | 可接受 |
| 80 | 1.7x | 63.5 | −46.4% | 扛住指数历史回撤的下限 |
| 137 | 1.0x | 120.5 | −87.9% | 稳健(策略设计口径) |
历史参照:策略自身名义最大回撤 −26.38%;沪深300全收益历史最大回撤 −46.06%(2015-06~2016-02); 沪深300 单日最大跌幅约 −7.9%(2020-02-03)。
⚠️ 25 万开一手 IF,沪深300 跌 6.2% 就被强平。
一个 −7.9% 的单日就能让你出局,而这在本策略历史上发生过不止一次。
4.3.1 上表低估了风险:必须加上「基差损耗」
上表只算了指数跌幅,实际账户亏损 = 指数跌幅 + 基差损耗。 在升水期持有 IF 多头,除了指数下跌还要额外亏掉升水收敛,实际亏损显著大于指数跌幅。
用 2010-2026 实际行情逐日盯市模拟(sim_margin.py,维持保证金 12%):
| 本金 | 全程满仓持有 IF(不择时) | 执行 ERP 择时(只在策略让持 IF 时持有) |
|---|---|---|
| 20 万 | 爆仓 2010-06 | 爆仓 2013-06-13 |
| 25 万 | 爆仓 2010-06-07 | 爆仓 2013-06-24 |
| 30 万 | 爆仓 2010-07-02 | 存活(最低权益 10.4 万) |
| 40 万 | 爆仓 2011-10-20 | 存活(最低权益 20.4 万) |
| 54 万 | 爆仓 2012-11-13 | 存活(最低权益 34.4 万) |
| 60 万 | 存活(最低权益 10.2 万) | 存活 |
| 80 万 | 存活(最低权益 30.2 万) | 存活(最低权益 60.4 万) |
| 137 万 | 存活(最低权益 87.2 万) | 存活 |
🔴 54 万在 2012-11-13 会被强平——尽管上表静态计算说它能扛 −27.4%。
原因正是 2010-2013 那段 IF 长期升水:指数跌 37.7%,而 IF 滚动序列实际跌 −49.58%,
多出来的约 11.9pct 全是升水损耗。这也是 §4.4 主张"升水就换回 ETF"的直接证据。
4.3.2 按当前名义(137.2 万)重算安全本金
设指数从 S₀ 跌到 S₁,持有 1 手 IF 的存活条件是 E₀ ≥ 300×(S₀ − 0.88×S₁),即:
| 想扛住的跌幅 | 所需本金 | 对应情形 |
|---|---|---|
| −20% | 40.6 万 | 普通回调 |
| −26.38% | 48.3 万 | 本策略历史最大回撤 |
| −38% | 62.3 万 | IF 在 2010-2013 实际经历的指数跌幅 |
| −46.06% | 72.0 万 | 沪深300历史最大回撤 |
| −49.58% | 76.3 万 | IF 滚动序列最大回撤(含升水损耗) |
| 无杠杆 | 137.2 万 | 100% 复现回测 |
✅ 结论修正:一手 IF 的稳健本金线是 80 万,不是 54 万。
54 万只能扛"策略历史最大回撤",扛不住"IF 自身的历史最差段"。
4.4 切换阈值应该定在 4% 还是 0%?——这是本问题的关键
主播原话只说了单向规则:"当你拿着沪深300ETF时,看 IF 贴水是否超过 4%,超过就换过去。" 他并没有说贴水降到 4% 以下要换回来。 "换回来"是本回测为实现完备性补的。
而补的时候沿用 4% 是错的,因为这两个方向的性质不同:
| 4% | 0%(升水) | |
|---|---|---|
| 性质 | 机会成本阈值——值不值得承担移仓操作、保证金管理、强平风险 | 盈亏平衡阈值——升水时持有期指相对 ETF 确定亏钱 |
| 贴水 3% 时持有 IF | 仍比 ETF 多赚 3%/年 | 同左 |
| 触发频率(198 个滚月决策日) | 52.5% 的日子要换回 | 34.3% 的日子要换回 |
回测对比(全样本 2010-04-16 ~ 2026-09-21)
| 变体 | 年化 | 最大回撤 | 夏普 | 换仓次数 |
|---|---|---|---|---|
| V1 现实现:贴水<4% 换回 (th=−4%) | 18.19% | −26.38% | 1.081 | 53 |
| V2 修正:仅升水才换回 (th=0%) | 18.30% | −25.73% | 1.094 | 51 |
| V3 主播字面:入场定载体不换 | 19.37% | −27.40% | 1.069 | 7 |
V2 在年化、回撤、夏普、换手四项上全面不劣于 V1。 且按 0% 阈值,2016、2025、2026 三年至今零次触发(2026 年 9 个滚月日全部贴水,均值 −10.14%)。 连续升水期只出现在 2010-2014 与 2023 年。
✅ 结论:把"换回 ETF"的阈值设为 0%(升水才换),而不是 4%。
这样几乎不会遇到"被迫筹 137 万买 ETF"的困境,而且回测结果还略好。
4.5 如果真的升水了、而钱不够,四条路径
| 路径 | 名义暴露 | 成本/增强 | 适用 |
|---|---|---|---|
| A 继续滚 IF,只是不再享受贴水 | 137.1 万(不变) | 增强降至 0 或负 | 升水幅度小(<2%)时最省事 |
| B 平 IF,全部资金买 510300 | 降至本金规模(如 30 万) | 无增强,但杠杆归 1 | 推荐:暴露下降是对的,因为原本就超配 |
| C 两融融资买 ETF | 30 万 → 约 67 万 | −6.5%/年融资息,远超贴水收益 | 不推荐 |
| D 买深度实值认购期权替代 | 137.1 万 | 权利金约 34 万,损耗时间价值 | 仅在必须保持全额暴露时应急 |
B 看起来是"砍仓位",但这恰恰是回到正确仓位——
你原本用 30 万撬 137 万,本来就是 4.6 倍超配;换成 30 万 ETF 才是 ERP 信号真正要求的"满仓权益"。
4.6 资金规模 → 载体选择对照
| 可用资金 | 建议载体 | 说明 |
|---|---|---|
| < 80 万 | 只用 510300 | 一手 IF 扛不住历史最差段(2012-11 曾强平 54 万账户)。放弃约 2~3%/年的贴水增强,换取活下来 |
| 80 ~ 137 万 | 一手 IF(1.0~1.7 倍实际杠杆) | 能扛 −46%~−50%;必须预留追加保证金能力,且清楚这不是回测的 1.0 倍口径 |
| ≥ 137 万 | 一手 IF + 剩余现金吃利息 | 100% 复现回测,零杠杆 |
4.7 小资金强行用 IF 的后果:亏损锁定(2026-09-22 补充)
场景:30 万先买 30 万 510300 → 发现贴水>4% 换成 1 手 IF(暴露瞬间跳到 137 万)
→ 持有期间亏损 → 贴水转升水要换回 ETF → 暴露被打回缩水后的本金
→ 之后市场反弹,只能用小得多的本金参与。亏损被"锁死"。
4.7.1 换回时暴露暴跌的历史实例(30 万账户逐日盯市模拟)
| 日期 | 换仓 | 换仓前权益 | IF 名义 | 换后暴露 | 暴露缩水 |
|---|---|---|---|---|---|
| 2012-07-24 | IF→ETF | 29.3 万 | 71.0 万 | 29.3 万 | −59% |
| 2013-08-20 | IF→ETF | 27.3 万 | 69.9 万 | 27.3 万 | −61% |
| 2013-12-24 | IF→ETF | 24.2 万 | 68.5 万 | 24.2 万 | −65% |
| 2014-04-22 | IF→ETF | 23.6 万 | 65.6 万 | 23.6 万 | −64% |
| 2015-02-26 | IF→ETF | 45.2 万 | 104.4 万 | 45.2 万 | −57% |
换回 ETF 这个动作本身不产生新亏损——亏损在持有 IF 期间已经发生。 问题是:之后你只能用 24 万而不是 68 万去参与反弹。
4.7.2 数学机制:路径依赖的亏损锁定
设杠杆 L=4.6(30 万本金持 137 万名义),先跌 d 再涨 u 且市场回到原点:
| 情形(涨回原位) | 杠杆账户 | 无杠杆 |
|---|---|---|
| 跌 10% 后涨 11.1% | 0.60 | 1.00 |
| 跌 20% 后涨 25.0% | 0.10 | 1.00 |
| 跌 30% 后涨 42.9% | −0.54(爆仓) | 1.00 |
市场回到原点,杠杆账户亏掉 40%~100%。 这就是"亏损锁定"的数学本质。
4.7.3 30 万本金做完整策略,到底值不值
| 方案 | 最终权益 | 年化 | 账户最大回撤 |
|---|---|---|---|
| A 30 万严格执行(硬开 1 手) | 268.2 万 | 14.26% | −49.9% |
| B 30 万只用 ETF(不做期指) | 239.0 万 | 13.46% | −26.9% |
| C 30 万 + 资金门槛(权益≥55%名义才换 IF) | 272.3 万 | 14.37% | −24.9% |
🔴 A 比 B 只多赚 0.80pct/年,却要多扛近一倍的回撤(−26.9% → −49.9%)。
而且 A 历史上没爆仓是运气——−49.9% 已非常接近强平线。
✅ C 方案(加资金门槛)年化反而最高、回撤最小。 它等价于:
账户权益 < 名义 × 55%(约 75 万)时,不用期指,直接持有 ETF;等账户长大到能安全持有一手 IF 再换。
4.7.4 为什么这个组合最坏
换回 ETF 的触发条件(升水)与亏损并不同步:
- 市场大跌时,期指通常深贴水(对冲需求旺)→ 不触发换回 → 你继续满杠杆扛亏损
- 市场反弹 / 情绪转暖时,期指易转升水 → 正好触发换回 → 恰恰在要靠反弹回本时降杠杆
即:跌的时候满杠杆扛着,反弹的时候降杠杆。
4.7.5 附:回测隐含"手数可小数调整",实盘必须注意
| 手数口径(137 万起点) | 年化 | 最大回撤 |
|---|---|---|
| 小数手(回测隐含口径) | 17.99% | −26.7% |
| 整数手 round(E/N)(真实可执行) | 17.88% | −26.8% |
| 固定只持 1 手 | 8.40% | −23.7% |
- 整数手与小数手仅差 0.11pct → 回测的 18.19% 对 ≥137 万账户是可执行的
- 但绝不能从头到尾只持 1 手:账户涨到 500 万时,1 手 IF 只占 27%,年化掉到 8.40%。
→ 必须随账户增长同步增加手数(每期按 round(权益/名义) 调整)
没有"更小的沪深300期指"。各品种一手名义(2026-09-22):
IF 沪深300 137.2 万 / IH 上证50 87.2 万 / IC 中证500 158.1 万 / IM 中证1000 156.4 万。
IH 门槛最低但标的是上证50,偏离策略标的,不建议为降门槛而换品种。
若资金不足 80 万又想做这个策略,正确做法是用 510300 做,而不是换小品种。
四·八 资金不够时该砍哪条腿?——「去掉 IF、只留 IC」是反的(2026-09-22)
用户提案:本金不足 137 万,把「IF 贴水 >4% 换 IF」删掉,保留「比价 <1.4 换 IC」, 理由是"IC 大概率长期贴水、升水期短"。三条理由都不成立 / 或不足以支撑这个取舍。
4.8.1 直觉对,但结论反了:逐条拆解
| 判断 | 数据 | 结论 |
|---|---|---|
| "IC 长期贴水" | IC 贴水天数 83.2%、IC 均值 −17.68%;IF 73.2%、−10.74%(全样本) | ✔ 直觉正确 |
| "IC 升水期短" | IC 升水天数 16.8% vs IF 26.8% | ✔ 直觉正确 |
| "所以应该用 IC" | IF 腿持有 29.4% 的交易日,IC 腿只有 11.3% | ✘ 反了 |
频率压过深度。 IF 触发条件(贴水 >4%)在全样本有 1933 天满足; IC 触发条件(比价 <1.4)只有 791 天,且高度集中在 2018-2020 (中证500 相对沪深300 大幅跑输的那三年),2016/2017/2023/2025/2026 一次都没有。 最近一次比价 <1.4 是 2024-09-26;当前比价 1.729,距 1.4 还差 0.329。
4.8.2 四条腿的实际贡献(2010-04-16 ~ 2026-09-21,原口径复算)
| 变体 | 年化 | 最大回撤 | 夏普 | 相对纯 ETF |
|---|---|---|---|---|
| ① 全都要(IF + IC) | 18.24% | −26.31% | 1.12 | +4.73% |
| ② 只留 IF(砍掉 IC) | 16.24% | −26.31% | 1.04 | +2.73% |
| ③ 只留 IC(用户方案) | 15.82% | −26.92% | 1.00 | +2.31% |
| ④ 只用 300ETF | 13.51% | −26.92% | 0.90 | — |
若只能留一条腿,留 IF 优于留 IC(16.24% > 15.82%)。
4.8.3 资金门槛:IC 比 IF 更贵,不解决任何问题
| 品种 | 合约乘数 | 一手名义(2026-09-21) |
|---|---|---|
| IF 沪深300 | 300 | 136.2 万 |
| IC 中证500 | 200 | 157.0 万(比 IF 大 15.3%) |
中证500 点位远高于沪深300,即便乘数更小,名义反而更大。 "用 IC 替代 IF 来降低门槛"在几何上就不成立——IC 是本策略名义最大的品种之一 (历史一手名义区间 55.0 万 ~ 230.9 万(2015-06-12))。
4.8.4 加「不许加杠杆」闸门后的真实结果
口径:权益 ≥ 一手名义才允许上期指(否则留在 ETF),整数手,总敞口恰等于权益。
| 入场 | 本金 | 只留 IF | 只留 IC | 纯 ETF | 实际用到期指的天数 |
|---|---|---|---|---|---|
| 2010 | 30 万 | 14.00% | 15.31% | 13.51% | IF 754 / IC 452 |
| 2010 | 70 万 | 14.90% | 15.38% | 13.51% | IF 1387 / IC 452 |
| 2015 | 50 万 | 13.38% | 15.40% | 12.93% | IF 486 / IC 421 |
| 2018 | 30 万 | 11.43% | 11.54% | 11.64% | 均为 0 |
| 2021 | 30~70 万 | 6.09% | 6.26% | 6.29% | 均为 0 |
| 2024 | 30~70 万 | 13.38% | 13.63% | 13.68% | 均为 0 |
⚠ 最该看的一行:2015 年之后入场、本金 30~70 万 —— 两条腿都完全用不上,
结果就是纯 ETF。原因很简单:账户还没长到一手名义,期指规则自动失效。
上面 30 万/2010 入场时 IC 反而略胜,是路径依赖:到 2018 年账户已复利长到 90~100 万,
刚好够开一手 IC(当时名义仅 82~106 万)。现在入场没有这 8 年的复利缓冲。
4.8.5 攒到够用需要多久(纯 ETF 年化 13.5%,点位不变)
| 现有本金 | 够开一手 IF(136 万) | 够开一手 IC(157 万) |
|---|---|---|
| 30 万 | 11.9 年 | 13.1 年 |
| 50 万 | 7.9 年 | 9.0 年 |
| 70 万 | 5.3 年 | 6.4 年 |
| 100 万 | 2.4 年 | 3.6 年 |
4.8.6 深贴水 ≠ 安全
IC 年化基差与中证500 距前高回撤的相关系数 −0.119;按基差分组:
| IC 年化基差 | 天数 | 当时中证500 平均回撤 | 后续 60 日收益均值 |
|---|---|---|---|
| 贴水 >20% | 848 | −44.1% | −0.3% |
| 10~20% | 709 | −47.2% | +2.2% |
| 5~10% | 417 | −47.1% | +1.3% |
| <5% 或升水 | 808 | −46.4% | −1.2% |
深贴水经常是熊市的产物(多为雪球/中性策略对冲需求所致),
那时指数已在 −44% 的深坑里。后续 60 日收益在贴水 >20% 这一档甚至为负。
贴水是持有期的正 carry,不是下跌保护,也不是买点信号。
4.8.7 结论与建议
- 不要砍 IF 留 IC。 若必须取舍,砍 IC 留 IF(+2.73% vs +2.31%),且 IF 更便宜、更常用、当前生效。
- 当前状态:IF 年化贴水 −7.84%(>4%,IF 条件成立);比价 1.729(IC 条件不成立)。
→ 现在真正卡住你的是"你开不起一手 IF",不是"该不该用 IC"。
- 本金 <136 万时的正确做法:只做第一层(510300),把期指规则整体挂起,
在规则里加一条闸门——权益 ≥ 一手 IF 名义(当前 136 万)才允许换期指。 代价是放弃约 4.7%/年的增强;换来的是不用承担 §4.7 描述的"亏损锁定"。
- 不要把 IC 当作降门槛的手段——它是更高门槛。
4.9 「进了 IC 就一直拿着」——这个改造有效,但保护你的不是贴水(2026-09-22 补充)
用户提出的方案:IC 长期贴水 → 换成 IC 后不轻易换出(短暂升水硬扛),
只有两种情形才卖 IC:① ERP<3(全市场贵了,转债)② 比价>1.7(中证500 相对贵了,换回 300)。
由此推论:持有 IC 的这段时间一定赚钱,杠杆不会加倍亏钱。
本节用同一口径(与 §2 主回测完全一致)实测该方案,检验其成立程度。
4.9.1 先说结论:这个改造让策略变好了,值得采纳
| 版本 | 年化 | 最大回撤 | 夏普 | 换仓次数 | IC 时间占比 |
|---|---|---|---|---|---|
| 官方原版:比价<1.4 就进/掉出即换回(单边,每月滚月日检查) | 18.24% | −26.31% | 0.999 | 53 | 11.3% |
| 用户方案:比价<1.4 进 / >1.7 出(双边滞回) | 19.58% | −27.40% | 1.029 | 25 | 36.2% |
| 只留 IC 腿(完全不用 IF) | 17.66% | −27.40% | 0.934 | 8 | 36.2% |
年化 +1.34 个百分点、换手减少一半、IC 暴露提升 3.2 倍。 这是本轮讨论中唯一真实提升策略的改动。
补充一个被忽略的事实:官方回测代码里 else: new = pos,意味着只在滚月日重新决策, 非滚月日一律沿用旧仓——所以"短暂升水硬扛"本来就写在原规则里,只是原版在每个月的滚月日会重新检查 <1.4。 用户的提案本质是把这个"月度硬扛"延长为"数年级持有"。
4.9.2 但"持有 IC 一定赚钱"这个推论不成立——四条硬证据
① 样本只有 2 段,2/2 = 100% 毫无统计意义
按用户规则,全历史只产生过两次 IC 持有:
| 入场 | 出场 | 交易日 | 入场名义 | IC 滚动收益 | 相对入场最深浮亏 | 卖出原因 |
|---|---|---|---|---|---|---|
| 2018-10-19 | 2021-01-04 | 538 | 82.6 万 | +102.9% | −1.1% | ERP<3 清仓(比价才 1.231) |
| 2022-04-27 | 2026-01-19 | 905 | 108.7 万 | +99.7% | −7.2% | 比价 1.751 > 1.7 |
② 卖出的真相:两次里只有一次是"IC 贵了"
- 第一次结束时比价 1.231——远低于 1.7,即那时中证500 没有贵到要卖。
真正的卖出指令来自 ERP<3(2.983)全市场清仓,与 IC 贵贱无关。
- 只有第二次(比价 1.751)才真正对应用户设想的"IC 变贵了才卖"。
也就是说:决定你什么时候离开 IC 的,主要是 ERP(全市场估值),而不是你自己那条 1.7 规则。
③ 扩大样本后,28% 的入场时点是亏的
把所有 比价<1.4 的触发日(791 个交易日)全部当作入场点,持有 500 个交易日:
| 指标 | 比价<1.4 入场 | 任意时点入场 |
|---|---|---|
| 后续 500 日最深跌幅(平均) | −23.2% | −32.7% |
| 后续 500 日最深跌幅(最差) | −36.2% | −54.3% |
| 持有 500 日后仍亏损的比例 | 28% | — |
入场条件确实有保护(把最差情形从 −54.3% 压缩到 −36.2%), 但每 3~4 次触发就有 1 次是 500 天后还在亏,且最差浮亏仍有 −36.2%。
④ 真正保护你的不是贴水,是入场条件
把 IC 收益拆成 beta 与贴水超额:
| 段 | IC 总收益 | 其中 beta(中证500 涨幅) | 其中贴水超额 | 贴水年化贡献 | 若无贴水 |
|---|---|---|---|---|---|
| 2018-10-19 ~ 2021-01-04 | +102.9% | +57.0%(55%) | +45.8%(45%) | +15.05%/年 | 仍 +57.0% |
| 2022-04-27 ~ 2026-01-19 | +99.7% | +52.4%(53%) | +47.3%(47%) | +8.40%/年 | 仍 +52.4% |
贴水贡献巨大(年化 8.4%~15.1%),但把贴水完全抠掉,两段依然各自赚 52%~57%。 原因很简单:比价<1.4 要求中证500 相对沪深300 已跌到历史低位(约 20% 分位), 这本身就是个抄底信号。如果把入场条件换成一个随机时点,贴水救不了你。
4.9.3 「完全不换出」反而最差——存在一个最优区间
| 换出阈值 | 年化 | 最大回撤 | 夏普 | IC 时间占比 |
|---|---|---|---|---|
| 比价>1.4 即换出(原版) | 15.82% | −26.92% | 0.875 | 11.3% |
| 比价>1.6 换出 | 18.58% | −23.17% | 0.992 | 25.6% |
| 比价>1.7 换出(用户提案) | 17.66% | −27.40% | 0.934 | 36.2% |
| 比价>1.9 换出 | 17.95% | −27.40% | 0.928 | 40.3% |
| 永不主动换出(只等 ERP<3) | 15.24% | −27.40% | 0.814 | 40.3% |
⚠️ 注意:这是只留 IC 腿(不用 IF)口径下的数据,与原版全策略不可直接比较。 表中 1.6 看似最优,但大概率是事后选优(overfitting)——只有 2~4 个有效样本, 换一个阈值就换一批结果。没有统计显著性,不要照着 1.6 去实盘。
真正稳健的结论只有一条:"永不换出"明显劣于"有换出规则"(15.24% vs 17.6~18.6%)。 你直觉里的"746 硬扛"是对的,但完全依赖 ERP 一条腿兜底,会吃掉约 2.4~3.3 个百分点/年。
4.9.4 致命一击:现在的名义是历史 IC 段的 1.44~1.9 倍,安全垫已被吃掉
历史上两次 IC 入场的名义是 82.6 万 / 108.7 万。而现在(2026-09-22):
中证500 = 7828.94 → 一手 IC 名义 = 156.6 万
| 本金 | 杠杆(现在) | 扛得住的名义跌幅 | 历史 IC 段最深浮亏 |
|---|---|---|---|
| 30 万 | 5.22x | −8.1% | −7.2%(几乎贴脸) |
| 50 万 | 3.13x | −22.7% | −7.2% |
| 70 万 | 2.24x | −37.2% | −7.2% |
| 100 万 | 1.57x | −58.9% | −7.2% |
同样的 −7.2% 浮亏(历史 IC 段最惨时刻),在今天的名义下:
| 本金 30 万 | 本金 50 万 | |
|---|---|---|
| 历史段(108.7 万名义) | 剩 22.2 万(−26.1%) | 剩 42.2 万(−15.7%) |
| 现在(156.6 万名义) | 剩 18.7 万(−37.6%) | 剩 38.7 万(−22.5%) |
而且 −36.2% 是§4.9.2③测出的最差情形,不是 −7.2%。 一旦出现,156.6 万名义亏掉 56.7 万——70 万本金只剩 13.3 万(−81%),50 万本金直接爆仓。
对照中证500 的历史极端区间:
| 区间 | 指数跌幅 | 一手名义亏损 | 30万 | 50万 | 70万 | 100万 | 136万 |
|---|---|---|---|---|---|---|---|
| 2015-06-12 ~ 2016-06-21(最差250日) | −48.8% | 112.6 万 | 爆仓 | 爆仓 | 爆仓 | 爆仓 | 存活(剩23.4万) |
| 2010-11-11 ~ 2012-11-27(最差500日) | −47.4% | 51.5 万 | 爆仓 | 爆仓 | 存活(18.5万) | 存活(48.5万) | 存活(84.5万) |
4.9.5 结论:你的框架对了,但结论句要改
| 你的表述 | 实测判定 |
|---|---|
| ① IC 大概率长期贴水(83.2% 天数贴水,均值 −17.68%) | ✔ 成立 |
| ② 短暂升水不必换出,硬扛 | ✔ 成立,且官方规则本就在非滚月日沿用旧仓 |
| ③ 改成双边滞回能让策略更好 | ✔ 成立,年化 18.24% → 19.58%,换手减半 |
| ④ 卖出 IC 是因为"IC 贵了" | ✖ 只对一半:两次卖出中真正由比价触发的只有 1 次,另一次是 ERP<3 清仓 |
| ⑤ 持有 IC 这段"一定赚钱" | ✖ 不成立:样本仅 2 段;扩大后有 28% 的入场点 500 日后仍亏;最差浮亏 −36.2% |
| ⑥ 保护来自贴水 | ✖ 主要不是:贴水完全抠掉仍赚 52%~57%;真正的保护是"比价<1.4 = 低位"这个入场过滤 |
| ⑦ 不会因杠杆加倍亏钱 | ✖ 不成立:现在名义 156.6 万,30 万本金 = 5.22x,只能扛 −8.1%,而历史最差是 −36.2% |
修正后的正确表述:
「IC 长期贴水 + 双边滞回持有」确实优于原规则(+1.34pct/年),值得采纳;
持有期的下行之所以有限,主要因为"比价<1.4"把你送在了中证500 的相对低位,贴水是锦上添花(年化 8.4%~15.1%)。
这个结论的前提是你必须扛得住 156.6 万名义的波动——而这需要 ≥100 万本金。
本金不足时,历史上那两次幸运的 IC 段与你无关:同样 −7.2% 的浮亏,在今天会吃掉 37.6% 的权益。
📌 本节全部可复现:
ic_hold_test.py(口径校验 + 段分析 + 本金扫描)、
ic_deep_check.py(归因 / 卖出真相 / 等待成本)、ic_stress.py(保护机制 / 极端区间压力测试)。口径校验结果:官方 pos + 本脚本引擎 = 18.19% / −26.38%,与主报告完全一致。
五、交易成本与资金假设
| 项目 | 取值 | 说明 |
|---|---|---|
| 沪深300 ETF 单边成本 | 0.05% | 佣金 + 冲击 |
| 债券 ETF(511010)单边成本 | 0.03% | 场内免印花税 |
| 股指期货单边成本 | 0.03% | 手续费(约万0.23)+ 滑点,已含平今较高费率 |
| 期指保证金比例 | 15% | IF/IC 交易所 12%,期货公司通常加到 15% |
| 保证金外闲置资金收益 | 年化 2.0% | 货币基金 / 国债逆回购近似 |
| 沪深300ETF 跟踪损耗 | 年化 0.30% | 用全收益指数替代 ETF 净值的管理费差异扣减 |
| 换仓成本 | 双边(平旧 + 开新) | 仅在实际切换标的时计提 |
五、回测执行步骤(可复现)
1. fetch_data.py # 抓取指数、ERP、国债收益率
2. fetch_cffex.py # 并发抓取中金所 3993 个交易日日行情 CSV
3. prep_data.py # 解析合约、构建近月连续、基差与年化贴水序列、债券序列
4. backtest.py # 按上述规则逐日回测,输出净值/指标/交易明细/图表七、已知局限与风险提示
- 策略有"盈利周期陷阱"适用边界(最重要):ERP 用滚动 PE 构造,而 PE_TTM 在盈利顶点最低、在盈利谷底最高。
因此"ERP 跌破 3 就清仓"这条规则,只在"估值型下跌"(2015、2021 那种 PE 先扩张的泡沫顶)中有效; 在"盈利崩溃型下跌"(2008-09 那种 TTM 盈利仍在高位、PE 看着不贵的时点)中会发出假信号—— 2006-06 与 2008-09 两次假信号之后 12 个月沪深300 分别 +194.89% 和 +43.31%。 2010-2026 这段样本恰好以估值型为主,所以回测表现好,这是本策略最重要的适用边界。 (详见《回测报告》§7.4)
- ERP 口径依赖 PE 数据源:不同数据源(理杏仁 / 蛋卷 / 中证指数公司)PE_TTM 差异可达 0.5-0.7,对应 ERP 差异约 0.4 个百分点,会移动触发时点。本报告全部使用同一口径(自建工具站),内部可比。
实测敏感度:ERP 整体平移 ±0.4pct → 年化在 13.66%~18.19% 之间、回撤在 −23.0%~−33.9% 之间; 换成乐咕乐股口径(ERP +0.31pct)年化约 16.8%~17.4%。
- 全收益指数替代 ETF:未考虑 ETF 的实物申赎摩擦、分红到账再投资时滞。
- 期指未考虑:保证金追保、涨跌停无法平仓、极端行情下的流动性风险。
这是最容易被忽略的一条——回测假设"你有全额资金,期指只是载体", 而实盘若以保证金撬动,实际杠杆可达 4~6 倍,回测的最大回撤口径完全失效。 实盘执行前必读 §4(资金规模约束):本金 <80 万时不建议使用 IF 作为载体。
- IC 深贴水的另一面:IC 常年 −15% 的年化贴水意味着长期做多的超额收益来源是"卖空者的对冲成本",该成本会随监管(如 2015-09 限仓、2020 后松绑)而剧烈变化,历史超额不代表未来可得。
- 2010-2012 期指升水(以及 2023 年)说明"换 IF"并非永远有利。
规则中的 4% 阈值用于过滤升水期,但严格说盈亏平衡点应在 0%(升水才换回)—— 4% 只是机会成本阈值。回测显示 0% 阈值四项指标全面不劣于 4%,见 §4.4。
- ERP 择时的样本量极低:16 年仅 53 次换仓,其中决定方向的"跌破 3"卖出信号只有 3 次(全命中)。
拉长到 20 年全样本(2006-2026)去重后为 3/6 命中(p=0.656,统计上不显著); 买入信号(升破 6)去重 9 次、命中 6 次,证据相对更强。 即:卖出规则的表现是 3 次幸运事件,不构成可外推的统计证据。
- IC 载体规则不稳健:比价<1.4 用 IC → 18.19%;不用 IC → 16.19%;IC 无条件一直用 → 19.35%(反而更好)。
说明"+IC 切换 +2.00%/年"是特定阈值的产物。建议对 IF 阈值加滞回(进 −5% / 出 −3%)以减少近年抖动。
- 本报告为历史回测,不构成投资建议。
📌 完整的独立可信度审查见同目录 `回测可信度审查报告.md`(6 个脚本独立重算全流程、
逐笔核对 53 次换仓、ERP 平移/阈值网格/事件研究/蒙特卡洛等稳健性检验)。
结论:数据与代码可靠、可 100% 复现;但"年化 18.19%"应表述为"约 17%,区间 13.7%~18.2%"。