U 本位全币种极端低波突破策略 — 回测报告

Binance USDT-M 永续 · 背景 = long_straddle_okx 生产低波指标组 · 入场 = 30 日 Donchian 通道价 stop 单 · 2023-01-01 → 2026-09-03 · 生成于 2026-09-04

结论:这套策略不成立。生产口径主配置 3.7 年做到 1.156x(CAGR 4.0%,Sharpe 0.32,最大回撤 -46.5%), 同期 BTC 买入持有 4.89x。 更关键的是原始信号层面 24 个 (背景 × 方向 × 持有期) 组合里没有一个 |t| ≥ 2, 即突破信号本身没有统计上可辨认的 edge;净值上偶尔出现的正数来自 44 个配置的多重检验。

追加分析(第 6 节)进一步指出:连那些正数也不是突破信号挣来的。 去掉 20 个仓位槽的限制、在当天所有信号间等权满仓(恒 1x 杠杆)后,vote≥3 全线亏光 (仅多 0.46x、多空 0.82x)。真正在起作用的是"20 槽 + 按 ADV 优先"这个隐含的流动性筛选器 —— 它把成交标的的中位 ADV 从 $44M 抬到 $87M。另外主结果的币种池是 ~91 币的 季度 verified 名单,并非全币种(日均 302 个币有行情)。
主配置终值
1.156x
H10 · OR 背景 · 多空
CAGR
+4.0%
3.7 年年化
Sharpe
0.32
全样本
最大回撤
-46.5%
日频
BTC 买入持有
4.89x
同期基准
最强 t 统计
1.91
24 个组合的最大 |t|

1. 策略定义

背景(低波 regime gate):直接 import 生产代码 long_straddle_okx/release/breakout/BreakoutSignalManager + mined_indicators,参数原样取自生产 config/breakout.yaml —— 11 个指标 (5 个价格压缩类 + 6 个挖矿类)、combine=orentry_pct=0.05exit_pct=0.15extend_days=7。原料与实盘同口径:UTC0 已结束日线 BTC OHLCV + Deribit DVOL + Binance ext 面板(funding/basis/OI/LSR/taker/RV)+ BTC OI。 全样本背景覆盖率 66.5%
入场:背景生效日,对 universe 内每个币算 30 日 Donchian (DH=max(high[t-30..t-1])DL=min(low[t-30..t-1])); 当日 high>DHmax(DH, open) 做多, low<DLmin(DL, open) 做空(stop 单成交价)。
出场:固定持有 5 / 10 / 20 天后收盘平仓。
仓位:等名义权重,20 个仓位槽,开仓名义 = 当时权益 / 20;信号多于空闲槽按 30 日 ADV 降序优先(全样本因槽位占满而放弃 2,961 个信号);同一币不加仓;当日同时触发多空则跳过(全样本仅 10 次)。
费用:单边 10bp(手续费 + 滑点),进出各一次;持仓期间每日逐币扣真实 funding。
Universe:季度 verified 名单 + 退市过滤,另加当日 1m bar ≥ 1400、30 日 ADV ≥ $3M、 上市 ≥ 60 天。日均可交易 91 个币,日均触发多头 6.4 / 空头 6.4 个。

无前视:Donchian、背景、ADV、上市天数、universe 全部 shift(1)。背景尤其关键 —— 生产是 UTC 8:00 用已完成日线更新背景、当天日内才查突破, 所以回测里 T 日的突破必须由 T−1 日收盘算出的背景放行。 唯一未 shift 的是当日数据完整性过滤(n_bars ≥ 1400、OHLC 非空)—— 它只用于剔除采集缺口日、不参与择向,影响可忽略。

2. 净值表现

净值曲线
回撤曲线
年度收益

主配置的全部正收益来自 2023 年(+59%),2024/2025/2026 分别 −2% / −1% / −25%。 而 2023 恰恰是背景最不可信的一年:DVOL 与 ext 面板都从 2023-01-01 起, 滚动分位(1y/2y/3y 窗口)在 2023 年只有几个月的基准样本。

剔除 2023(背景 warmup 年)后:全部 44 个配置只有 2 个为正

配置 终值 CAGR Sharpe 最大回撤
btc_hold 1.837 +25.5% 0.71 -53.0%
H20_vote3_S20_F10_long 1.623 +19.9% 0.66 -30.6%
H20_vote2_S20_F10_long 1.299 +10.3% 0.44 -35.9%
H20_or_S20_F10_short 0.803 -7.9% 0.17 -49.9%
H20_vote3_S20_F10 0.960 -1.5% 0.16 -39.5%
H10_or_S40_F10 0.932 -2.6% 0.15 -42.8%
H10_or_S40_F10_long 0.922 -3.0% 0.08 -42.9%
H10_vote3_S20_F10_long 0.913 -3.3% 0.07 -39.5%
H10_or_S20_F5 0.776 -9.1% 0.05 -44.6%
H10_or_S20_F5_long 0.808 -7.7% 0.04 -55.8%
H10_or_S10_F10 0.695 -12.7% 0.03 -52.8%
H10_or_S20_F10_long 0.774 -9.2% 0.00 -57.0%
H10_or_S20_F10 0.727 -11.2% -0.00 -46.5%
H20_none_S20_F10_short 0.551 -20.0% -0.01 -65.7%

2024-01-01 起 BTC 买入持有 1.837x(CAGR 25.5%,Sharpe 0.72)—— 连表现最好的策略配置也跑输基准。

3. 背景 gate 有效,但救不回来

背景 gate 效果

这是本次最稳健的一条发现:同一持有期下,背景越严表现越好 (H10 多空:无背景 CAGR −23.6% → OR +4.0%;H20 多空:−16.8% → vote≥3 +23.0%), 在多空与仅多两组、三个持有期上方向一致。说明 long_straddle_okx 那套低波指标确实携带了"接下来会有方向性行情"的信息。 但它是一个择时过滤器,不能凭空创造 edge —— 被它放行的突破信号本身是无效的。

