Max Metrics Risk Engine MK III

Methodology & Philosophy

Engine v4.3 · Backtest window 2010-07-18 → present (~7,800 scored observations) · Methodology last revised August 2026

About MK III

MK II (2025) rebuilt the engine from the ground up: it introduced the cycle-position domain, cut the number of overlapping signals down to a manageable set, and replaced jargon with plain language across the dashboard.

MK III (2026) is about evidence. MK II decided what mattered largely by reasoning about it. MK III went back and measured every one of those decisions against what Bitcoin actually did afterwards — and several of them turned out to be wrong. What changed:

  • Weights set by backtest, not intuition. Every domain was measured against forward returns before being given any weight. Sentiment — previously the second-heaviest input at 24% — was cut to 8% after it tested backwards at 90 and 180 days. BTC dominance went the other way, from 0% to 13%, after testing showed a real edge that had simply never been checked.
  • MVRV Z-Score added as 40% of the heaviest domain. The plain MVRV ratio and NUPL were tested first and rejected — they scored backwards. It is the volatility normalisation that makes the Z-score work.
  • History extended to 2010. VIX and four macro series used to begin in mid-2021; they now run back sixteen years, so the macro and TradFi domains are judged across four cycles instead of one. An 11-month gap in the MVRV Z-Score series was filled in.
  • Fabricated data deleted. Roughly 4,000 pre-2021 leverage readings were not measurements at all — they were a placeholder the engine substitutes when data is missing, saved as though real. No free source has that history, so they were removed rather than replaced with a guess.
  • The track record published. A live panel now shows how the score has actually performed, at three horizons, including the horizon where it barely works. The CYCLES view overlays all four halving epochs, and every indicator chart states the span it is really showing.

No crystal ball. No hype. Just the data, explained in plain language — including the parts that are unflattering.

The Score at a Glance

The Risk Score is a contrarian cycle oscillator from 0 to 100:

0 — Cycle Bottom
Maximum fear. Historically the best long-term entries.
50 — Neutral
No edge either way. Let the signal develop.
100 — Cycle Top
Extreme optimism. Historically precedes corrections.

It answers one question: where are we in the Bitcoin cycle, and is the crowd too optimistic or too pessimistic right now? It is a blend of seven weighted domains, led by on-chain valuation (33%) and cycle position (20%) — the two families of signals that have historically marked tops and bottoms. Sentiment, once the second-heaviest input, now carries just 8%, because the backtest showed it pointing the wrong way at the horizons that matter. The full breakdown is in the Engine Architecture section below.

Validated Historical Performance

We replay the score across the full history back to July 2010 — about 7,800 scored observations covering four halving cycles — and measure what Bitcoin actually did in the 180 days after each reading. 180 days is the horizon where this model has a real edge; at 30 days it has almost none, and the page says so below rather than hiding it.

These same figures are computed live in the Track Record panel on the dashboard, with a 30D/90D/180D toggle. If the numbers here and there ever disagree, trust the dashboard — it reads from the engine directly.

When the score reached 70 or higher (peak optimism)

Bitcoin averaged −7.9% over the following 180 days and finished lower 64% of the time. Against a market that rose on average across the same history, that is a genuine negative signal — not merely a weak one. (343 observations)

When the score dropped to 30 or lower (deep fear)

Bitcoin finished higher 86% of the time over the following 180 days — the highest reliability of any band on the scale. The average gain was +141%. (994 observations)

Everything in between (the base rate)

A randomly chosen day averaged +157% over the following 180 days and finished higher 59% of the time. Bitcoin rose enormously over this period, so that baseline is high by construction — and it is the honest benchmark to judge the extremes against. Read this carefully: the buy zone's average gain (+141%) is not higher than a random day. Its edge is reliability — 86% of readings rose versus 59% — not a bigger average return. The sell zone is the reverse: it genuinely turns negative where the baseline is strongly positive.

⚠️ Honest caveats, in full. (1) These are in-sample results: the current weights are replayed over past data, so this is not a live forward test. (2) The observation counts look large but overlap heavily — daily readings with a 180-day forward window are nowhere near independent trials, so 994 is not 994 independent experiments. (3) The edge is horizon-dependent: the rank correlation between score and forward return is −0.23 at 180 days (a real signal), −0.15 at 90 days, and −0.10 at 30 days (essentially none). This is a months-to-quarters instrument, not a timing tool. (4) Several inputs only begin in 2021, so the earlier history is computed from fewer signals than today's.

How to Use This

