
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.
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 →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()| Parametro | Predefinito | Descrizione |
|---|---|---|
| period | 14 | Periodo di lookback ATR |