背景强度与 BTC 价格

3.1 逐指标的背景明细

生产 config/breakout.yaml 启用了 11 个指标,OR 组合。 5 个价格压缩类(迟滞模式:1y/2y/3y 任一窗口跌进 <5% 分位则进入, 所有窗口回到 >15% 才退出,再 AND anomaly、延续 7 天)—— atr_dvol(ATR(30)/Close 与 DVOL 联合低位)、tvi(多周期均线发散)、 bb_width_20d(布林带宽)、bbw20_x_dvol(带宽×DVOL)、 keltner_w_20d(Keltner 通道宽度)。 6 个挖矿类(分位模式:单窗口 365 天滚动分位、shift(1)、无迟滞,各有自己的 tail / pct / confirm / extend)—— 见下表。其中 4 个需要 Binance ext 面板 (funding/basis/OI/LSR/taker/RV),这也是回测只能从 2023-01-01 起的原因。

逐指标背景激活区间
指标 家族 激活率 独家激活天数 去掉它的 OR 覆盖率 覆盖率损失
quiet_open_close_magnet_oi_crowding 挖矿 23.2% 31 64.2% +2.3%
atr_dvol 价格压缩 21.8% 13 65.5% +1.0%
calm_taker_inventory_spring 挖矿 19.2% 71 61.2% +5.3%
perp_spot_basis_kink_under_quiet_range 挖矿 18.1% 62 61.8% +4.6%
usd_oi_shadow_convexity 挖矿 16.0% 42 63.3% +3.1%
settlement_pin_carry_evaporation 挖矿 15.1% 47 63.0% +3.5%
keltner_w_20d 价格压缩 14.3% 0 66.5% +0.0%
oi_drop_rate 挖矿 13.0% 31 64.2% +2.3%
bbw20_x_dvol 价格压缩 8.6% 0 66.5% +0.0%
tvi 价格压缩 6.7% 1 66.4% +0.1%
bb_width_20d 价格压缩 5.7% 0 66.5% +0.0%

OR 总覆盖率 66.5% (892/1342 天)。逐指标看有两个发现:
(a)11 个里实际只有 7 个在起作用。keltner_w_20dbbw20_x_dvolbb_width_20d独家激活天数为 0、边际覆盖率贡献恰好 0.0%tvi 也只有 1 天 / +0.1%)——它们激活的日子被 atr_dvol 完全覆盖。
(b)撑起覆盖率的是挖矿类。4 个 needs_ext 的挖矿指标合计独家激活 222 天, 边际贡献 +3.1% ~ +5.3%,远高于价格类。也就是说这个"低波背景"实质由 OI / funding / basis / taker 这些衍生品结构信号驱动,而不是由价格波动压缩驱动。
(c)但要小心 (b) 的成色 —— 看图上两种截然不同的形态。confirm=anomaly + extend_days=7 的 7 个指标 (quiet_open_close_magnet / atr_dvol / oi_drop_rate 和 4 个价格类)呈现连续的宽色块,是真正的"区制";而 4 个 confirm=none 的挖矿指标(calm_taker_inventory_spring / perp_spot_basis_kink / usd_oi_shadow_convexity / settlement_pin_carry_evaporation)是密集的单日细线 —— 它们不 AND anomaly、也不延续,就是原始的日度分位命中。 它们"独家激活天数"高,恰恰是因为这些孤立单日没人覆盖得到, 而不是因为它们识别出了别人看不见的区制。把这类 1 天信号当成"背景"来 gate 一个 持有 10–20 天的仓位,本身就是口径错配。

指标重叠度

重叠度证实了上面的冗余:价格压缩家族内部两两 Jaccard 最高 0.56, (atr_dvolkeltner_w_20d 0.56、 bbw20_x_dvolbb_width_20d 0.39、 keltner_w_20dbbw20_x_dvol 0.30 —— 都在量同一个东西), 而挖矿类之间普遍 ≤0.27。跨家族里最高的 quiet_open_close_magnetatr_dvol 0.34 有一部分是人为的: 两者都要 AND 同一个 anomaly 再延续 7 天,这一步机械地让它们同步。 把 11 个指标 OR 起来得到 66.5% 的覆盖率, 对一个"过滤器"来说太松了 —— 这正是本报告另外测 vote≥2(44.3%)和 vote≥3(26.6%)两档的原因,也是第 3 节那条"背景越严越好"单调性的来源。

4. 为什么不成立:原始信号没有 edge

上面的净值受组合构建(20 个槽位、ADV 优先、名义权重)影响。剥掉这一层, 直接看每个突破信号等权买 1 份、持有 H 天的净收益(含费与 funding), t 统计对按日聚合后的序列做 Newey–West(滞后 = 持有天数),修正重叠持有期造成的自相关:

信号 edge t 统计

(a)没有一个组合显著。24 个格子里最大 |t| = 1.91 (多头 · 持有 20 天 · vote≥3),连单次检验的 2.0 门槛都没到; 考虑到这是 24 次检验里挑出的最大值,Bonferroni 校正后需要 |t| ≈ 2.9 才算显著,差得更远。
(b)多空严重不对称。多头一侧平均净收益基本为正(持有 20 天 + OR 背景:+2.95%/笔), 空头一侧系统性为负 —— 跌破 30 日低点后 alt 普遍反抽,做空突破是亏钱的。 在净值层面也一致:所有 _short 配置无一盈利。
(c)多头一侧存在方向一致的单调结构。沿持有期(5→10→20 天)和背景严格度 (无→OR→vote≥2→vote≥3)两个方向,t 与平均收益都单调上升。这不像纯噪声, 但强度不足以支撑交易 —— 结论是「若要继续,该往长持有 + 严背景 + 只做多的方向调」, 而不是「现在这套能上」。

全网格最优配置也是多重检验的产物

