Module Position_sizing.Volatility_scaling

val size : capital:float -> target_vol:float -> asset_vol:float -> price:float -> float

Size targeting a per-period dollar volatility of target_vol. asset_vol is the per-period return standard deviation as a decimal. Cap at capital / price (100% gross exposure). Returns 0 if asset_vol <= 0 or price <= 0.

val atr_size : capital:float -> risk_pct:float -> atr:float -> price:float -> float

ATR-based size: risk risk_pct of capital, stop loss placed atr units away. Shares = (capital * risk_pct) / atr; capped at capital / price.