Karma Strategy v153

Quantitative BTC Futures Strategy | Backtest Period: 2022-09-21 to 2026-05-24 (3.67 years, 32,197 hourly bars) | Generated: 2026-05-24

+18,837%
Total Return
4.86
Sharpe Ratio
6.33
Sortino Ratio
12.65%
Max Drawdown
68.7%
Win Rate
0.06
Beta to BTC

Strategy Overview

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:

  • V45 Core — Regime-aware order-book imbalance (ob_dif) entries with adaptive leverage
  • 0330D Dip Buyer — MPI weakness + multi-factor confirmation for dip entries
  • Master Score V2 Overlay — IC-weighted 4-indicator composite score for position sizing
  • CBBI Regime Overlay — 60-day Bollinger regime filter adding +1.0x / 0.0x / -1.0x based on long-term cycle state
  • R28 Pure-Short — Skew_d7 + MPI driven short overlay with 24h cooldown and 3% profit target
  • AH8 MPI Mean-Reversion — Karma regime-aware MPI threshold entries (long low MPI, short high MPI) with skew_d7 + ob_dif filters, 24h MPI direction confirm, 3% trailing stop, 6% profit target, asymmetric hold (long 120h / short 72h), MPI velocity boost (|Δ24h|>10 → lev×1.5)

Risk Controls:

  • Max leverage: 3.0x (margin 0.33)
  • Fixed price stop loss: 8% from entry price
  • Drawdown protection caps at 8% / 15% / 22%
  • Slippage: 0.03% per trade
  • Commission: futures standard

Indicators used (7 total): ob_dif, mpi, usdc_premium, ob_liq, lsur, cbbi, skew_d7/d14 — all sourced from CoinKarma proprietary data feed.

Full Period Performance (3.67 Years)

Total Return
+18,837%
$100K → $18.94M
Annualized Return
+317%
CAGR over 3.67 years
Sharpe Ratio
4.86
Risk-adjusted return
Sortino Ratio
6.33
Downside-adjusted
Calmar Ratio
25.1
CAGR / MaxDD
Max Drawdown
12.65%
Peak-to-trough
Beta to BTC
0.06
Low market exposure
Profit Factor
10.68
Gross profit / loss

Trade Statistics

Total Trades
572
Full period (completed round-trips)
Win / Loss
393W / 179L
68.7% win rate
Profit Factor
10.68x
$10.68 won per $1 lost
Avg Trade
~156 trades/yr
Medium frequency

Out-of-Sample Validation (4-Period Split)

PeriodDate RangeDays ReturnSharpeSortinoMaxDD BetaTradesWin RateProfit Factor
Train2022-09 ~ 2024-09740 +1,387%4.345.5012.7% -34366.5%6.23
Validation2024-10 ~ 2025-09364 +360%5.397.236.0% -16071.2%6.29
Test (OOS)2025-10 ~ 2026-05235 +177%5.938.266.9% -6973.9%19.13
Full2022-09 ~ 2026-051,341 +18,837%4.866.3312.65% 0.0657268.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.93 with 6.9% max drawdown, demonstrating forward-looking robustness.

Monthly Performance Consistency

Positive Months
43 / 45
96% monthly win rate
Best Month
+40.9%
April 2024
Worst Month
-4.5%
July 2023
Avg Monthly Return
+12.6%
Median: +10.4%

Walk-Forward Validation

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.

Risk Analysis

MetricFull PeriodDescription
Max Drawdown12.65%Worst peak-to-trough decline (worst DD at 2024-01-11)
Drawdown Duration104.2 daysLongest recovery (median: 9.3 days)
DD Episodes > 5%22Average depth: 6.9%, average recovery: 13.2 days
Stop Loss Triggers7Fixed 8% price stop hits
Beta to BTC0.06Low correlation to buy-and-hold BTC
Annualized Alpha+314%Excess return over beta-adjusted BTC
Negative Months1 / 45Worst: -4.5% (July 2023)

Quality Scorecard

MetricTargetActualStatus
Sharpe Ratio> 2.04.86PASS
Max Drawdown< 30.0%12.65%PASS
Validation Sharpe> 1.55.39PASS
Test Return> 0%+177%PASS
Win Rate> 60%68.7%PASS
Profit Factor> 2.010.68PASS
Trade Count> 20572PASS
Walk-Forward> 80% OOS+100% (10/10)PASS
Monthly Win Rate> 70%96%PASS
Beta< 0.50.06PASS