盈利集中度

44 个配置里最好的是 H20_vote3_S20_F10_long (2.61x,CAGR 29.9%,Sharpe 0.89)。但它对应的原始信号 t 统计只有 1.91, 且盈利极度集中:前 5 笔贡献 47% 的 PnL,剔除前 20 笔后整体转负。 样本内挑出的最优点,不是可交易的结论。

5. 完整结果表

5.1 组合回测(44 个配置)

配置 方向 背景 持有天 槽位 单边bp 终值 CAGR Sharpe 最大回撤 笔数 胜率 盈亏比 多头均收益 空头均收益
H5_none_S20_F10 多空 5 20 10 0.201 -35.4% -0.65 -86.7% 3510 44.5% 1.12 +0.01% -1.17%
H5_or_S20_F10 多空 OR(生产) 5 20 10 0.456 -19.3% -0.25 -70.6% 2786 46.7% 1.11 +0.03% -0.34%
H5_vote2_S20_F10 多空 vote≥2 5 20 10 0.312 -27.2% -0.62 -79.3% 1993 45.6% 1.03 +0.31% -2.47%
H5_vote3_S20_F10 多空 vote≥3 5 20 10 0.473 -18.5% -0.44 -77.1% 1325 44.8% 1.08 +0.40% -2.46%
H10_none_S20_F10 多空 10 20 10 0.373 -23.6% -0.31 -73.7% 2167 46.1% 1.11 +0.36% -1.31%
H10_or_S20_F10 多空 OR(生产) 10 20 10 1.156 4.0% 0.32 -46.5% 1812 47.4% 1.21 +1.42% -0.52%
H10_vote2_S20_F10 多空 vote≥2 10 20 10 0.453 -19.4% -0.32 -71.3% 1360 44.6% 1.16 +0.53% -2.01%
H10_vote3_S20_F10 多空 vote≥3 10 20 10 0.566 -14.4% -0.25 -72.1% 935 45.1% 1.12 +0.83% -2.73%
H20_none_S20_F10 多空 20 20 10 0.510 -16.8% -0.16 -66.6% 1226 45.8% 1.14 +0.68% -1.56%
H20_or_S20_F10 多空 OR(生产) 20 20 10 0.981 -0.5% 0.23 -64.0% 1093 48.0% 1.22 +2.96% -0.99%
H20_vote2_S20_F10 多空 vote≥2 20 20 10 0.799 -5.9% 0.12 -74.8% 872 47.1% 1.29 +4.71% -3.19%
H20_vote3_S20_F10 多空 vote≥3 20 20 10 2.140 23.0% 0.74 -41.4% 642 52.3% 1.33 +6.48% -0.91%
H5_none_S20_F10_long 仅多 5 20 10 0.832 -4.9% 0.08 -62.6% 2123 44.5% 1.30 +0.24%
H5_or_S20_F10_long 仅多 OR(生产) 5 20 10 0.794 -6.1% 0.02 -58.3% 1751 45.1% 1.26 +0.20%
H5_vote2_S20_F10_long 仅多 vote≥2 5 20 10 0.955 -1.3% 0.12 -50.3% 1314 46.8% 1.25 +0.56%
H5_vote3_S20_F10_long 仅多 vote≥3 5 20 10 1.162 4.2% 0.29 -38.2% 881 48.2% 1.24 +0.79%
H10_none_S20_F10_long 仅多 10 20 10 1.051 1.4% 0.26 -64.9% 1443 43.9% 1.41 +0.72%
H10_or_S20_F10_long 仅多 OR(生产) 10 20 10 1.354 8.6% 0.41 -57.0% 1217 44.3% 1.47 +1.11%
H10_vote2_S20_F10_long 仅多 vote≥2 10 20 10 1.200 5.1% 0.32 -55.5% 936 45.5% 1.45 +1.51%
H10_vote3_S20_F10_long 仅多 vote≥3 10 20 10 1.173 4.4% 0.30 -39.5% 663 44.5% 1.43 +1.02%
H20_none_S20_F10_long 仅多 20 20 10 0.605 -12.8% 0.01 -77.3% 930 42.3% 1.52 +1.14%
H20_or_S20_F10_long 仅多 OR(生产) 20 20 10 1.150 3.9% 0.33 -57.8% 811 43.0% 1.64 +2.23%
H20_vote2_S20_F10_long 仅多 vote≥2 20 20 10 2.232 24.5% 0.71 -35.9% 646 46.1% 1.75 +4.30%
H20_vote3_S20_F10_long 仅多 vote≥3 20 20 10 2.612 29.9% 0.89 -30.6% 480 47.9% 1.83 +5.15%
H5_none_S20_F10_short 仅空 5 20 10 0.217 -34.0% -0.70 -80.2% 1945 44.3% 0.98 -1.11%
H5_or_S20_F10_short 仅空 OR(生产) 5 20 10 0.505 -17.0% -0.29 -54.5% 1453 48.6% 0.91 -0.71%
H5_vote2_S20_F10_short 仅空 vote≥2 5 20 10 0.388 -22.7% -0.67 -64.4% 945 45.8% 0.81 -1.69%
H5_vote3_S20_F10_short 仅空 vote≥3 5 20 10 0.475 -18.4% -0.55 -64.4% 602 41.4% 0.90 -1.98%
H10_none_S20_F10_short 仅空 10 20 10 0.425 -20.8% -0.22 -62.1% 1337 51.2% 0.86 -0.58%
H10_or_S20_F10_short 仅空 OR(生产) 10 20 10 0.606 -12.8% -0.09 -49.8% 1064 53.0% 0.84 -0.28%
H10_vote2_S20_F10_short 仅空 vote≥2 10 20 10 0.650 -11.1% -0.14 -38.5% 730 52.3% 0.79 -0.88%
H10_vote3_S20_F10_short 仅空 vote≥3 10 20 10 0.818 -5.3% -0.02 -40.8% 482 53.1% 0.84 -0.26%
H20_none_S20_F10_short 仅空 20 20 10 0.311 -27.2% -0.24 -79.2% 894 51.8% 0.81 -1.15%
H20_or_S20_F10_short 仅空 OR(生产) 20 20 10 0.617 -12.3% 0.04 -66.6% 754 55.0% 0.83 +0.11%
H20_vote2_S20_F10_short 仅空 vote≥2 20 20 10 0.469 -18.6% -0.21 -59.1% 537 54.9% 0.69 -1.65%
H20_vote3_S20_F10_short 仅空 vote≥3 20 20 10 0.832 -4.9% 0.08 -54.9% 375 58.9% 0.74 +0.51%
H10_or_S10_F10 多空 OR(生产) 10 10 10 0.939 -1.7% 0.24 -52.9% 987 44.1% 1.30 +0.71% -0.69%
H10_or_S10_F10_long 仅多 OR(生产) 10 10 10 0.531 -15.8% -0.06 -76.1% 758 40.6% 1.45 -0.05%
H10_or_S40_F10 多空 OR(生产) 10 40 10 1.357 8.7% 0.41 -42.8% 3074 48.5% 1.21 +1.25% +0.38%
H10_or_S40_F10_long 仅多 OR(生产) 10 40 10 1.330 8.1% 0.40 -42.9% 1769 44.4% 1.47 +1.14%
H10_or_S20_F5 多空 OR(生产) 10 20 5 1.266 6.6% 0.37 -44.6% 1812 47.6% 1.22 +1.52% -0.42%
H10_or_S20_F5_long 仅多 OR(生产) 10 20 5 1.438 10.4% 0.44 -55.8% 1217 44.5% 1.47 +1.21%
H10_or_S20_F20 多空 OR(生产) 10 20 20 0.965 -1.0% 0.22 -50.2% 1812 46.8% 1.20 +1.22% -0.72%
H10_or_S20_F20_long 仅多 OR(生产) 10 20 20 1.200 5.1% 0.33 -59.2% 1217 43.9% 1.45 +0.91%

