Skip to content

VolatilityScaled


class backtide.sizers.VolatilityScaled(risk_pct)

Size based on volatility (ATR).

Computes quantity = (equity * risk_pct) / atr. Like RiskBased but uses the instrument's Average True Range as a proxy for stop distance, automatically shrinking positions on volatile assets and growing them on calm ones. Requires atr to be passed to calculate().

Parameters

risk_pct : float

Fraction of equity to risk per trade (e.g., 0.02 for 2%).


See Also

BaseSizer

Abstract base class for all position sizers.

FixedFractional

Allocate a fixed percentage of total current equity.

RiskBased

Size based on acceptable risk and stop loss distance.


Methods

calculate Calculate the order quantity for this sizer.


method backtide.sizerscalculate(equity, price, stop_distance=None, atr=None)

Calculate the order quantity for this sizer.

Parameters

equity : float

Current portfolio equity in the same currency as price. When a sizer is attached to an order, the engine passes equity converted to that instrument's quote currency.

price : float
Reference price of the instrument.

stop_distance : float | None, default=None
Distance from entry to stop loss, in price units.

atr : float | None, default=None
Current ATR value. Required for volatility-based sizers.

Returns

int | float

The number of units to trade. Positive for buys, negative for sells.