The score is a market-condition indicator, not a trading signal. It tells you what kind of environment you're in; what you do with that depends on your own strategy and time horizon. The seven bands — their edges are set at 70 and 30, the same thresholds the backtest measures and the same lines drawn on the history chart, so the labels and the chart always agree:

  • 0–20 · Capitulation: Maximum fear. Historically the highest-reward multi-month zone.
  • 20–30 · Deep Value: Cheap by cycle measures. Strong multi-month risk/reward.
  • 30–42 · Accumulation: Constructive base rates on a multi-month horizon.
  • 42–58 · Neutral: No clear edge. Wait for the signal to develop.
  • 58–70 · Elevated: Trend caution — not a sell. Bull markets spend long stretches here while price keeps climbing. Don't fight the trend; just tighten risk management.
  • 70–80 · Distribution: Forward returns turn genuinely negative here — about −8% over the following 180 days, versus a strongly positive baseline.
  • 80–100 · Euphoria: Extreme-optimism territory. Capital preservation first.

One band deserves emphasis: 58–70 is not a sell signal. Earlier versions of risk models (ours included) treated anything above neutral as a warning. The data disagreed — bull markets spend long stretches in this zone while price keeps climbing. MK III labels it honestly.

Engine Architecture

The score is a weighted blend of seven domains, listed here heaviest first. Every weight was set by measuring that domain against forward returns — not by intuition about what ought to matter. Two of them changed drastically as a result, and both changes are noted below.

1. On-Chain Valuation (33% weight)

The heaviest input, and it is a blend of three things: the CBBI (a meta-index of 10+ on-chain metrics, 45% of this domain), the MVRV Z-Score (40%), and 30-day price momentum (15%).

MVRV Z-Score compares Bitcoin's market value to the average price every coin last moved at, then measures how unusual that gap is by historical standards. Worth noting: the raw MVRV ratio and NUPL were both tested and rejected — they scored backwards. It is the volatility normalisation that makes the Z-score work. Testing the obvious version and discarding it is why this input earns 40% of the heaviest domain.

2. Cycle Position (20% weight)

Distance of price from the 200-week moving average and drawdown from all-time highs. Far above the long-term average = late-cycle risk; deep below it = washed-out value. It moves slowly, which makes it poor for timing and strong for locating where you are within a multi-year cycle.

3. Derivatives Structure (13% weight)

Direction matters more than size. Negative funding and backwardation mean traders are paying to be short — forced selling that often marks bottoms. Hot positive funding and a high futures premium mean leverage has piled into the long side — fragile and top-heavy. Funding carries 65% of this domain and basis 35%; open-interest level is deliberately excluded from the score and shown as context only.

4. Rotation — BTC Dominance (13% weight)

How capital is moving between Bitcoin and the rest of the market: dominance plus its 7- and 30-day drift, the alt-season index and ETH/BTC. Money rotating out of Bitcoin into higher-risk alts has historically been a late-cycle tell.

This domain carried zero weight until it was actually tested. It turned out to have one of the strongest edges in the model and had been ignored on an assumption nobody had checked.

5. Sentiment — Fear & Greed (8% weight)

The classic contrarian signal: extreme fear near bottoms, extreme greed near tops.

It used to be the second-heaviest input at 24%. Testing it against forward returns showed it pointing the wrong way at 90 and 180 days — not merely weak, but inverted — and that result held across eras rather than being an artifact of one period. It was cut to 8% and kept small because the premise is sound even where this particular index is not.

6. TradFi — VIX (8% weight)

Read contrarian: a VIX panic spike often coincides with capitulation across all risk assets, while extreme stock-market complacency tends to appear late in cycles. VIX has the strongest single raw correlation with forward returns of anything in the model, and its history now runs to 2010 rather than 2021.

7. Macro Liquidity (5% weight)

A slow backdrop tilt from M2 money supply, real 10-year yields, the broad dollar index and the Fed balance sheet. Deliberately small — macro sets the weather, not the timing.

Context-Only Inputs (0% weight)

ETF flows and stablecoin supply appear on the dashboard but do not move the score — both tested as trend-following, good at confirming what is already happening and poor at calling turns. BTC dominance used to be listed here; it is now scored at 13% (see Rotation above).

How the parts combine

Each domain produces a 0–100 reading, and the score is their weighted average. Three mechanics are worth knowing: a 3-period smoothing damps single-reading noise; an expansion factor of 1.3 stretches the result around the neutral midpoint of 50, so genuine extremes reach the ends of the scale instead of hugging the middle; and when a domain has no data it is renormalised out rather than treated as neutral — a missing input never quietly drags the score toward 50.

Signal Flags Reference

