Средний индекс направленности
Average Directional Index (ADX) — индикатор технического анализа, разработанный Дж. Уэллсом Уайлдером-младшим в 1978 году. Он используется для количественной оценки силы тренда на финансовом рынке, независимо от направления. ADX является частью системы Directional Movement System и обычно отображается одной линией, помогая отличать сильные и слабые тренды.
Компоненты ADX
ADX рассчитывается на основе скользящего среднего расширения ценового диапазона. Система также включает два других индикатора:
- Положительный индекс направленного движения (+DI): измеряет наличие и силу восходящего движения.
- Отрицательный индекс направленного движения (-DI): измеряет наличие и силу нисходящего движения.
Вместе ADX, +DI и -DI дают целостную картину рыночного тренда и его силы.
Расчет ADX
- Рассчитать True Range (TR): TR для каждого периода — максимальное из:
- текущий High минус текущий Low
- абсолютное значение текущего High минус предыдущий Close
- абсолютное значение текущего Low минус предыдущий Close
- Рассчитать направленное движение (+DM и -DM):
- +DM = текущий High минус предыдущий High, если это значение больше, чем текущий Low минус предыдущий Low. Иначе +DM = 0.
- -DM = предыдущий Low минус текущий Low, если это значение больше, чем текущий High минус предыдущий High. Иначе -DM = 0.
-
Сгладить TR, +DM и -DM обычно за 14 периодов.
-
Рассчитать +DI и -DI: разделить сглаженные +DM и -DM на сглаженный TR.
- Рассчитать Directional Movement Index (DX):
- DX = ABS(+DI - -DI) / (+DI + -DI) * 100
- Рассчитать ADX: сгладить DX, обычно 14-периодной скользящей средней.
Интерпретация ADX
- ADX выше 25 обычно указывает на сильный тренд.
- ADX ниже 20 сигнализирует о слабом тренде или боковом рынке.
- ADX помогает избегать ложных сигналов, подтверждая силу тренда.
Применение в алгоритмической торговле
В алгоритмической торговле ADX часто используется в стратегиях:
- Следование тренду: алгоритмы входят или выходят из сделок в зависимости от силы тренда по ADX.
- Фильтры волатильности: ADX может служить фильтром, позволяя входить только при достаточном движении.
- Управление рисками: ADX помогает корректировать размер позиции в зависимости от силы тренда.
Ограничения ADX
Хотя ADX полезен, у него есть ограничения:
- Запаздывающий индикатор: как и многие трендовые индикаторы, ADX медленно реагирует на быстрые изменения рынка.
- Не показывает направление: ADX измеряет силу тренда, но не его направление — для этого нужны +DI и -DI или другие индикаторы.
- Сложный расчет: многошаговый расчет без ПО может быть сложным.
Реализация в торговых алгоритмах
Пример на Python
Ниже — упрощенная реализация расчета ADX на Python с использованием pandas:
import pandas as pd
def calculate_adx(data, period=14):
# Calculate True Range (TR)
data['ATR'] = data['High'] - data['Low']
data['ATR_1'] = abs(data['High'] - data['Close'].shift(1))
data['ATR_2'] = abs(data['Low'] - data['Close'].shift(1))
data['TrueRange'] = data[['ATR', 'ATR_1', 'ATR_2']].max(axis=1)
# Calculate +DM and -DM
data['+DM'] = data['High'].diff()
data['-DM'] = data['Low'].diff()
data['+DM'] = data['+DM'].apply(lambda x: x if x > 0 else 0)
data['-DM'] = data['-DM'].apply(lambda x: abs(x) if x < 0 else 0)
# Smooth the True Range and Directional Movement
data['smoothed_TR'] = data['TrueRange'].rolling(window=period).mean()
data['smoothed_+DM'] = data['+DM'].rolling(window=period).mean()
data['smoothed_-DM'] = data['-DM'].rolling(window=period).mean()
# Calculate +DI and -DI
data['+DI'] = 100 * (data['smoothed_+DM'] / data['smoothed_TR'])
data['-DI'] = 100 * (data['smoothed_-DM'] / data['smoothed_TR'])
# Calculate DX
data['DX'] = (abs(data['+DI'] - data['-DI']) / (data['+DI'] + data['-DI'])) * 100
# Calculate ADX
data['ADX'] = data['DX'].rolling(window=period).mean()
return data['ADX']
# Example Data
data = pd.DataFrame{
'High': [1.20, 1.25, 1.30, 1.35, 1.40],
'Low': [1.10, 1.15, 1.18, 1.20, 1.25],
'Close': [1.15, 1.20, 1.25, 1.32, 1.35]
})
adx_values = calculate_adx(data)
print(adx_values)
Популярные инструменты и платформы с поддержкой ADX
Несколько платформ поддерживают индикатор ADX. Примеры:
- MetaTrader: одна из самых популярных платформ со встроенными индикаторами ADX.
- TradeStation: комплексная платформа с поддержкой скриптов индикаторов, включая ADX.
- TradingView: онлайн-платформа с мощными графиками и библиотекой индикаторов, включая ADX.
Каждая из этих платформ предлагает настройки, позволяющие адаптировать ADX под стратегию.
MetaTrader: MetaTrader
TradeStation: TradeStation
TradingView: TradingView
В заключение, Average Directional Index (ADX) — важный инструмент как для ручных, так и для алгоритмических трейдеров. Он дает количественную оценку силы тренда и помогает принимать решения по входам и выходам. При правильном использовании ADX может существенно повысить эффективность стратегии.