Crane Trade Tools
首页 / 股债轮动策略 / 策略说明书

策略说明书

指标定义、两层交易规则、数据源、成本假设与资金规模约束(可执行版)

返回策略流程图

诸葛陈凯「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/sh0003002005-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 逐年平均年化基差率(%):

20102011201220132014201520162017
+17.6+5.7+8.1−5.7−0.5−36.7−23.8−11.4
201820192020202120222023202420252026
−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———开不了仓
255.5x8.5−6.2%极危险
304.6x13.5−9.9%偏薄
403.4x23.5−17.2%偏薄
502.7x33.5−24.5%勉强
542.5x37.5−27.4%扛住策略历史回撤的下限
702.0x53.5−39.1%可接受
801.7x63.5−46.4%扛住指数历史回撤的下限
1371.0x120.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.08153
V2 修正:仅升水才换回 (th=0%)18.30%−25.73%1.09451
V3 主播字面:入场定载体不换19.37%−27.40%1.0697

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 两融融资买 ETF30 万 → 约 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-24IF→ETF29.3 万71.0 万29.3 万−59%
2013-08-20IF→ETF27.3 万69.9 万27.3 万−61%
2013-12-24IF→ETF24.2 万68.5 万24.2 万−65%
2014-04-22IF→ETF23.6 万65.6 万23.6 万−64%
2015-02-26IF→ETF45.2 万104.4 万45.2 万−57%

换回 ETF 这个动作本身不产生新亏损——亏损在持有 IF 期间已经发生。 问题是:之后你只能用 24 万而不是 68 万去参与反弹。

4.7.2 数学机制:路径依赖的亏损锁定

设杠杆 L=4.6(30 万本金持 137 万名义),先跌 d 再涨 u 且市场回到原点:

情形(涨回原位)杠杆账户无杠杆
跌 10% 后涨 11.1%0.601.00
跌 20% 后涨 25.0%0.101.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%
④ 只用 300ETF13.51%−26.92%0.90—

若只能留一条腿,留 IF 优于留 IC(16.24% > 15.82%)。

4.8.3 资金门槛:IC 比 IF 更贵,不解决任何问题

品种合约乘数一手名义(2026-09-21)
IF 沪深300300136.2 万
IC 中证500200157.0 万(比 IF 大 15.3%)

中证500 点位远高于沪深300,即便乘数更小,名义反而更大。 "用 IC 替代 IF 来降低门槛"在几何上就不成立——IC 是本策略名义最大的品种之一 (历史一手名义区间 55.0 万 ~ 230.9 万(2015-06-12))。

4.8.4 加「不许加杠杆」闸门后的真实结果

口径:权益 ≥ 一手名义才允许上期指(否则留在 ETF),整数手,总敞口恰等于权益。

入场本金只留 IF只留 IC纯 ETF实际用到期指的天数
201030 万14.00%15.31%13.51%IF 754 / IC 452
201070 万14.90%15.38%13.51%IF 1387 / IC 452
201550 万13.38%15.40%12.93%IF 486 / IC 421
201830 万11.43%11.54%11.64%均为 0
202130~70 万6.09%6.26%6.29%均为 0
202430~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 结论与建议

  1. 不要砍 IF 留 IC。 若必须取舍,砍 IC 留 IF(+2.73% vs +2.31%),且 IF 更便宜、更常用、当前生效。
  2. 当前状态:IF 年化贴水 −7.84%(>4%,IF 条件成立);比价 1.729(IC 条件不成立)。

→ 现在真正卡住你的是"你开不起一手 IF",不是"该不该用 IC"。

  1. 本金 <136 万时的正确做法:只做第一层(510300),把期指规则整体挂起,

在规则里加一条闸门——权益 ≥ 一手 IF 名义(当前 136 万)才允许换期指。 代价是放弃约 4.7%/年的增强;换来的是不用承担 §4.7 描述的"亏损锁定"。

  1. 不要把 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.9995311.3%