5.2 原始信号 edge(24 个组合)

方向 背景 持有天 有信号天数 NW 滞后 每笔平均净收益 t 统计 日胜率
多头 5 1031 5 -0.74% -1.17 46.0%
多头 10 1031 10 +0.21% +0.18 45.2%
多头 20 1031 20 +1.64% +0.76 46.2%
空头 5 721 5 -0.57% -0.75 48.5%
空头 10 721 10 +0.00% +0.00 49.8%
空头 20 721 20 +0.19% +0.09 55.6%
多头 OR(生产) 5 726 5 -0.52% -0.69 47.1%
多头 OR(生产) 10 726 10 +0.80% +0.59 46.8%
多头 OR(生产) 20 726 20 +2.95% +1.21 47.4%
空头 OR(生产) 5 466 5 -0.29% -0.29 48.9%
空头 OR(生产) 10 466 10 -0.15% -0.11 48.9%
空头 OR(生产) 20 466 20 +0.31% +0.13 55.2%
多头 vote≥2 5 489 5 -0.01% -0.01 47.9%
多头 vote≥2 10 489 10 +1.51% +0.89 46.2%
多头 vote≥2 20 489 20 +4.58% +1.59 49.3%
空头 vote≥2 5 299 5 -0.88% -0.75 46.2%
空头 vote≥2 10 299 10 -0.29% -0.19 47.2%
空头 vote≥2 20 299 20 +0.70% +0.26 57.9%
多头 vote≥3 5 295 5 +0.25% +0.20 45.1%
多头 vote≥3 10 295 10 +2.53% +1.06 44.7%
多头 vote≥3 20 295 20 +6.58% +1.91 49.5%
空头 vote≥3 5 184 5 -1.04% -0.78 43.5%
空头 vote≥3 10 184 10 -0.93% -0.59 47.3%
空头 vote≥3 20 184 20 -0.25% -0.07 58.2%

6. 追加分析

以下四组是主结果出来之后的回访,产出脚本 followups.py。 其中 6.3 和 6.4 改变了对主结果成因的理解,请连同第 4 节一起读。

6.1 手续费与 funding 各自吃掉多少

两者都是逐日进净值路径的,不是事后在交易表里补减。把它们关掉重跑(主配置 H10 · OR · 多空):

口径 终值 Sharpe 最大回撤
含费 + 含 funding(基准) 1.156 0.32 -46.5%
去掉手续费 1.385 0.42 -43.2%
去掉 funding 1.387 0.43 -42.3%
两者都去掉(毛收益) 1.662 0.53 -41.0%

funding 的拖累(−0.231)和手续费(−0.229)几乎一样大,3.7 年合计吃掉 0.51 的终值。 即便完全免费免 funding,毛收益也只有 1.662x,仍远低于同期 BTC 的 4.89x。
funding 用的是逐币逐日真实值(funding_sum,当日全部结算次数求和), 99.94% 的交易带非零 funding。两边都在付:多头 −0.146%/笔、空头 −0.272%/笔 —— 空头的中位 funding 其实是收钱的,均值被一批深度负 funding 的日子拽负, 正是那些触发"跌破 30 日低点"的踩踏日。空头一边被反抽、一边付高额 funding。

6.2 缩短持有期只会更差

