Skip to content

BaseSizer


class backtide.sizers.base.BaseSizer()[source]

Abstract base class for all position sizers.

Subclass it to create a custom sizer.


Example

from backtide.sizers import BaseSizer

class MySizer(BaseSizer):
    def __init__(self, param1=0.02):
        self.param1 = param1

    def calculate(self, equity, price, stop_distance=None, atr=None):
        # Your sizing logic here
        return quantity


Methods

calculate Calculate the quantity to trade.


method backtide.sizers.basecalculate(equity, price, stop_distance=None, atr=None)[source]

Calculate the quantity to trade.

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
Current market 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.