Volatility Targeting in Crypto: Position Sizing That Respects the Regime

Jonny Bravo
-Volatility Targeting in Crypto: Position Sizing That Respects the Regime
Ask a discretionary trader how big their position is and they'll answer in coins or dollars. Ask a risk manager and they'll answer in volatility — because the dollar number is almost meaningless on its own. One BTC held through a placid month and one BTC held through a liquidation cascade are wildly different trades wearing the same size.
Crypto makes the gap extreme. Annualized BTC volatility has spent recent years everywhere between roughly 30% and 150%. A strategy that sizes positions as a fixed fraction of equity therefore doesn't have "a risk level" — it has whatever risk level the market is currently handing out, five times more in the bad months than the quiet ones. And the bad months are exactly when fixed sizing hands you your largest exposures.
The mechanism, in one line
Volatility targeting flips the causality. You choose a target volatility for the position or the book — say, 20% annualized. Each rebalance, you measure recent realized volatility and scale exposure by the ratio:
scale = target_vol / realized_vol # capped, because leverage is a loaded gun weight = base_weight * min(scale, max_leverage)
Vol doubles → exposure halves → the risk you carry stays roughly where you put it. Vol collapses → exposure grows (up to a hard cap) → a quiet market doesn't quietly starve your strategy of participation. In our engine this is a declarative part of strategy config, computed inside the backtest bar-by-bar with the same point-in-time discipline as every other signal — realized vol at time t uses only bars before t — so the backtested sizing is the sizing you'd actually have run.
Three implementation details carry most of the value:
- Measure vol on enough window to be stable, little enough to be current. Sizing off 20–60 day realized vol is the conventional zone; shorter chases noise, longer sleeps through regime changes.
- Cap the upside of the scalar.
min(scale, cap)matters more than it looks. When realized vol collapses, an uncapped scalar quietly cranks leverage — and vol collapse is often the prelude to a vol event, which is the worst possible moment to be at maximum size. - Respect it at the portfolio level too. Per-position targeting plus correlated positions still lets book-level risk pile up; a multi-strategy book wants the same treatment applied to the whole.
What it does to the numbers — and what it doesn't
Volatility targeting is not an alpha source; on average it doesn't make the market pay you more. What it changes is the shape of the return stream:
- Drawdowns compress. Your biggest exposures stop coinciding with the most violent tape, which is where fixed-size strategies take their worst hits. In crypto backtests this effect is usually visible immediately in max drawdown and Calmar.
- The Sharpe ratio usually improves modestly — not because returns grow, but because the denominator stops being dominated by a handful of high-vol episodes.
- Returns become comparable across time. A month of +5% at 20% vol and a month of +5% at 80% vol are very different achievements; a vol-targeted book makes month-to-month numbers mean the same thing — which also makes the metrics you report far easier to defend.
The honest caveat: vol targeting trades away some upside in sustained low-vol trends (you're capped) and it reacts after vol moves, not before — a gap event still hits at your pre-gap size. It's a risk-shaping tool, not a crystal ball, and any platform that markets it as return enhancement is selling the wrong thing.
Why it belongs in the engine, not in your spreadsheet
The failure mode of vol targeting isn't conceptual — everyone nods at the formula. The failure is operational: the scalar gets computed in a notebook, applied by hand, forgotten during the exact chaotic week it exists for. Sizing discipline only works when it's mechanical, which is to say: when the same engine that backtested it executes it live, rebalance after rebalance, without asking how anyone feels about the market today.
Decide your risk once, in config, in a calm moment. Then let the machine keep the promise.
Set a vol target and a leverage cap in strategy config, backtest the sized book, and run the same sizing live. Size positions by risk →
Related reading