这是基于现有 8 币 `60m_365d / 60m_730d` 本地缓存数据做的第一版 clean-room survival experiment:先不用论文全部规则族,只测试两个最小 baseline——ma_crossover 与 rolling_breakout_20——看 gross / net / regime 会不会明显重排排序。
data 8 crypto / 60m / 365d+730d rules MA crossover + breakout baseline cost gross / net_low(10bps) / net_high(30bps) hold 12 bars
核心结论:在当前 8 币 60m 样本上,cost 的确会让 breakout / trend baseline 全部进一步变差,而 bubble_proxy 分层也会显著改变均值与胜率,所以 `gross/net + regime` 应当成为后续 breakout 研究的默认报告项,而不是可选附录。
证据:这轮用同一批本地缓存 bars,对 `ma_crossover` 与 `rolling_breakout_20` 同时跑了 `gross / net_low / net_high` 与 `bubble_proxy` 分层;无论在 `60m_365d` 还是 `60m_730d`,成本都会把均值进一步压低,而不同 regime 下的均值与胜率也出现明显分化。
ma_crossover:EMA(12) 上穿 EMA(48)rolling_breakout_20:close 上破前 20 根 close 高点net_low = gross - 10bps;net_high = gross - 30bps(round-trip 近似)bubble_proxy:价格在慢均线上方且 trend_strength / vol24 同时高于本 symbol 样本中位数| sample_key | rule | cost_case | trade_count | win_ratio | mean_return | median_return | iqr_return | positive_symbol_ratio |
|---|---|---|---|---|---|---|---|---|
| 60m_730d | ma_crossover | gross | 1712 | 48.07% | -0.08% | -0.10% | 2.81% | 25.00% |
| 60m_730d | rolling_breakout_20 | gross | 8205 | 48.60% | 0.12% | -0.07% | 2.83% | 75.00% |
| 60m_730d | ma_crossover | net_high | 1712 | 42.17% | -0.38% | -0.40% | 2.81% | 12.50% |
| 60m_730d | rolling_breakout_20 | net_high | 8205 | 42.80% | -0.18% | -0.37% | 2.83% | 12.50% |
| sample_key | rule | cost_case | trade_count | win_ratio | mean_return | median_return | iqr_return | positive_symbol_ratio |
|---|---|---|---|---|---|---|---|---|
| 60m_365d | ma_crossover | gross | 867 | 48.10% | -0.09% | -0.08% | 2.74% | 25.00% |
| 60m_365d | rolling_breakout_20 | gross | 4084 | 49.19% | 0.10% | -0.04% | 2.64% | 62.50% |
| 60m_730d | ma_crossover | gross | 1712 | 48.07% | -0.08% | -0.10% | 2.81% | 25.00% |
| 60m_730d | rolling_breakout_20 | gross | 8205 | 48.60% | 0.12% | -0.07% | 2.83% | 75.00% |
| 60m_365d | ma_crossover | net_low | 867 | 45.67% | -0.19% | -0.18% | 2.74% | 12.50% |
| 60m_365d | rolling_breakout_20 | net_low | 4084 | 47.04% | 0.00% | -0.14% | 2.64% | 50.00% |
| 60m_730d | ma_crossover | net_low | 1712 | 45.97% | -0.18% | -0.20% | 2.81% | 12.50% |
| 60m_730d | rolling_breakout_20 | net_low | 8205 | 46.50% | 0.02% | -0.17% | 2.83% | 50.00% |
| 60m_365d | ma_crossover | net_high | 867 | 41.64% | -0.39% | -0.38% | 2.74% | 0.00% |
| 60m_365d | rolling_breakout_20 | net_high | 4084 | 42.95% | -0.20% | -0.34% | 2.64% | 0.00% |
| 60m_730d | ma_crossover | net_high | 1712 | 42.17% | -0.38% | -0.40% | 2.81% | 12.50% |
| 60m_730d | rolling_breakout_20 | net_high | 8205 | 42.80% | -0.18% | -0.37% | 2.83% | 12.50% |
| sample_key | rule | cost_case | bubble_proxy | trade_count | win_ratio | mean_return | median_return | iqr_return | positive_symbol_ratio |
|---|---|---|---|---|---|---|---|---|---|
| 60m_365d | ma_crossover | gross | False | 626 | 48.24% | -0.02% | -0.06% | 2.47% | 37.50% |
| 60m_365d | ma_crossover | gross | True | 241 | 47.72% | -0.27% | -0.19% | 3.65% | 25.00% |
| 60m_365d | rolling_breakout_20 | gross | False | 2686 | 51.45% | 0.21% | 0.08% | 2.46% | 100.00% |
| 60m_365d | rolling_breakout_20 | gross | True | 1398 | 44.85% | -0.12% | -0.31% | 3.11% | 25.00% |
| 60m_730d | ma_crossover | gross | False | 1221 | 48.98% | -0.02% | -0.05% | 2.55% | 12.50% |
| 60m_730d | ma_crossover | gross | True | 491 | 45.82% | -0.21% | -0.28% | 3.70% | 37.50% |
| 60m_730d | rolling_breakout_20 | gross | False | 5413 | 49.29% | 0.08% | -0.03% | 2.56% | 62.50% |
| 60m_730d | rolling_breakout_20 | gross | True | 2792 | 47.28% | 0.19% | -0.17% | 3.53% | 50.00% |
| 60m_365d | ma_crossover | net_low | False | 626 | 45.69% | -0.12% | -0.16% | 2.47% | 12.50% |
| 60m_365d | ma_crossover | net_low | True | 241 | 45.64% | -0.37% | -0.29% | 3.65% | 12.50% |
| 60m_365d | rolling_breakout_20 | net_low | False | 2686 | 49.37% | 0.11% | -0.02% | 2.46% | 75.00% |
| 60m_365d | rolling_breakout_20 | net_low | True | 1398 | 42.56% | -0.22% | -0.41% | 3.11% | 12.50% |
| 60m_730d | ma_crossover | net_low | False | 1221 | 46.85% | -0.12% | -0.15% | 2.55% | 12.50% |
| 60m_730d | ma_crossover | net_low | True | 491 | 43.79% | -0.31% | -0.38% | 3.70% | 25.00% |
| 60m_730d | rolling_breakout_20 | net_low | False | 5413 | 47.09% | -0.02% | -0.13% | 2.56% | 50.00% |
| 60m_730d | rolling_breakout_20 | net_low | True | 2792 | 45.34% | 0.09% | -0.27% | 3.53% | 50.00% |
| 60m_365d | ma_crossover | net_high | False | 626 | 41.69% | -0.32% | -0.36% | 2.47% | 12.50% |
| 60m_365d | ma_crossover | net_high | True | 241 | 41.49% | -0.57% | -0.49% | 3.65% | 0.00% |
| 60m_365d | rolling_breakout_20 | net_high | False | 2686 | 44.86% | -0.09% | -0.22% | 2.46% | 25.00% |
| 60m_365d | rolling_breakout_20 | net_high | True | 1398 | 39.27% | -0.42% | -0.61% | 3.11% | 12.50% |
| 60m_730d | ma_crossover | net_high | False | 1221 | 42.75% | -0.32% | -0.35% | 2.55% | 12.50% |
| 60m_730d | ma_crossover | net_high | True | 491 | 40.73% | -0.51% | -0.58% | 3.70% | 12.50% |
| 60m_730d | rolling_breakout_20 | net_high | False | 5413 | 43.01% | -0.22% | -0.33% | 2.56% | 0.00% |
| 60m_730d | rolling_breakout_20 | net_high | True | 2792 | 42.41% | -0.11% | -0.47% | 3.53% | 37.50% |
gross → net_low → net_high 的退化幅度,确认成本是否值得被升格为默认报告项。bubble_proxy = True / False 的差异,确认 regime 是否会重排均值与胜率。提醒:这仍是最小 survival experiment,不是完整论文复现,更不是最终策略页。