
Indicador de volatilidad que mide el rango promedio entre los precios altos y bajos durante un período. A diferencia de los indicadores direccionales, el ATR mide la magnitud de la volatilidad del mercado sin indicar la dirección.
Indicador de volatilidad que mide el rango promedio entre los precios altos y bajos durante un período. A diferencia de los indicadores direccionales, el ATR mide la magnitud de la volatilidad del mercado sin indicar la dirección.
El ATR es esencial para el dimensionamiento de las posiciones y la gestión de riesgos. En lugar de distancias de stop-loss fijas, los stops basados en el ATR se adaptan a la volatilidad actual: stops más amplios en mercados volátiles, stops más ajustados en mercados tranquilos. Esto evita salidas prematuras durante la volatilidad normal mientras protege contra reversiones genuinas.
Más información sobre 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()| Parámetro | Predeterminado | Descripción |
|---|---|---|
| period | 14 | Período retrospectivo del ATR |