Стратегия дивергенции направления импульса (англ. Momentum Direction Divergence Strategy) - один из методов, описанных Уильямом Блау в его книге "Моммент, направление и дивергенция". Стратегия фокусируется на трех ключевых аспектах: импульс, направление и дивергенция. Блау, который был инженером-электриком до того, как стать трейдером, тщательно исследует отношения между ценой и импульсом.
Стратегия планирует Ergotic CSI и его сглаженную линию для фильтрации шума.
Код начинается с определения функции fADX (Adaptive Direction Index), которая принимает параметр Len как период сглаживания. Функция рассчитывает RMA истинного диапазона (TR) в качестве знаменателя и RMA подъемного и нисходящего импульса в качестве числителя, затем делит их, чтобы получить соотношения, указывающие на относительную силу подъема и падения. Наконец, ADX получается путем объединения силы подъема и силы нисходящего.
Затем определяются параметры стратегии. r - это параметр сглаживания для ATR, Length - это длина ADX, BigPointValue - это большая точка, SmthLen - это длина сглаживания для CSI, SellZone и BuyZone - это зоны продажи и покупки, которые отвечают критериям. обратный указывает на то, следует ли обращать торговые сигналы.
Ключевая логика заключается в расчете CSI. Сначала вычисляются ATR и ADX. Затем рассчитывается коэффициент наказания K, включая в себя соображения о величине точки, ATR и ADX. Стандартизированный остаточный nRes объединяет информацию от ATR, ADX и цены закрытия. Наконец получается значение CSI и вычисляется его SMA.
Направление торговли определяется в зависимости от значения SMA CSI. Идите длинным, если выше BuyZone, идите коротким, если ниже SellZone.
Стратегия сочетает в себе преимущества индикатора импульса ATR и индикатора тренда ADX, учитывая как волатильность рынка, так и силу тренда, избегая ограничений использования ATR или ADX в одиночку.
Стандартные остаточные nRes включают информацию о ценах, обращая внимание не только на тенденцию импульса, но и на абсолютный уровень цен, который отличается от типичных осцилляторов, повышая эффективность стратегии.
Процесс сглаживания и определение зоны обеспечивают четкие сигналы для практической торговли.
Стратегия довольно чувствительна к параметрам, таким как периоды ATR и ADX, большие значения точек и т. Д., Которые могут повлиять на производительность.
Как недавно предложенный осциллятор, эффективность CSI нуждается в проверке на более разнообразных рынках.
Сама стратегия не имеет механизма стоп-лосса, просто напрямую длинный или короткий по сигналам CSI.
Испытайте комбинации параметров на разных рынках, чтобы найти относительно универсальные настройки.
Ввести механизм динамического периода ADX, регулирующий параметры ADX на основе состояния рынка.
Включите другие индикаторы осциллятора для определения входов и выходов, чтобы сделать стратегию более надежной.
Добавьте механизмы остановки для завершения стратегии.
Стратегия дивергенции направления импульса объединяет преимущества нескольких индикаторов, используя ценовые, импульсные, тенденционные измерения для разработки индикатора CSI для торговли.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/06/2018 // This is one of the techniques described by William Blau in his book // "Momentum, Direction and Divergence" (1995). If you like to learn more, // we advise you to read this book. His book focuses on three key aspects // of trading: momentum, direction and divergence. Blau, who was an electrical // engineer before becoming a trader, thoroughly examines the relationship between // price and momentum in step-by-step examples. From this grounding, he then looks // at the deficiencies in other oscillators and introduces some innovative techniques, // including a fresh twist on Stochastics. On directional issues, he analyzes the // intricacies of ADX and offers a unique approach to help define trending and // non-trending periods. // This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// fADX(Len) => up = change(high) down = -change(low) trur = rma(tr, Len) plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur) minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur) sum = plus + minus 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len) strategy(title="Ergodic CSI Backtest") r = input(32, minval=1) Length = input(1, minval=1) BigPointValue = input(1.0, minval=0.00001) SmthLen = input(5, minval=1) SellZone = input(0.004, minval=0.00001) BuyZone = input(0.024, minval=0.001) reverse = input(false, title="Trade reverse") hline(BuyZone, color=green, linestyle=line) hline(SellZone, color=red, linestyle=line) source = close K = 100 * (BigPointValue / sqrt(r) / (150 + 5)) xTrueRange = atr(1) xADX = fADX(Length) xADXR = (xADX + xADX[1]) * 0.5 nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0) xCSI = iff(close > 0, nRes / close, 0) xSMA_CSI = sma(xCSI, SmthLen) pos = iff(xSMA_CSI > BuyZone, 1, iff(xSMA_CSI <= SellZone, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(xCSI, color=green, title="Ergodic CSI") plot(xSMA_CSI, color=red, title="SigLin")