StratCraft
Guida agli indicatori Backtrader

Backtrader ATR Position Sizing Strategy

Indicatore di volatilità che misura l'escursione media tra i prezzi massimi e minimi in un periodo. A differenza degli indicatori direzionali, l'ATR misura l'entità della volatilità del mercato senza indicare la direzione.

bt.indicators.ATRRisk Management Strategies

Indicatore di volatilità che misura l'escursione media tra i prezzi massimi e minimi in un periodo. A differenza degli indicatori direzionali, l'ATR misura l'entità della volatilità del mercato senza indicare la direzione.

L'ATR è essenziale per il dimensionamento delle posizioni e la gestione del rischio. Invece di distanze di stop-loss fisse, gli stop basati sull'ATR si adattano alla volatilità attuale: stop più ampi nei mercati volatili, stop più stretti nei mercati calmi. Ciò previene uscite premature durante la normale volatilità, proteggendo al contempo dalle inversioni reali.

Scopri di più su 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()
ParametroPredefinitoDescrizione
period14Periodo di lookback ATR