用户方案:比价<1.4 进 / >1.7 出(双边滞回)19.58%−27.40%1.0292536.2%
只留 IC 腿(完全不用 IF)17.66%−27.40%0.934836.2%

年化 +1.34 个百分点、换手减少一半、IC 暴露提升 3.2 倍。 这是本轮讨论中唯一真实提升策略的改动。

补充一个被忽略的事实:官方回测代码里 else: new = pos,意味着只在滚月日重新决策, 非滚月日一律沿用旧仓——所以"短暂升水硬扛"本来就写在原规则里,只是原版在每个月的滚月日会重新检查 <1.4。 用户的提案本质是把这个"月度硬扛"延长为"数年级持有"。

4.9.2 但"持有 IC 一定赚钱"这个推论不成立——四条硬证据

① 样本只有 2 段,2/2 = 100% 毫无统计意义

按用户规则,全历史只产生过两次 IC 持有:

入场出场交易日入场名义IC 滚动收益相对入场最深浮亏卖出原因
2018-10-192021-01-0453882.6 万+102.9%−1.1%ERP<3 清仓(比价才 1.231)
2022-04-272026-01-19905108.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.87511.3%
比价>1.6 换出18.58%−23.17%0.99225.6%
比价>1.7 换出(用户提案)17.66%−27.40%0.93436.2%
比价>1.9 换出17.95%−27.40%0.92840.3%
永不主动换出(只等 ERP<3)15.24%−27.40%0.81440.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       # 按上述规则逐日回测,输出净值/指标/交易明细/图表

七、已知局限与风险提示

  1. 策略有"盈利周期陷阱"适用边界(最重要):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)

  1. 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%。

  1. 全收益指数替代 ETF:未考虑 ETF 的实物申赎摩擦、分红到账再投资时滞。
  2. 期指未考虑:保证金追保、涨跌停无法平仓、极端行情下的流动性风险。

这是最容易被忽略的一条——回测假设"你有全额资金,期指只是载体", 而实盘若以保证金撬动,实际杠杆可达 4~6 倍,回测的最大回撤口径完全失效。 实盘执行前必读 §4(资金规模约束):本金 <80 万时不建议使用 IF 作为载体。

  1. IC 深贴水的另一面:IC 常年 −15% 的年化贴水意味着长期做多的超额收益来源是"卖空者的对冲成本",该成本会随监管(如 2015-09 限仓、2020 后松绑)而剧烈变化,历史超额不代表未来可得。
  2. 2010-2012 期指升水(以及 2023 年)说明"换 IF"并非永远有利。

规则中的 4% 阈值用于过滤升水期,但严格说盈亏平衡点应在 0%(升水才换回)—— 4% 只是机会成本阈值。回测显示 0% 阈值四项指标全面不劣于 4%,见 §4.4。

  1. ERP 择时的样本量极低:16 年仅 53 次换仓,其中决定方向的"跌破 3"卖出信号只有 3 次(全命中)。

拉长到 20 年全样本(2006-2026)去重后为 3/6 命中(p=0.656,统计上不显著); 买入信号(升破 6)去重 9 次、命中 6 次,证据相对更强。 即:卖出规则的表现是 3 次幸运事件,不构成可外推的统计证据。

  1. IC 载体规则不稳健:比价<1.4 用 IC → 18.19%;不用 IC → 16.19%;IC 无条件一直用 → 19.35%(反而更好)。

说明"+IC 切换 +2.00%/年"是特定阈值的产物。建议对 IF 阈值加滞回(进 −5% / 出 −3%)以减少近年抖动。

  1. 本报告为历史回测,不构成投资建议。

📌 完整的独立可信度审查见同目录 `回测可信度审查报告.md`(6 个脚本独立重算全流程、

逐笔核对 53 次换仓、ERP 平移/阈值网格/事件研究/蒙特卡洛等稳健性检验)。

结论:数据与代码可靠、可 100% 复现;但"年化 18.19%"应表述为"约 17%,区间 13.7%~18.2%"。