持有天数扫描
持有天 笔数 终值 CAGR Sharpe 最大回撤 每笔均收益 盈亏比 终值(24起) Sharpe(24起) 毛Sharpe(零费)
1 1518 1.194 +5.0% 0.34 -25.4% +0.33% 1.34 1.090 0.26 0.56
2 1215 1.271 +6.7% 0.41 -24.8% +0.59% 1.30 1.048 0.19 0.57
3 1045 0.967 -0.9% 0.07 -39.0% +0.23% 1.23 0.904 -0.06 0.22
5 881 1.162 +4.2% 0.29 -38.2% +0.79% 1.24 0.810 -0.19 0.41
7 786 1.005 +0.1% 0.14 -46.8% +0.52% 1.38 0.727 -0.31 0.25
10 663 1.173 +4.4% 0.30 -39.5% +1.02% 1.43 0.913 0.07 0.38
15 580 1.595 +13.6% 0.53 -42.4% +2.28% 1.61 0.987 0.18 0.59
20 480 2.612 +29.9% 0.89 -30.6% +5.15% 1.83 1.623 0.66 0.94
25 431 2.137 +23.0% 0.71 -39.7% +4.48% 1.64 1.299 0.45 0.76
30 398 1.728 +16.1% 0.57 -41.3% +5.74% 1.94 0.969 0.19 0.61
40 347 2.105 +22.5% 0.68 -46.3% +9.66% 2.04 1.204 0.38 0.72

不是费用问题。把手续费和 funding 全部归零后曲线形状完全没变 (毛 Sharpe:H5 0.41 / H10 0.38 / H20 0.94),是信号在短周期内没兑现 —— 每笔均收益从 H1 的 +0.33% 单调爬到 H40 的 +9.66%。
剔除 2023 warmup 年后,短持有是确定亏钱的:H1–H15 在 2024 起的子样本里全部 ≤0.99x (H5/H7 只有 0.81 / 0.73)。
但 H20 越看越像样本内尖峰:相邻档位 H15 = 0.53 → H20 = 0.89 → H25 = 0.71 → H30 = 0.57。 真实效应应该在持有期上平滑,孤立尖峰是过拟合特征。而且这轮又多测了 11 个持有期, 多重检验比第 4 节更重。

6.3 币种范围 —— 主结果用的不是"全币种"

口径修正。主结果的可交易池日均只有 91 个币,不是全币种。过滤漏斗(2023 起日均): 面板 544 symbol → 当日有行情 301.9 → ∩ 季度 verified 名单 + 退市 92.8 → ∩ 1m bar ≥1400 92.8 → ∩ ADV ≥$3M 91.6 → ∩ 上市 ≥60 天 90.7砍掉 70% 的是季度 verified 名单(生产模型用的头部 ~100 币名单), 本回测自己加的三个流动性 / 数据质量过滤只砍掉 2 个币。(去掉名单时须手动补回名单隐含的非币种过滤BTCDOMUSDT 是 BTC 占有率指数、USDCUSDT 是稳定币对,都不适合做方向性突破,本报告已剔除。)名单排除了大量高流动性标的 —— 如 2026-06-01 当天的 LAB(ADV $684M)、BSB($267M)、1000PEPE($235M)都不在名单里。
币种范围对比
币种池 配置 笔数 终值 Sharpe 最大回撤 终值(24起) Sharpe(24起)
verified 名单 H10_or_both 1812 1.156 0.32 -46.5% 0.727 -0.00
verified 名单 H10_or_long 1217 1.354 0.41 -57.0% 0.774 0.00
verified 名单 H20_vote3_long 480 2.612 0.89 -30.6% 1.623 0.66
verified 名单 H20_vote3_both 642 2.140 0.74 -41.4% 0.960 0.16
全币种 H10_or_both 2025 1.045 0.30 -65.5% 0.807 0.15
全币种 H10_or_long 1676 0.815 0.20 -82.7% 0.466 -0.15
全币种 H20_vote3_long 615 4.117 1.04 -38.4% 2.556 0.94
全币种 H20_vote3_both 729 2.548 0.81 -39.6% 1.122 0.32

去掉名单、只留数据质量 + 流动性 + 退市过滤(日均 239 币, 区间内 536 个)后方向不一致:H20·vote≥3·仅多 变好(2.61x → 4.12x,Sharpe 0.89 → 1.04), H10·OR·仅多 直接崩掉(1.35x → 0.81x,回撤 −82.7%)。总体结论不变 —— 原始信号本来就不显著,换池子只是把同一个 cherry-pick 配置又换了个维度试。

6.4 不限仓位 —— 槽位限制本身才是主要 alpha 来源

不限仓位
持有天 方向 仓位口径 终值 Sharpe 最大回撤 持仓数中位 持仓数最大 杠杆中位 杠杆最大 终值(24起)
10 仅多 20槽(基准) 1.173 0.30 -39.5% 1 20 0.05x 1.19x 0.913
10 仅多 不限仓 · 每笔权益/20 1.527 0.50 -56.2% 1 85 0.05x 5.31x 0.773
10 仅多 不限仓 · 当日等权 1/N 0.201 -0.40 -91.4% 1 85 0.96x 1.32x 0.166
10 多空 20槽(基准) 0.566 -0.25 -72.1% 3 20 0.15x 1.49x 0.437
10 多空 不限仓 · 每笔权益/20 2.393 0.70 -66.9% 6 107 0.30x 5.31x 1.178
10 多空 不限仓 · 当日等权 1/N 0.445 -0.21 -81.0% 6 107 0.98x 1.24x 0.237
20 仅多 20槽(基准) 2.612 0.89 -30.6% 4 20 0.20x 1.20x 1.623
20 仅多 不限仓 · 每笔权益/20 3.223 0.79 -78.5% 5 87 0.25x 5.30x 1.173
20 仅多 不限仓 · 当日等权 1/N 0.457 0.01 -86.3% 5 87 0.99x 1.29x 0.347
20 多空 20槽(基准) 2.140 0.74 -41.4% 10 20 0.50x 1.42x 0.960
20 多空 不限仓 · 每笔权益/20 3.537 0.85 -84.5% 16 107 0.84x 15.11x 0.696
20 多空 不限仓 · 当日等权 1/N 0.819 0.18 -75.7% 16 107 0.99x 1.24x 0.345

