Новая стратегия количественного трейдинга, основанная на индикаторе DMI для определения нижней и верхней границ рынка. В этой статье подробно рассматриваются принципы, преимущества и возможные риски этой стратегии.
Индекс ДМИ, известный как индекс среднего направленного движения, был разработан в 1970-х годах Уэллсом Уайлдером для оценки тенденций и интенсивности рынка. Индекс ДМИ состоит из трех линий:
Когда + DI на -DI, означает усиление тренда, можно подумать о том, чтобы сделать больше; когда -DI на + DI, означает усиление падения, можно подумать о том, чтобы сделать пустоту.
Основная логика этой стратегии заключается в следующем:
То есть, когда обратная DI линия значительно сильнее, чем положительная DI линия, можно определить, что текущая тенденция скоро изменится, и тогда можно уместно вмешаться и провести обратную операцию.
Для фильтрации ошибок в этой стратегии используется средняя линия DI, а параметры установлены на:
Частота торгового сигнала регулируется с помощью параметров средней линии.
Эта стратегия применяется в основном для торговли опционами на индекс NIFTY50, но также может использоваться для других видов. При конкретной торговле выбирайте опцион на выравнивание, установка на стоп-убыток составляет 20%, если убыток превышает 10%, то увеличивается, но если убыток расширяется до 20% от первоначального вложенного капитала, то прекращается.
В отличие от простой стратегии пересечения DI, эта стратегия использует среднелинейную фильтрацию показателей DI, что позволяет эффективно уменьшить whipsaw и уменьшить количество сделок, что снижает стоимость сделок и убытки от скольжения.
По сравнению с простой стратегией отслеживания тенденций, эта стратегия более точна в определении точек обратной тенденции и может своевременно захватить торговые возможности вблизи точек обратной тенденции.
Оптимизация параметров этой стратегии является простым и легким способом оптимизации результатов.
Данная стратегия дает только направление торговых сигналов, конкретные требования к стоп-лоску должны быть настроены в соответствии с личными предпочтениями в отношении риска.
DMI может генерировать большое количество ложных сигналов при сворачивании зоны, следует избегать использования этой стратегии на не трендовых рынках.
DI-кросс не может 100% прогнозировать переломный момент тренда, существует определенная хронологическая ошибка. Должен быть соответствующим образом объединен с другими показателями для проверки торговых сигналов.
Эта стратегия может эффективно идентифицировать возможности обратного тренда с помощью фильтрации с помощью равномерной линии DI. По сравнению с другими стратегиями для отслеживания тенденций, она обладает более сильными преимуществами для идентификации обратного тренда. В целом, параметры этой стратегии оптимизированы гибко и подходят для использования в качестве одного из модулей системы количественной торговли. При использовании следует обращать внимание на предотвращение ложных сигналов и надлежащим образом оценивать тенденции рынка.
/*backtest
start: 2023-09-05 00:00:00
end: 2023-09-12 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © email_analysts
// This code gives indication on the chart to go long based on DMI and exit based on RSI.
//Default value has been taken as 14 for DMI+ and 6 for RSI.
//@version=5
strategy(title="DMI Strategy", overlay=false)
lensig = input.int(11, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(11, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
//plot(adx, color=#F50057, title="ADX")
plot(plus, color=color.green, title="+DI")
plot(minus, color=color.red, title="-DI")
hlineup = hline(40, color=#787B86)
hlinelow = hline(10, color=#787B86)
buy = plus < 10 and minus > 40
if buy
strategy.entry('long', strategy.long)
sell = plus > 40 and minus < 10
if sell
strategy.entry('short', strategy.short)