Position sizing
How many spreads a trade gets: a whole-number division of the per-trade risk budget by the spread's known max loss, then scaled down by the VIX regime and capped across the whole book.
Last updated August 31, 2026
Every spread has a known maximum loss before it is sent — (strike width − credit) × 100 per contract. Sizing is just: how many of those fit inside the
risk budget?
The base calculation
The per-trade budget is risk.max_risk_per_trade_pct_of_equity percent of
account equity — 2%, the upper bound of a conventional 1–2% band, used as a
hard cap. The quantity is a floor division:
cap = equity × 2%
quantity = floor(cap ÷ max_loss_per_spread)
Whole spreads only. If even one spread would break the cap — or equity or max loss is unusable — the quantity is 0 and the cycle logs a no-trade instead of sending a fractional or oversized order.
The VIX regime taper (R9)
Before that division, the budget is scaled by a multiplier read off the VIX's own 1-year percentile. Full size at or above the 25th percentile; a straight line down to a 0.5× floor at the 3rd percentile; strictly below the 3rd percentile, no new entry at all (a logged R9 rejection). This is complacency insurance: a very low VIX is a weak timing signal, so the response is a smaller trade, not a market call — except in the extreme tail, where it is a hard stop. The tapered budget is what the division above uses, so a deep-enough taper can by itself take the quantity to 0.
The aggregate cap (R11)
A second, account-level gate: the summed max loss of all open spreads, plus this
candidate's max loss, must stay within risk.max_aggregate_risk_pct_of_equity
— 6% of equity, twice the 3% daily-drawdown stop. SPY and QQQ move together
(~0.95 correlated), so the book is treated as one directional short-volatility
bet, not a diversified set. Past the cap, the entry is rejected until open risk
comes down.
A worked example
Equity $100,000. A 5-wide SPY put spread measured at $1.20 credit:
- Max loss per spread = (5 − 1.20) × 100 = $380.
- Base budget = 2% × $100,000 = $2,000 → floor(2000 ÷ 380) = 5 spreads, combined max loss $1,900 (1.9% of equity).
- VIX taper. With the VIX 1-year percentile near 4 — roughly where it sat when the taper went live — the multiplier is about 0.52. Budget becomes $1,040 → floor(1040 ÷ 380) = 2 spreads, combined max loss $760.
- Aggregate cap. If $900 is already at risk across an open QQQ spread, projected book risk is $1,660, well inside the $6,000 cap — the trade clears. If instead $5,400 were already at risk, the projection is $6,160, past the cap: an R11 rejection, no new entry.
Every one of these numbers is written to the decision log, whether the trade went out or not.