Overfit Robustness Check

Seven independent tests confirm the strategy is not overfitted. All checks run on 2026-04-20.

CheckTargetActualStatus
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 positive4/4 (V/T 0.94–1.57)PASS
Parameter Sensitivity (±20%)StableΔSh < 0.05PASS
Overlay Correlation (avg)< 0.400.032PASS
Ensemble / Best Single> 1.3×2.25×PASS
Monte Carlo Shuffle (p-value)< 0.05p = 0.000PASS

Overlay Correlation Matrix

Average pairwise correlation: 0.032 — 11 overlays are nearly uncorrelated, providing genuine diversification.

V45D_dipV2CBBIR28R7MetaAH8CS11CL01RPL
V451.000.120.10-0.040.04-0.08-0.050.04-0.010.010.28
D_dip0.121.000.08-0.04-0.01-0.010.07-0.010.030.110.14
V20.100.081.000.13-0.03-0.06-0.03-0.01-0.070.180.08
CBBI-0.04-0.040.131.000.000.000.000.07-0.030.26-0.27
R280.04-0.01-0.030.001.000.040.110.100.13-0.010.04
R7-0.08-0.01-0.060.000.041.000.020.100.10-0.04-0.02
Meta-0.050.07-0.030.000.110.021.000.040.23-0.01-0.02
AH80.04-0.01-0.010.070.100.100.041.000.120.00-0.01
CS11-0.010.03-0.07-0.030.130.100.230.121.000.00-0.13
CL010.010.110.180.26-0.01-0.04-0.010.000.001.000.00
RPL0.280.140.08-0.270.04-0.02-0.02-0.01-0.130.001.00

Monte Carlo & Ensemble Test

Monte Carlo Shuffle (1,000 iter)

Real V153 Sharpe4.94
MC Mean / Std4.65 / 0.00
MC [5%, 95%][4.65, 4.65]
Percentile Rank100.0%
p-value0.0000

Ensemble vs Single Overlays

V153 Ensemble Sharpe4.94
Best Single (R28)2.20
Avg Single1.58
Ensemble / Best2.25×
Ensemble / Avg3.13×

V153 Complete Strategy Flow (Pseudo Code)

╔══════════════════════════════════════════════════════════════╗ ║ Karma Strategy V153 — Every Hour Execution Flow ║ ╚══════════════════════════════════════════════════════════════╝ STEP 1: STOP LOSS CHECK if position_size != 0: if is_long AND price ≤ entry_price * 0.92: CLOSE ALL if is_short AND price ≥ entry_price * 1.08: CLOSE ALL STEP 2: V45 LONG CORE (short-term ob_dif signal) regime = BULL if karma > 60, BEAR if karma < 30, else NEUTRAL threshold = {BULL: 1500, NEUTRAL: 2000, BEAR: 3000, off-peak: 5000} LONG entry: ob_dif > threshold AND price ≤ BB_upper(240h) LONG exit: ob_dif < 0 OR MPI > exit_mpi OR held ≥ max_hold NOTE: V45 short sleeve REPLACED by R28 overlay in Step 6 (V52 change). STEP 3: 0330D DIP BUY (MPI weakness sleeve) entry: MPI < 35 AND 24h_drop ≤ -3% AND lsur < 1.0 AND skew_d1 < -3 exit: MPI ≥ entry_mpi + 15 OR held ≥ 336h STEP 4: V2 SCORE OVERLAY (4-indicator composite) score = 0.35*clip(-usdc/0.15) + 0.30*clip(od/2000) + 0.20*clip(obliq/Q90) + 0.15*clip((0.7-lsur)/0.7) entry: score ≥ 0.45 → lev = (score/score_max_720h)*2.0 (V58 dynamic) exit: score < 0.20 OR od < -500 OR mpi_rise ≥ 30 STEP 5: CBBI REGIME OVERLAY (long-term cycle) bb_upper = SMA(CBBI, 1440h) + 2.0 * STD(CBBI, 1440h) bb_lower = SMA(CBBI, 1440h) - 2.0 * STD(CBBI, 1440h) if CBBI > bb_upper: regime_lev = +1.0x (BULL) if CBBI < bb_lower: regime_lev = -1.0x (BEAR) else: regime_lev = 0.0x (NEUTRAL) STEP 6: R28 PURE-SHORT OVERLAY (V52 addition — replaces V45 short) entry: skew_d7 > 12 AND MPI > 50 filter: ob_dif < 1000 AND skew_d14 > 6 block: if any long sleeve active (V45/0330D/V2) → skip leverage: 2.0x (short) exit: MPI < 24 OR held ≥ 24h OR profit ≥ 3% OR stop 8% re-entry: after exit, 24h cooldown, then re-enter if signal still fires (captures multiple profit cycles in same overextended phase) STEP 7: COMBINE & EXECUTE v153_target = V45_long + 0330D + V2 + CBBI_regime + R28_short + AH8_mpi_reversion + R7_short + Meta_short + V3a_short // V55+V58: three short overlays + pv2_long // V153: pure_v2 MPI+CBBI long overlay (0.7x) * directional_base_discount // V55: same-side stacking // V57: Meta gated by basis_p720 > 0.30 (build_v57_df) // V57: R7 force-exit when basis_p720 < 0.50 mid-hold // V58: V3a CoinGlass composite short overlay (0.4x) // V58: V2 dynamic leverage = (score/score_max)*2.0 at entry // V153: pure_v2 = 0.50*(1-mpi_pct720) + 0.50*cbbi_chg24_norm, entry>0.65 net = clip(v153_target, -3.0x, +3.0x) // 3.0x hard cap order_target_size(net)