(a)"不限仓 · 每笔权益/20" 终值更高,但那是杠杆买来的。H20·多空到 3.54x, 代价是最大杠杆 15.1x、回撤 −84.5%,而且 2024 起只有 0.70x。杠杆中位仅 0.25–0.84x —— 大部分时间几乎空仓,收益全堆在少数同时触发 80–107 个币的满仓日。
(b)"不限仓 · 当日等权 1/N"(恒 1x 杠杆,最干净的信号读数)全线亏光。 H10·仅多 0.20x(−91.4% 回撤)、H20·仅多 0.46x、H20·多空 0.82x,Sharpe 全部 ≤0.18。
(c)机制:20 槽 + ADV 降序排序 = 一个把成交标的流动性翻倍的筛选器。 vote≥3 日的全部多头信号中位 ADV $44M(25 分位 $17M),而 20 槽实际成交的 480 笔中位 ADV $87M(25 分位 $31M); 按当日 ADV 排名,全部信号中位第 11 名,20 槽只吃到中位第 6 名。 一旦把当天所有信号等权吃下去(含大量 $17M ADV 的长尾小币), 立刻崩盘。

这改变了对主结果的解读。第 2 节那条 2.61x 不是"全币种突破策略"的结果, 而是"只在流动性最好的那批币上做突破"的结果 —— 槽位限制无意中充当了流动性筛选器, 并且是主要收益来源。同时注意 20 槽版本的杠杆中位只有 0.05–0.50x:名义上"20 个仓位分散", 实际中位持仓数只有 1–10 个,大部分资金空转,CAGR 是在平均 20% 敞口上做出来的。 这与第 4 节"前 5 笔贡献 47% PnL"是同一件事的两个侧面。

6.5 换出场规则:阶梯止盈 + 50% 回撤全平

规则。阶梯减半 —— 价格每朝有利方向翻一倍(多头 2× / 4× / 8× 入场价; 空头对称地每腰斩一次)就减半一次仓位。② 50% 回撤全平 —— 仓位价值 v = 1 + (close/entry − 1)×side 从其峰值回撤 50% 时当日收盘全平。 多空同一口径。所有判定都在收盘、且峰值只用到昨日,无前视。 (先前测过的 3×ATR(10) 右侧跟踪不在此列 —— ATR(10) 中位是价格的 8.07%, 3×ATR 等于 24% 的容忍度,341 次触发里 96% 是亏损出场,实为止损而非止盈, 且比持满 20 天平均多亏 3.8%。)

阶梯止盈与50%回撤
持有天 背景 方向 出场规则 笔数 均持有 减半次数 回撤平仓 终值 Sharpe 最大回撤 终值(24起)
10 or long 固定持有(基准) 1676 10.0 0 0 0.815 0.20 -82.7% 0.466
10 or long 阶梯减半 2×/4×/8× 1676 10.0 51 0 0.842 0.21 -83.0% 0.482
10 or long 50% 回撤全平 167 155.8 0 147 3.248 0.91 -48.6% 1.503
10 or long 阶梯减半 + 50% 回撤 167 155.8 85 147 3.138 0.95 -44.6% 1.519
20 vote3 long 固定持有(基准) 615 19.8 0 0 4.117 1.04 -38.4% 2.556
20 vote3 long 阶梯减半 2×/4×/8× 615 19.8 31 0 3.591 0.97 -38.4% 2.290
20 vote3 long 50% 回撤全平 146 168.5 0 126 2.823 0.82 -54.4% 1.492
20 vote3 long 阶梯减半 + 50% 回撤 146 168.5 71 126 2.482 0.79 -50.6% 1.319
20 vote3 both 固定持有(基准) 729 19.8 0 0 2.548 0.81 -39.6% 1.122
20 vote3 both 阶梯减半 2×/4×/8× 729 19.8 21 0 2.318 0.75 -40.2% 1.049
20 vote3 both 50% 回撤全平 123 205.8 0 103 0.918 0.12 -50.6% 0.597
20 vote3 both 阶梯减半 + 50% 回撤 123 205.8 62 103 0.975 0.13 -43.3% 0.652
10 or both 固定持有(基准) 2025 10.0 0 0 1.045 0.30 -65.5% 0.807
10 or both 阶梯减半 2×/4×/8× 2025 10.0 49 0 0.915 0.23 -65.4% 0.705
10 or both 50% 回撤全平 119 221.8 0 99 0.893 0.10 -49.8% 0.598
10 or both 阶梯减半 + 50% 回撤 119 221.8 74 99 0.880 0.00 -45.9% 0.596

结果是分裂的。对短持有配置 H10·OR·仅多 是大幅改善: 0.815x → 3.138x,Sharpe 0.20 → 0.95,最大回撤 −82.7% → −44.6%。 但对原本最好的 H20·vote≥3·仅多(4.117x)是损害(→ 2.482x), 对两个多空配置也是损害。阶梯减半单独看在 4 个配置里 3 个变差 —— 它砍的正是贡献绝大部分 PnL 的肥尾。
而且那个"改善"已经不是突破策略了:167 笔交易、均持有 156 天(中位 93 天)、 最长 1127 天,槽位占用 19.4/20(几乎永远满仓)。它实质是「买入做 30 日新高的山寨, 一直拿到跌 50% 才换」。

背景 gate 在这个配置下已经形同虚设

上面所有变体都保留了原来的背景gate_series(bg, ·, 'or'), 生产 OR 口径),对照组也一样。但长持有把它架空了: 背景 OR 全样本放行 891 / 1342 天, 而实际发生开仓的只有 112 天 —— 其余 779 天(87%)因槽位占满进不去仓。 真正决定"哪天能开仓"的是槽位什么时候空出来,不是背景。

