
Индикатор волатильности, измеряющий средний диапазон между максимальной и минимальной ценами за период. В отличие от направленных индикаторов, ATR измеряет величину волатильности рынка, не указывая направление.
Индикатор волатильности, измеряющий средний диапазон между максимальной и минимальной ценами за период. В отличие от направленных индикаторов, ATR измеряет величину волатильности рынка, не указывая направление.
ATR необходим для расчета размера позиции и управления рисками. Вместо фиксированных уровней стоп-лосса стопы на основе ATR адаптируются к текущей волатильности: более широкие стопы на волатильных рынках и более узкие на спокойных. Это предотвращает преждевременный выход из сделки при нормальной волатильности и защищает от реальных разворотов.
Узнать больше о 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()| Параметр | По умолчанию | Описание |
|---|---|---|
| period | 14 | Период ретроспективы ATR |