Quantitative BTC Futures Strategy | Backtest Period: 2022-09-21 to 2026-05-24 (3.67 years, 32,202 hourly bars) | Generated: 2026-05-24
Karma Strategy v153 is a systematic BTC perpetual futures strategy that combines four signal modules with a CBBI regime overlay, R28 pure-short overlay, AH8 MPI mean-reversion overlay, three short overlays (R7 basis-regime with basis-drop force-exit, Meta skew-exhaustion with basis floor + btc_liq gate, and V3a CoinGlass composite short), V2 2x dynamic leverage, pure_v2 MPI+CBBI long overlay, directional base-discount for same-side stacking, and layered risk controls. V153 執行修正: 同一根 K 線只下一次 net order,消除 V59 多 overlay 同時觸發時的 transient leverage 爆衝 bug(V59 實測最高 -9.22x,V153 收斂為 3.21x 市場漂移)。信號邏輯與 V59 完全相同。
Signal Modules:
ob_dif) entries with adaptive leverageRisk Controls:
Indicators used (7 total): ob_dif, mpi, usdc_premium, ob_liq, lsur, cbbi, skew_d7/d14 — all sourced from CoinKarma proprietary data feed.
| Period | Date Range | Days | Return | Sharpe | Sortino | MaxDD | Beta | Trades | Win Rate | Profit Factor |
|---|---|---|---|---|---|---|---|---|---|---|
| Train | 2022-09 ~ 2024-09 | 740 | +1,387% | 4.34 | 5.50 | 12.7% | - | 343 | 66.5% | 6.23 |
| Validation | 2024-10 ~ 2025-09 | 364 | +360% | 5.39 | 7.23 | 6.0% | - | 160 | 71.2% | 6.29 |
| Test (OOS) | 2025-10 ~ 2026-05 | 235 | +177% | 5.91 | 8.23 | 6.9% | - | 69 | 73.9% | 19.13 |
| Full | 2022-09 ~ 2026-05 | 1,341 | +18,793% | 4.86 | 6.33 | 12.65% | 0.06 | 572 | 68.7% | 10.68 |
Key: The strategy was developed on Train data only. Validation and Test periods are completely out-of-sample. The Test period (most recent 6 months) achieves Sharpe 5.91 with 6.9% max drawdown, demonstrating forward-looking robustness.
10/10 out-of-sample windows profitable with mean OOS Sharpe 6.63 (V153, rerun 2026-04-13).
Walk-forward methodology: 12-month rolling train window, 3-month out-of-sample test, stepped quarterly across the full period. No parameter re-optimization between windows.
| Metric | Full Period | Description |
|---|---|---|
| Max Drawdown | 12.65% | Worst peak-to-trough decline (worst DD at 2024-01-11) |
| Drawdown Duration | 104.2 days | Longest recovery (median: 9.3 days) |
| DD Episodes > 5% | 22 | Average depth: 6.9%, average recovery: 13.2 days |
| Stop Loss Triggers | 7 | Fixed 8% price stop hits |
| Beta to BTC | 0.06 | Low correlation to buy-and-hold BTC |
| Annualized Alpha | +314% | Excess return over beta-adjusted BTC |
| Negative Months | 1 / 45 | Worst: -4.5% (July 2023) |
| Metric | Target | Actual | Status |
|---|---|---|---|
| Sharpe Ratio | > 2.0 | 4.86 | PASS |
| Max Drawdown | < 30.0% | 12.65% | PASS |
| Validation Sharpe | > 1.5 | 5.39 | PASS |
| Test Return | > 0% | +177% | PASS |
| Win Rate | > 60% | 68.7% | PASS |
| Profit Factor | > 2.0 | 10.68 | PASS |
| Trade Count | > 20 | 572 | PASS |
| Walk-Forward | > 80% OOS+ | 100% (10/10) | PASS |
| Monthly Win Rate | > 70% | 96% | PASS |
| Beta | < 0.5 | 0.06 | PASS |
Seven independent tests confirm the strategy is not overfitted. All checks run on 2026-04-20.
| Check | Target | Actual | Status |
|---|---|---|---|
| OOS Sharpe Decay (Val/Train) | < 30% | 3% (0.969) | PASS |
| OOS MDD Ratio (Val/Train) | < 1.5× | 0.86× | PASS |
| Walk-Forward (4 windows) | All positive | 4/4 (V/T 0.94–1.57) | PASS |
| Parameter Sensitivity (±20%) | Stable | ΔSh < 0.05 | PASS |
| Overlay Correlation (avg) | < 0.40 | 0.032 | PASS |
| Ensemble / Best Single | > 1.3× | 2.25× | PASS |
| Monte Carlo Shuffle (p-value) | < 0.05 | p = 0.000 | PASS |
Average pairwise correlation: 0.032 — 11 overlays are nearly uncorrelated, providing genuine diversification.
| V45 | D_dip | V2 | CBBI | R28 | R7 | Meta | AH8 | CS11 | CL01 | RPL | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| V45 | 1.00 | 0.12 | 0.10 | -0.04 | 0.04 | -0.08 | -0.05 | 0.04 | -0.01 | 0.01 | 0.28 |
| D_dip | 0.12 | 1.00 | 0.08 | -0.04 | -0.01 | -0.01 | 0.07 | -0.01 | 0.03 | 0.11 | 0.14 |
| V2 | 0.10 | 0.08 | 1.00 | 0.13 | -0.03 | -0.06 | -0.03 | -0.01 | -0.07 | 0.18 | 0.08 |
| CBBI | -0.04 | -0.04 | 0.13 | 1.00 | 0.00 | 0.00 | 0.00 | 0.07 | -0.03 | 0.26 | -0.27 |
| R28 | 0.04 | -0.01 | -0.03 | 0.00 | 1.00 | 0.04 | 0.11 | 0.10 | 0.13 | -0.01 | 0.04 |
| R7 | -0.08 | -0.01 | -0.06 | 0.00 | 0.04 | 1.00 | 0.02 | 0.10 | 0.10 | -0.04 | -0.02 |
| Meta | -0.05 | 0.07 | -0.03 | 0.00 | 0.11 | 0.02 | 1.00 | 0.04 | 0.23 | -0.01 | -0.02 |
| AH8 | 0.04 | -0.01 | -0.01 | 0.07 | 0.10 | 0.10 | 0.04 | 1.00 | 0.12 | 0.00 | -0.01 |
| CS11 | -0.01 | 0.03 | -0.07 | -0.03 | 0.13 | 0.10 | 0.23 | 0.12 | 1.00 | 0.00 | -0.13 |
| CL01 | 0.01 | 0.11 | 0.18 | 0.26 | -0.01 | -0.04 | -0.01 | 0.00 | 0.00 | 1.00 | 0.00 |
| RPL | 0.28 | 0.14 | 0.08 | -0.27 | 0.04 | -0.02 | -0.02 | -0.01 | -0.13 | 0.00 | 1.00 |
Monte Carlo Shuffle (1,000 iter)
| Real V153 Sharpe | 4.94 |
| MC Mean / Std | 4.65 / 0.00 |
| MC [5%, 95%] | [4.65, 4.65] |
| Percentile Rank | 100.0% |
| p-value | 0.0000 |
Ensemble vs Single Overlays
| V153 Ensemble Sharpe | 4.94 |
| Best Single (R28) | 2.20 |
| Avg Single | 1.58 |
| Ensemble / Best | 2.25× |
| Ensemble / Avg | 3.13× |
Master Score V2 — IC-weighted composite of 4 on-chain/derivatives indicators:
| Parameter | Value | Description |
|---|---|---|
| Max Leverage | 3.0x | Hard cap on net position size (V52) |
| Margin Mode | 33% (3x) | Isolated margin per position |
| Stop Loss | 8% fixed | Closes when price drops 8% from average entry |
| V2 Entry | ≥ 0.45 | Composite score threshold for V2 overlay activation |
| V2 Exit | < 0.20 | Score threshold for V2 overlay deactivation |
| V2 Max Leverage | 2.0x | V2 dynamic leverage cap: (score/score_max_720h)*2.0 at entry |
| CBBI BB Period | 1440h | 60-day Bollinger Band lookback for regime overlay |
| Slippage | 0.03% | Applied to every trade execution |
| Rebalance Freq | Hourly | Position check on every 1h bar |
| Data Resolution | 1 hour | All signals computed on hourly bars |
| Total Parameters | ~15 | Low parameter count reduces overfit risk |
flowchart TD
START["Hourly Trigger"] --> STOP{"Stop Loss Check\nprice drop >= 8% from entry?"}
STOP -->|YES| FLAT["Close ALL positions\nClear all signal states"]
STOP -->|NO| REG["Update CBBI Regime\nCBBI = Crypto Bull-Bear Index\nBB = Bollinger Band 1440h 2std"]
REG --> REG_BULL{"CBBI > BB upper?"}
REG_BULL -->|YES| BULL["BULL overlay\n+1.0x regime leverage"]
REG_BULL -->|NO| REG_BEAR{"CBBI < BB lower?"}
REG_BEAR -->|YES| BEAR["BEAR overlay\n-1.0x regime leverage"]
REG_BEAR -->|NO| NEUT["NEUTRAL overlay\n0x regime leverage"]
BULL --> KARMA["Karma Regime\nkarma < 30 = bear\nkarma > 60 = bull\nelse = neutral"]
BEAR --> KARMA
NEUT --> KARMA
KARMA --> CHK_V2{"V2 long active?"}
CHK_V2 -->|YES| V2X{"V2 Exit Check\nscore_v2 < 0.20?\nob_dif < -500?\nMPI >= entry_mpi + 30?\nheld >= 336h?"}
V2X -->|any YES| V2C["V2 Close Long"]
V2X -->|all NO| CHK_V45
CHK_V2 -->|NO| V2E{"V2 Entry Check\nno V2 position?\nno R28 short?\nscore_v2 >= 0.45?"}
V2E -->|YES| V2O["V2 Open Long\nlev = (score/score_max_720h)*2.0\nscore = usdc_prem + ob_dif + ob_liq + lsur"]
V2E -->|NO| CHK_V45
V2C --> CHK_V45
V2O --> CHK_V45
CHK_V45{"V45 long active?"}
CHK_V45 -->|YES| V45X{"V45 Exit Check\nob_dif < 0?\nMPI > exit_mpi by regime?\nheld >= max_hold by regime?\ndynamic exit triggered?"}
V45X -->|any YES| V45C["V45 Close Long"]
V45X -->|all NO| CHK_D
CHK_V45 -->|NO| CHK_D
V45C --> CHK_D
CHK_D{"D dip long active?"}
CHK_D -->|YES| DX{"D Exit Check\nMPI >= entry_mpi + rise_exit?\nheld >= max_hold?"}
DX -->|any YES| DC["D Close Long"]
DX -->|all NO| CHK_R28
CHK_D -->|NO| CHK_R28
DC --> CHK_R28
CHK_R28{"R28 short active?"}
CHK_R28 -->|YES| R28X{"R28 Exit Check\nMPI < 24?\nheld >= 24h?\nloss >= 8%?\nprofit >= 3%?"}
R28X -->|any YES| R28C["R28 Close Short"]
R28X -->|all NO| SIZE
CHK_R28 -->|NO| ENTRY
R28C --> ENTRY
ENTRY["Entry Logic\nR28 short must be inactive"]
ENTRY --> DE{"D Dip Long Entry\nMPI < dip_threshold?\n24h price drop deep enough?\nLSUR < max?\nskew_d1 < max?\nprice <= BB upper 240h 1.5std?"}
DE -->|YES| DO["D Open Long\nlev by regime + dip strength"]
DE -->|NO| V45E
V45E{"V45 Long Entry\nV45 no position?\nob_dif > threshold?\nprice <= BB upper 240h 1.5std?"}
V45E -->|YES| V45O["V45 Open Long\nthreshold by regime+hour:\nbull=1500 neutral=2000\nbear=3000 offpeak=5000\nlev by regime+ob_dif+MPI+ARI"]
V45E -->|NO| R28E
R28E{"R28 Short Entry\nno long positions active?\nskew_d7 > 12?\nMPI > 50?\nskew_d14 >= 6?\nob_dif <= 1000?"}
R28E -->|YES| R28F{"First entry or re-entry?"}
R28F -->|first| R28O["R28 Open Short\nleverage = 2.0x"]
R28F -->|re-entry| R28RE{"Re-entry Check\ncooldown >= 24h since last exit?\ncount < max re-entries?\nskew and mpi still valid?"}
R28RE -->|YES| R28O
R28RE -->|NO| SIZE
R28E -->|NO| SIZE
DO --> SIZE
V45O --> SIZE
R28O --> SIZE
R28E -->|NO| AH8CHK
AH8CHK{"AH8 MPI Mean-Reversion\nactive?"}
AH8CHK -->|YES| AH8X{"AH8 Exit Check\nMPI crossed exit threshold?\nheld >= 120h long / 72h short?\n3% trailing stop hit?\n6% profit target?\n8% hard stop?"}
AH8X -->|any YES| AH8C["AH8 Close Position"]
AH8X -->|all NO| R7CHK
AH8CHK -->|NO| AH8E{"AH8 Entry Check\ncooldown >= 8h?\nKarma regime?"}
AH8E -->|LONG| AH8L{"MPI < regime threshold?\nskew_d7 < 0?\nob_dif > 1000?\nMPI 24h falling?"}
AH8E -->|SHORT| AH8S{"MPI > regime threshold?\nskew_d7 > 5?\nob_dif < -1000?\nMPI 24h rising?"}
AH8L -->|YES| AH8O["AH8 Open Long\nbull=2.0x, neutral=1.0x, bear=0.5x"]
AH8S -->|YES| AH8OS["AH8 Open Short\nbull=0.5x, neutral=1.0x, bear=2.0x"]
AH8L -->|NO| R7CHK
AH8S -->|NO| R7CHK
AH8C --> R7CHK
AH8O --> R7CHK
AH8OS --> R7CHK
R7CHK{"R7 short active?"}
R7CHK -->|YES| R7X{"R7 Exit Check\nbasis_p720 < 0.50? (force-exit)\nheld >= 84h?\nprofit >= 8%?\nloss >= 10%?"}
R7X -->|any YES| R7C["R7 Close Short"]
R7X -->|all NO| METACHK
R7CHK -->|NO| R7E{"R7 Short Entry\nbasis_p720 > 0.90?\nMPI > 70?\ncooldown >= 8h?"}
R7E -->|YES| R7O["R7 Open Short 2.0x"]
R7E -->|NO| METACHK
R7C --> METACHK
R7O --> METACHK
METACHK{"Meta short active?"}
METACHK -->|YES| METAX{"Meta Exit Check\nheld >= 96h?\nprofit >= 7%?\nloss >= 10%?"}
METAX -->|any YES| METAC["Meta Close Short"]
METAX -->|all NO| V3ACHK
METACHK -->|NO| METAE{"Meta Short Entry\nskew_d90_p720 > 0.95?\nMPI > 52?\ncbprem_p720 < 0.65?\nbtcliq_p720 < 0.65?\nbasis_p720 > 0.30?\ncooldown >= 24h?"}
METAE -->|YES| METAO["Meta Open Short 2.0x"]
METAE -->|NO| V3ACHK
METAC --> V3ACHK
METAO --> V3ACHK
V3ACHK{"V3a short active?"}
V3ACHK -->|YES| V3AX{"V3a Exit Check\nv3a_score < 0.60?\nheld >= 120h?\nprofit >= 8%?\nloss >= 7%?"}
V3AX -->|any YES| V3AC["V3a Close Short"]
V3AX -->|all NO| PV2CHK
V3ACHK -->|NO| V3AE{"V3a Short Entry\nv3a_score > 0.70?\nbasis_p720 > 0.30?\ncooldown >= 8h?"}
V3AE -->|YES| V3AO["V3a Open Short 0.4x\ncg_liq_short 50% + mpi 20%\n+ skew_d60 15% + skew_d90 10%\n+ cg_whale4 5%"]
V3AE -->|NO| PV2CHK
V3AC --> PV2CHK
V3AO --> PV2CHK
PV2CHK{"pv2 long active?"}
PV2CHK -->|YES| PV2X{"pv2 Exit Check\npv2_score < 0.50?\nheld >= 96h?\nprofit >= 5%?\nloss >= 5%?"}
PV2X -->|any YES| PV2C["pv2 Close Long"]
PV2X -->|all NO| SIZE
PV2CHK -->|NO| PV2E{"pv2 Long Entry\npv2_score > 0.65?\ncooldown >= 12h?"}
PV2E -->|YES| PV2O["pv2 Open Long 0.7x\n= 0.50*(1-mpi_pct720)\n+ 0.50*cbbi_chg24_norm"]
PV2E -->|NO| SIZE
PV2C --> SIZE
PV2O --> SIZE
SIZE["Calc Target Leverage\n= V45 + V2 + D + R28 + AH8\n+ R7 + Meta + V3a + pv2\n+ CBBI regime + base discount\ncap at +/- 3.0x\nRebalance position to target"]
4 Long signals: V45 (ob_dif driven) + V2 (multi-indicator 2x dyn) + D (dip-buy) + pv2 (MPI+CBBI 0.7x) | 4 Short signals: R28 (skew_d7+MPI) + R7 (basis_p720>0.9 & MPI>70, basis-drop force-exit) + Meta (skew_d90_p720>0.95 & MPI>52, basis floor) + V3a (CoinGlass composite 0.4x) | 1 Bidirectional: AH8 MPI mean-reversion | Directional base-discount for same-side stacking | Max leverage cap 3.0x
Open Interactive Chart with Full Trade Log (1,777 events) →
Disclaimer: This report presents historical backtest results only. Past performance does not guarantee future results. Backtest results may differ from live trading due to market impact, liquidity constraints, data latency, and execution differences. The strategy uses leveraged futures positions which carry significant risk of loss. This is not investment advice. All metrics computed with: hourly BTC data from CoinKarma (2017-08 to present), 0.03% slippage, futures commission, and 33% margin requirement. Funding rates are tracked but not deducted from equity.
Karma Strategy v153 | V45+0330D+V2(2x dyn)+CBBI+R28+AH8+R7(basis-drop exit)+Meta(basis floor)+V3a(CG short)+pv2(MPI+CBBI long)+R40 directional discount | 3.0x max leverage | 8% fixed stop loss | 572 trades over 3.67 years