When notable conditions appear, the engine raises informational flags — you'll see them as markers on the history chart and as a banner on the dashboard. They do not force the score (the weighted blend already reflects them); they confirm what the number is saying. Each flag describes a market condition, framed as bearish or bullish:

Trigger Flag Reads as
Pi Cycle Top fires ⛔ Pi Cycle Top Bearish — rare, top-only
CBBI ≥ 85 🔴 Extreme Optimism Bearish — overbought
MVRV Z-Score ≥ 7 🔴 Severely Overvalued Bearish — historic top zone
Fear & Greed ≥ 85 🔴 Extreme Optimism Bearish — crowd euphoric
SOPR ≥ 1.05 🟠 Profit-Taking Bearish — heavy realised profit
Funding ≥ 0.04% / 8h 🟠 Leverage Peak Bearish — longs crowded
Futures basis ≥ 18% ann. 🟠 Leverage Peak Bearish — premium stretched
30-day momentum ≥ 40% 🟠 Momentum Blow-off Bearish — parabolic
CBBI ≤ 15 🟢 Maximum Fear Bullish — oversold
MVRV Z-Score ≤ −0.3 💎 Severely Undervalued Bullish — below cost basis
Fear & Greed ≤ 15 🟢 Maximum Fear Bullish — crowd capitulating
SOPR ≤ 0.95 🔵 Capitulation Signal Bullish — selling at a loss
Funding ≤ −0.01% / 8h 🔵 Capitulation Signal Bullish — shorts paying longs

Pi Cycle Top is deliberately one-sided. It fires when the 111-day price average crosses above twice the 350-day average, and it has landed within days of the 2013, 2017 and April-2021 tops. It has no bottom equivalent, so rather than force it into a symmetric score — where its silence at lows would read as false neutrality — it is used purely as a top warning.

On the chart these appear in the event rail beneath the plot: above the divider = elevated-risk conditions, below = deep-value conditions. Position carries the meaning, so the rail stays readable in the monochrome themes.

Data Sources

The engine refreshes every 3 hours. Every source below is free and public — there are no paid data feeds anywhere in this project, by design.

  • On-Chain: CBBI (colintalkscrypto), MVRV Z-Score and NUPL (CoinMetrics Community), SOPR
  • Cycle signals: 200-week moving average, drawdown from all-time high, Pi Cycle Top, Mayer Multiple, Puell Multiple, Hash Ribbons — all computed from CoinMetrics daily price, issuance and hash-rate history
  • Sentiment: Crypto Fear & Greed Index (alternative.me)
  • Derivatives: Funding rates, open interest and futures basis (OKX, with Bybit used for historical funding)
  • Macro & TradFi: VIX, 10-year real yield, broad dollar index, Fed balance sheet and M2 — all from FRED (Federal Reserve Bank of St. Louis)
  • Rotation: BTC dominance, alt-season index, ETH/BTC
  • Context only: US spot Bitcoin ETF flows, stablecoin supply

How far back each indicator goes

Not every input reaches 2010, and the dashboard does not pretend otherwise — each detail chart is labelled with the span it is actually showing.

  • July 2010: price, MVRV Z-Score, cycle position, drawdown, Pi Cycle, VIX, real yields, dollar index, Fed balance sheet, M2
  • June 2011: CBBI
  • February 2018: Fear & Greed (the index did not exist before then)
  • March 2020: funding rates
  • June 2021: SOPR, dominance, alt-season, ETH/BTC, open interest, stablecoins

About the history behind these numbers

Most of that depth was added deliberately. VIX, real yields, the dollar index, the Fed balance sheet and M2 all used to begin in mid-2021 and were extended back to 2010 from FRED, which roughly tripled the evidence behind the macro and TradFi domains. An 11-month hole in the MVRV Z-Score series — caused by the field being added to storage later than the rest — was filled in.

One deliberate removal is worth stating plainly. The leverage figures before mid-2021 were not measurements: when open-interest data is missing the engine substitutes a neutral placeholder, and the historical rebuild had saved thousands of those placeholders as though they were real readings. No free source has Bitcoin open-interest history going back that far, so rather than invent a replacement, roughly 4,000 fabricated values were deleted. The Leverage Risk chart now simply starts in 2021, where its real data starts.

Important Disclaimers

This dashboard is a data-visualization tool for educational purposes. It is not financial advice. Past performance does not guarantee future results. The backtest above is in-sample; real-world conditions, fees, slippage, and your own behavior will differ. Always do your own research, and never risk money you can't afford to lose. This is a tool, not a crystal ball.

MaxMetrics Risk Engine MK III — maintained with ☕ and code.