StratCraft
Guide des indicateurs Backtrader

Backtrader ATR Position Sizing Strategy

Indicateur de volatilité mesurant la plage moyenne entre les prix hauts et bas sur une période donnée. Contrairement aux indicateurs directionnels, l'ATR mesure l'ampleur de la volatilité du marché sans indiquer la direction.

bt.indicators.ATRRisk Management Strategies

Indicateur de volatilité mesurant la plage moyenne entre les prix hauts et bas sur une période donnée. Contrairement aux indicateurs directionnels, l'ATR mesure l'ampleur de la volatilité du marché sans indiquer la direction.

L'ATR est essentiel pour le dimensionnement des positions et la gestion des risques. Au lieu de distances de stop-loss fixes, les stops basés sur l'ATR s'adaptent à la volatilité actuelle : des stops plus larges dans les marchés volatils, des stops plus serrés dans les marchés calmes. Cela évite les sorties prématurées lors d'une volatilité normale tout en protégeant contre les véritables renversements.

En savoir plus sur Risk Management Strategies →
Pythonbacktrader
import backtrader as bt

class ATRPositionSizing(bt.Strategy):
    params = (('atr_period', 14), ('risk_multiple', 2.0), ('risk_pct', 0.02))

    def __init__(self):
        self.atr = bt.indicators.ATR(self.data, period=self.p.atr_period)

    def next(self):
        if not self.position:
            # Entry signal (simplified)
            if self.data.close[0] > self.data.close[-1]:
                # Position size based on ATR
                stop_distance = self.p.risk_multiple * self.atr[0]
                risk_per_share = stop_distance
                position_size = (self.broker.getvalue() * self.p.risk_pct) / risk_per_share
                self.buy(size=position_size)
                self.stop_price = self.data.close[0] - stop_distance
        else:
            # ATR-based trailing stop
            if self.data.close[0] < self.stop_price:
                self.close()
ParamètrePar défautDescription
period14Période de recul de l'ATR