出场规则 背景 笔数 开仓日数 均持有 终值 Sharpe 最大回撤 终值(24起)
50%回撤出场 none 172 129 152.5 2.063 0.67 -47.3% 0.976
固定持有10天 none 1996 971 10.0 0.636 0.14 -77.2% 0.423
50%回撤出场 or 167 112 155.8 3.138 0.95 -44.6% 1.519
固定持有10天 or 1676 528 10.0 0.815 0.20 -82.7% 0.466
50%回撤出场 vote2 173 94 147.0 1.930 0.62 -53.3% 1.003
固定持有10天 vote2 1277 328 10.0 0.909 0.22 -61.6% 0.560
50%回撤出场 vote3 146 61 168.5 2.482 0.79 -50.6% 1.319
固定持有10天 vote3 891 189 10.0 0.829 0.08 -58.9% 0.685

无背景和 OR 背景的笔数几乎一样(172 vs 167) —— 背景根本没在过滤交易,它只是让那 167 笔落在不同的日子、因而选中不同的币。 2.063 → 3.138 的差距不是"背景滤掉了坏交易",是"换了一批币"。 而换一批币能造成多大差距,6.6 的置换检验已经量过:0.55x ~ 2.44x。 所以这里背景的"贡献"与抽样噪声区分不开。

与第 3 节的口径冲突。第 3 节"背景越严越好"的单调性是在 verified 名单池上得到的;在全币种池 + 仅多下它不成立 —— 50% 回撤出场:vote≥2 1.930 < 无 2.063 < vote≥3 2.482 < OR 3.138; 固定持有 10 天:无 0.636 < OR 0.815 < vote≥3 0.829 < vote≥2 0.909。 两组都非单调。第 3 节那条结论应限定在其原始口径内理解。

6.6 三层对照 —— 那个改善是什么

第一层:随机入场置换检验。同槽位、同背景 gate(生产 OR)、 同出场规则、同每日信号个数,只把选币方式换成从当日可交易池随机抽 (入场价改用当日开盘,因为非突破选币没有通道价):

置换检验

真实 3.138x vs 随机 100 次 中位 1.157 / 90 分位 1.864 / 最大 2.442 → p = 0.000;2024 起 1.519 vs 随机中位 0.606 / 最大 1.162 → p = 0.000。 打败全部 100 次随机。看起来是真 alpha

第二层:动量对照。上面的对照太弱 —— 随机是从全池均匀抽, 而突破信号天然挑的是强势币。把选币方式换成简单动量, 背景 gate、槽位、出场规则全部保持不变

选币方式对照
选币方式 笔数 均持有 终值 Sharpe 最大回撤 终值(24起) Sharpe(24起)
真实 30日 Donchian 突破 167 155.8 3.138 0.95 -44.6% 1.519 0.58
30日涨幅 top-N 227 112.4 3.100 0.90 -39.8% 1.438 0.52
距30日高点最近 top-N 165 158.0 3.036 0.92 -34.9% 1.571 0.60
10日涨幅 top-N 227 112.3 1.825 0.57 -59.4% 0.833 0.19
ADV 最大 top-N 153 153.3 2.311 0.73 -48.4% 1.295 0.44
30日跌幅最大 top-N(反向) 234 106.7 1.060 0.35 -73.1% 0.584 0.07

Donchian 突破与简单动量无法区分。真实突破 3.138x / Sharpe 0.95、「30 日涨幅 top-N」3.100x / 0.90、「距 30 日高点最近」3.036x / 0.92 —— 三者相差 3%,而置换检验里仅换一批币就能让终值在 0.55x ~ 2.44x 之间浮动,这点差距完全落在噪声里(2024 起「距 30 日高点最近」1.571 反而高于突破的 1.519)。 甚至完全不看动量、只买 ADV 最大的币也有 2.311x / 0.73。反向组(选 30 日跌幅最大的)只有 1.060x / 0.35 —— 说明方向是对的(做多强势币有效),但那是通用的横截面动量 beta,30 日突破这个具体机制没有可辨认的增量。
第三层:BTC 买入持有。4.890x,Sharpe 1.16, 2024 起 1.837x。上面每一个方案都输给它,包括最好的「距 30 日高点最近」。

这一节的净结论。把固定持有期换成宽止损(让盈利单跑满) 确实是对的方向,在短持有配置上带来了实打实的改善,而且相对随机入场高度显著。 但拆到底:这个改善来自「长期做多强势山寨 + 50% 宽止损」这个通用动量 beta —— 换成任何一个简单动量选币规则都能得到同等结果(3.04 ~ 3.14x,差距在噪声内),30 日突破本身没有可辨认的增量。而全文最好的配置(H20·vote≥3·仅多·固定持有,4.117x / Sharpe 1.04)在收益和 Sharpe 上仍跑不赢直接持有 BTC(4.890x / 1.16),只在最大回撤上更好(−38.4% vs −53.0%)。这条路径的天花板不高于 BTC buy&hold。

6.7 市值币种池 + anomaly 叠加:最强读数的三层对照

交互式回测台(首页)把币种池换成 按市值滚动排名后,出现了全文最强的两个读数,且两者用完全不同的过滤机制 却落在相近的 gate 松紧区间:
A = 市值 top200 · OR 背景 + 全局叠加 anomaly(放行 22% 交易日)→ 6.358x / Sharpe 1.27 / α池 t=+3.47
B = 市值 top200 · vote≥3 背景(放行 27% 交易日)→ 6.921x / Sharpe 1.41 / α池 t=+3.19
anomaly 在生产里是逐指标确认项 —— 11 个指标中 7 个 confirm=anomaly、 4 个需要 ext 面板的挖矿指标绕过它;这里 A 是在背景之上再全局叠加一道。)
两条都用 仅多 · 30 日通道 · 持有 20 天 · 20 槽 · 10bp。以下三层对照只换选币方式, 背景 / 槽位 / 出场 / 费用全部不变。产出脚本 control_mcap.py

