A systematic discretionary approach to crypto — applying 12 years of commodity trading intuition to a multi-layer, walk-forward validated decision framework.
Most crypto trading analysis falls into one of two traps: single-indicator dependence (MVRV says buy, so buy) or narrative-driven positioning (ETF inflows = bullish, therefore long). Both approaches worked in previous cycles but have shown diminishing reliability in the post-ETF institutional era.
Since the January 2024 spot ETF approval, Bitcoin's market structure has fundamentally changed. On-chain metrics have decoupled from price action. Whale execution has fragmented across exchanges. Cycle indicators like Pi Cycle and 200W MA Heatmap failed to produce their historical overheat signals. The old playbook is broken.
The model makes four decisions in sequence, each constraining the next. This mirrors how institutional commodity desks operate — you don't trade the spread without knowing the macro, and you don't size the position without knowing the spread.
DXY trend, M2 growth, VIX level, and HY credit spread classify the market into four regimes: EXPANSION, STABLE, TIGHTENING, BLACK_SWAN. All downstream decisions are regime-conditional — position floors, score thresholds, and signal activation vary by regime.
MVRV Z-Score and NUPL determine where we are in the BTC market cycle: BEAR, BULL_EARLY, BULL_MID, BULL_LATE. Controls trailing stop width and position cap. BULL_LATE tightens stops; BEAR disables long entries regardless of score.
Eight variables — MVRV Z-Score, NUPL, Fear & Greed, SOPR, VIX, DXY, 4-week and 12-week momentum — combined with regime-conditional weights. Score 0–100: high = fear (buy zone), low = greed (reduce zone). Contrarian framing: 92% accuracy at historical cycle inflection points.
Entry/exit thresholds, exposure floors and caps, trailing stop at 10%, and ETF-era structural signals (whale_dist, early_warning, trending_up, etf_bull) determine the final position. Score below 50 → 0% exposure. No leverage on the long side.
Liquidity expanding, dollar weakening. Core long 90–98%. Wide trailing stops. ~31% of historical days.
Mixed signals. Position scales with 200d MA + momentum. trending_up filter prevents false bull signals. ~60% of days.
Liquidity contracting, dollar strengthening. Minimal or short exposure. ~5% of historical days.
VIX spike, credit stress. Immediate risk reduction. ~4% of historical days.
In a structural bull move, the biggest risk is not being in the market.
V2 introduces four structural signals developed in response to the January 2024 ETF approval — each addressing a specific failure mode identified in V1 OOS analysis.
Price/MVRV-Z Divergence. When BTC is near its 90-day high but MVRV-Z has rolled below 75% of its 90-day peak, institutional distribution is underway. Applied post-2024 only — the ETF era structurally changed how whale behavior manifests. Captured the 2025 drawdown that traditional on-chain metrics missed entirely.
VIX + MVRV-Z Macro Stress. Fires when VIX > 25 AND MVRV-Z has fallen >50% over 20 days AND BTC is below the 200-day MA (outside BLACK_SWAN). Fired 76 days in 2022, zero days in 2019/2021/2023/2024/2025. Reduces position to 30% when active — directly addressing the 2022 January regime lag problem.
STABLE Regime Momentum Filter. Position scales to 75% in STABLE only when BTC is above the 200-day MA AND composite score ≥ 35. Distinguishes genuine bull-market STABLE periods (2023 H2, +57.8% OOS) from sideways consolidation — directly addressing the "chopsolidation" regime classification problem.
ETF Flow Confirmation. 20-day cumulative ETF flow (Farside data, updated weekly) exceeds $1B. Provides additional position conviction in STABLE regime when institutional demand is confirmed. Fires zero days pre-2024 — structurally new signal for the institutional era.
❌ Score weights fitted on full dataset
❌ OOS always starts at position = 0%
❌ No ETF-era signal adaptation
❌ STABLE regime too broad (chopsolidation)
❌ 2022 regime lag unaddressed
Result: +906% in-sample (look-ahead bias present)
✅ Score recomputed per period, no leakage
✅ Initial position from actual regime state
✅ whale_dist + etf_bull for ETF era
✅ trending_up filter in STABLE
✅ early_warning for macro stress
Result: +638% compounded True OOS
Trained on 2018 data (earliest on-chain data availability). Each test year uses only information available at that date — no look-ahead, no parameter re-fitting.
| Period | Strategy | B&H | CAGR | Max DD | Sharpe | Avg Exp |
|---|---|---|---|---|---|---|
| 2019 | +40.5% | +82.4% | +40.6% | -46.3% | 0.93 | 61% |
| 2020 | +211.6% | +315.2% | +211.6% | -14.5% | 3.14 | 61% |
| 2021 | +15.5% | +44.1% | +15.5% | -29.1% | 0.46 | 49% |
| 2022 | -36.9% | -65.0% | -37.0% | -37.5% | -2.24 | 22% |
| 2023 | +57.8% | +153.3% | +58.0% | -18.3% | 1.83 | 61% |
| 2024 | +67.9% | +107.8% | +67.9% | -14.4% | 1.93 | 46% |
| 2025 | -12.7% | -9.7% | -12.8% | -24.3% | -0.49 | 64% |
| AVERAGE | — | — | — | -26.4% | 0.79 | 52% |
This framework was built by a commodity trader, not a quant. Over 12 years trading crude oil, naphtha, and petrochemicals across physical and derivatives markets at Samsung C&T (benzene specialist, ~2M tons/year, ~₩3T revenue, ₩10B+ annual P&L) and Triptik Trading SA (Geneva, Asia petrochemicals) taught me that markets are regime-dependent.
The benzene/naphtha spread behaves differently when Chinese inventory is at 200K tons vs. 30K tons. Contango vs. backwardation changes everything about position sizing and entry timing. You can't trade a single number; you need to know which regime you're in.
Crypto is no different. MVRV Z-Score at 2.5 in an EXPANSION regime (M2 growing, DXY falling) is a hold signal. The same reading in a TIGHTENING regime is an exit signal. The framework encodes this context-dependency explicitly — which is why adding more signals hurt performance, but adding better regime classification consistently improved it.
The transition from discretionary to systematic trading is not about replacing intuition with algorithms. It's about encoding intuition into a repeatable, testable framework — and then being honest about where it breaks down.