CBBI Regime Overlay

CBBI Regime Detection (long-term overlay): cbbi_sma = SMA(CBBI, 1440h) // 60-day moving average cbbi_std = STD(CBBI, 1440h) // 60-day standard deviation bb_upper = cbbi_sma + 2.0 * cbbi_std bb_lower = cbbi_sma - 2.0 * cbbi_std if CBBI > bb_upper -> BULL regime -> +1.0x overlay if CBBI < bb_lower -> BEAR regime -> -1.0x overlay else -> NEUTRAL -> 0.0x overlay Combined Position: net_leverage = V45 + V2 + D + R28 + AH8 + R7 + Meta + V3a + pv2 + regime_overlay + base_discount cap at +/-3.0x

V2 Score Formula

Master Score V2 — IC-weighted composite of 4 on-chain/derivatives indicators:

score_v2 = 0.35 × clip(-usdc_premium / 0.15, -1, 1) // USDC premium (contrarian) 0.30 × clip(ob_dif / 2000, -1, 1) // Order book imbalance 0.20 × clip(ob_liq / Q90, 0, 1) // Orderbook liquidity 0.15 × clip((0.7 - lsur) / 0.7, 0, 1) // Long/short utilization Entry: score ≥ 0.45 | Exit: score < 0.20 Risk: Fixed price stop loss = 8% from entry price Cap: Max combined leverage = 3.0x (V52)

Strategy Parameters

ParameterValueDescription
Max Leverage3.0xHard cap on net position size (V52)
Margin Mode33% (3x)Isolated margin per position
Stop Loss8% fixedCloses when price drops 8% from average entry
V2 Entry≥ 0.45Composite score threshold for V2 overlay activation
V2 Exit< 0.20Score threshold for V2 overlay deactivation
V2 Max Leverage2.0xV2 dynamic leverage cap: (score/score_max_720h)*2.0 at entry
CBBI BB Period1440h60-day Bollinger Band lookback for regime overlay
Slippage0.03%Applied to every trade execution
Rebalance FreqHourlyPosition check on every 1h bar
Data Resolution1 hourAll signals computed on hourly bars
Total Parameters~15Low parameter count reduces overfit risk

Signal Flow Diagram

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

Equity Curve

Karma Strategy v153 equity curve

Open Interactive Chart with Full Trade Log (1,777 events) →

🔴 Live Signals

→ V153 Live Signal Dashboard — 所有做多/做空 overlay 目前滿足幾條、還差什麼,5 分鐘自動更新

Research Appendix

TimesFM 2.0 零樣本預測實驗:
MPI 預測 — 方向準確率 75.7%、MPI<30 事件 precision 97% ✓
BTC 價格預測 — 10 輪迭代,三種表示法全部失敗 ❌(EMH 實證)

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