配置 选币方式 笔数 终值 CAGR Sharpe 最大回撤
A · OR + anomaly 真实 30日 Donchian 突破 592 6.358 +65.5% 1.27 -43.7%
A · OR + anomaly 30日涨幅 top-N 555 12.041 +96.9% 1.59 -35.7%
A · OR + anomaly 距30日高点最近 top-N 583 7.509 +73.2% 1.40 -41.9%
A · OR + anomaly 10日涨幅 top-N 573 19.092 +123.3% 1.81 -28.6%
A · OR + anomaly ADV 最大 top-N 515 5.537 +59.4% 1.33 -38.1%
A · OR + anomaly 30日跌幅最大 top-N(反向) 549 2.820 +32.6% 0.86 -59.6%
B · vote≥3 真实 30日 Donchian 突破 572 6.921 +69.4% 1.41 -37.6%
B · vote≥3 30日涨幅 top-N 520 13.470 +103.1% 1.74 -36.5%
B · vote≥3 距30日高点最近 top-N 566 5.678 +60.5% 1.32 -33.7%
B · vote≥3 10日涨幅 top-N 545 13.769 +104.3% 1.68 -35.1%
B · vote≥3 ADV 最大 top-N 478 4.067 +46.5% 1.19 -28.1%
B · vote≥3 30日跌幅最大 top-N(反向) 540 2.014 +21.0% 0.66 -40.4%
市值池选币方式对照

第一层:随机入场置换(各 100 次)。 A 真实 6.358x vs 随机中位 3.115 / 最大 5.403 → p = 0.000;B 真实 6.921x vs 随机中位 2.223 / 最大 4.374 → p = 0.000。 两者都打败全部 100 次随机。但这只说明"不是瞎选",不说明是突破的功劳。

第二层:动量对照 —— 突破反而是最差的之一。 在同一币种池、同一背景、同一出场下,把选币换成简单动量: A 组「30 日涨幅 top-N」12.041x、「10 日涨幅 top-N」19.092x, 而真实突破只有 6.358x;B 组「30 日涨幅」13.470x、「10 日涨幅」13.769x, 真实突破 6.921x。简单动量选币是 Donchian 突破的两到三倍。 连「30 日跌幅最大」的反向组都还有 2.8x / 2.0x —— 说明这个 gate 下"长期做多山寨" 本身就能赚,选币方式只决定赚多少。

alpha 逐层剥离

第三层:回归分解 —— alpha 在控制动量后完全消失。 把「30 日涨幅 top-N」那条对照腿当作一个因子放进回归:

配置 α vs 池等权 t α vs BTC t α 控动量腿后 t α 再控 BTC t
A · OR + anomaly +73.4% +3.47 +36.6% +1.75 +2.4% +0.20 +0.2% +0.02
B · vote≥3 +75.0% +3.19 +44.2% +1.86 +4.7% +0.39 +4.4% +0.35
这是全文最干净的一次判定。两个配置对池等权指数的 alpha (+73.4% t=3.47 / +75.0% t=3.19)看着都很强,但一旦控制住那条只按 30 日涨幅选币的对照腿, 残余 alpha 塌到 +2.4%(t=+0.20)和 +4.7%(t=+0.39),再控 BTC 后是 +0.2% 和 +4.4%。
也就是说:「极端低波 + 30 日 Donchian 突破」相对通用横截面动量没有任何可辨认的增量 —— 不是"部分被解释",是几乎完全被解释。此前 6.1–6.6 得到的所有正面读数, 到这里可以统一归因为「长期做多强势山寨 + 一个把在场时间收到 20~27% 的过滤器」。

补充一条支持性证据。A 与 B 的过滤机制毫无共同之处(一个是成交额/换手率 异动 + 市场效率,一个是 11 个低波指标的票数),却在收到相近松紧(22% vs 27%)时 给出几乎相同的量级;而把 gate 再收紧到 12%(vote≥3 再叠 anomaly)两者都明显变差。 这指向起作用的是"在场时间的松紧",不是具体用哪套指标逻辑 —— 与 6.6 的 Treynor-Mazuy 检验结论一致(低波背景的择时项 t 仅 +0.39,不显著)。

7. 局限与下一步

口径局限。① 成交按日线 stop 单近似(当日 high 越过 DH 即以 DH 成交), 未用 1m 数据逐 bar 确认 —— 生产语义是「整根 1m K 线完全在通道外」才触发,比这更保守, 所以真实成交只会更差不会更好。② 背景是 BTC 市场级统一 gate(DVOL / ext 面板都是 BTC 独有, 无法逐币计算),没有逐币低波判定。③ 回测起点受 DVOL / ext 面板限制在 2023-01-01, 样本仅 3.7 年、且前 3~12 个月分位基准不足。④ 主结果的币种池是 ~91 币的季度 verified 名单 而非全币种(见 6.3),且 20 槽 + ADV 优先隐含了一层流动性筛选(见 6.4)。 ⑤ 全文共测了 44 + 11 + 8 + 12 个配置,任何"最优点"都要按多重检验打折看。
如果还要继续,值得试的方向(按预期收益排序,前两条由 6.4 直接指出): ① 把流动性筛选拿出来单独验证 —— 不设槽位、标的池限定为当日 ADV top-30 / 50 / 100, 等权满仓。6.4 说明真正起作用的可能是"只做高流动性币",这个设计能把它和槽位约束彻底分开; ② 只做多 + 追踪止损(持有期单调性和多空不对称都指向这里,固定持有期是明显的错误约束); ③ 把背景当权重而非开关 —— votes 数与表现单调正相关,可直接做仓位缩放; ④ 逐币低波判定 替代 BTC 统一 gate(用 bb_width / keltner / ATR 分位,全币种可算)。

复现:build_background.pybacktest.pyfollowups.pyreport.py,目录 /home/ubuntu/ic/factor_backtest/research/20260903_ctashit/。 中间产物在 out/(background.parquet / equity_curves.parquet / summary.csv / signal_diagnostics.csv / trades_*.parquet / fu_*.csv|parquet|json)。