BelethBELETH
Operating the agent
Markdown

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

image 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_equity6% 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.