
RSI, EMA, DIVERGENCE, VOLUME, ATR
Это не очередная мелкая стратегия обратного обмена. С помощью RSI отклонения, структурного отклонения, обратной K-линии и подтверждения количества сделок с четырьмя техническими показателями, эта стратегия продвигает успех реверсивной торговли на новые высоты.
Основная логика прямого удара: при появлении отклоняющегося сигнала на ключевом уровне поддержки и сопротивления цены, несколько технических индикаторов должны сформировать резонанс, чтобы вызвать торговлю. Такой строгий механизм фильтрации эффективно фильтрует большое количество ложных сигналов, но ценой является снижение частоты торговли.
RSI отклонение является центральным оружием этой стратегии. С помощью 5 циклов опорных точек обнаружения, система автоматически идентифицирует отклонения, которые не синхронизируются с показателями RSI. Конкретные параметры: RSI циклов 14, отклонения от подтверждения цены, которые требуют 10 циклов.
Отклонение наблюдателя: цена создает низкую, но RSI не создает низкую, что указывает на истощение нисходящей динамики. Отклонение наблюдателя: цена создает высокую, но RSI не создает высокую, что указывает на слабость.
Ключевое преимущество: отклонение от сигнала обычно опережает обратную сторону цены на 2-5 циклов, предоставляя трейдерам ценные возможности для раннего расположения.
50⁄200 двойная система EMA создает четкую рамку тренда. Структурный сигнал отказа требует, чтобы цена достигла ключевой средней линии, но не смогла эффективно ее преодолеть, а затем быстро отскочила или отступила. Такой “ложный прорыв” часто является предвестником сильного разворота.
Строение наблюдателя: цена снижается до 200 ЭМА, но закрывается и выходит выше 50 ЭМА. Строение наблюдателя: цена поднимается до 200 ЭМА, но закрывается и падает ниже 50 ЭМА. Такая конструкция обеспечивает согласованность направления торговли с основными тенденциями.
Эффекты боевых действий: в трендовых рынках, выигрыш структурного отклонения сигналов достигает 65-70%, намного превышает 50%-ную базовую линию случайного входа.
Стратегия включает в себя две классические модели обратных K-линий: поглощающие формы и варианты подвесных/подвесных линий. Эти формы интуитивно отражают мгновенные преобразования многомерной силы, которые являются надежными предварительными показателями краткосрочного обратного хода.
Обратный взгляд: текущая K-линия полностью поглощает предыдущую тень, или появляется длинная нисходящая линия, и объект находится в верхней части. Обратный взгляд: текущая K-линия полностью поглощает предыдущую солнечную линию, или появляется длинная нисходящая линия, и объект находится в нижней части.
Ключевые параметры: длина объекта должна быть более чем в 2 раза больше, чем длина теневой линии, чтобы обеспечить надежность обратного сигнала. Такая строгая фильтрация позволяет избежать помех от неясных форм, таких как крестовые звезды.
Количество сделок является окончательным показателем подлинности ценового поведения. Стратегия требует, чтобы обратный сигнал сопровождался усилением среднего количества сделок в 1,5 раза, чтобы обеспечить достаточное количество средств для стимулирования ценового разворота.
Логика объема сделок: поперечный оборот требует удельного солнечного луча, поперечный оборот требует удельного отрицательного луча. 20-циклическая средняя линия объема сделок используется в качестве ориентира, а текущий объем сделок должен превышать 150% от ориентира, чтобы запустить сигнал.
Реальный смысл: бесчисленные перевороты часто являются ложным сигналом, в то время как усилительные перевороты имеют значительно большую продолжительность. Статистика показывает, что средний продолжительный цикл усилительных переворотов на 40% длиннее, чем у бесчисленных переворотов.
Стоп-убытки устанавливаются в 1,2-кратном ATR, стоп-стоп - в 2,5-кратном ATR, соотношение риска к прибыли достигает 1,2:08. Такой механизм динамической корректировки способен адаптироваться к волатильности различных рынков, избегая проблемы с частотой возникновения стоп-убытков с фиксированными точками во время высокой волатильности.
Цикл ATR устанавливается на 14, балансирует чувствительность и стабильность. В высоко-волатильных рынках стоп-дистанция автоматически расширяется, уменьшая шумовые помехи; в низко-волатильных условиях стоп-дестанция ужесточается, повышая эффективность капитала.
Важное напоминание: существует риск непрерывного убытка, особенно в условиях волатильности рынка. Рекомендуется использовать фильтр тренда в сочетании с ним и избегать частых сделок во время поперечной сборки.
Настройка минимального количества резонансов на 3 является оптимальным параметром, проверенным с помощью большого количества обратных испытаний. Настройка на 2 увеличивает частоту торговли, но снижает вероятность выигрыша, настройка на 4 повышает точность, но значительно снижает возможности торговли.
Параметры для различных рыночных особенностей:
Исторические отзывы показывают, что эта стратегия отлично работает на трендовых рынках, но инвесторы должны понимать, что прошлые результаты не означают будущую прибыль, а строгое управление рисками и управлением капиталом является ключом к успеху.
/*backtest
start: 2026-01-07 15:30:00
end: 2026-03-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © FundedRelay
//@version=6
strategy("Quad Confluence Reversal v13 – Funded Relay FIXED", overlay=true, margin_long=100, margin_short=100, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// ────────────────────────────────────────────────
// INPUTS
// ────────────────────────────────────────────────
rsiLen = input.int(14, "RSI Length", minval=5)
volMult = input.float(1.5, "Volume Surge ×", minval=1.0, step=0.1)
minConfl = input.int(3, "Min Confluences (2-4)", minval=2, maxval=4)
useDiv = input.bool(true, "Use Divergence")
useStr = input.bool(true, "Use Structure Rejection")
useCdl = input.bool(true, "Use Reversal Candle")
useVol = input.bool(true, "Use Volume Confirmation")
showLbl = input.bool(true, "Show Signal Labels")
slMult = input.float(1.2, "SL ATR ×", step=0.1)
tpMult = input.float(2.5, "TP ATR ×", step=0.1)
// ────────────────────────────────────────────────
// INDICATORS
// ────────────────────────────────────────────────
rsi = ta.rsi(close, rsiLen)
emaFast = ta.ema(close, 50)
emaSlow = ta.ema(close, 200)
volAvg = ta.sma(volume, 20)
atrVal = ta.atr(14)
// ────────────────────────────────────────────────
// CONFLUENCE CONDITIONS
// ────────────────────────────────────────────────
bool divBull = false
bool divBear = false
if useDiv
float pLowPrice = ta.pivotlow(low, 5, 5)
float pLowRsi = ta.pivotlow(rsi, 5, 5)
float pHighPrice = ta.pivothigh(high, 5, 5)
float pHighRsi = ta.pivothigh(rsi, 5, 5)
if not na(pLowPrice) and not na(pLowRsi)
divBull := low < pLowPrice[10] and rsi > pLowRsi[10]
if not na(pHighPrice) and not na(pHighRsi)
divBear := high > pHighPrice[10] and rsi < pHighRsi[10]
bool strBull = close > emaSlow and low <= emaSlow and close > emaFast
bool strBear = close < emaSlow and high >= emaSlow and close < emaFast
bool cdlBull = (close > open and open <= low[1] and close >= high[1]) or
(low < low[1] and close > open and (close - open) > (high - close)*2)
bool cdlBear = (close < open and open >= high[1] and close <= low[1]) or
(high > high[1] and close < open and (open - close) > (close - low)*2)
bool volBull = volume > volAvg * volMult and close > open
bool volBear = volume > volAvg * volMult and close < open
// ────────────────────────────────────────────────
// CONFLUENCE COUNTERS – BLOQUES INDENTADOS (esto elimina el error)
// ────────────────────────────────────────────────
int conflBull = 0
if useDiv
if divBull
conflBull += 1
if useStr
if strBull
conflBull += 1
if useCdl
if cdlBull
conflBull += 1
if useVol
if volBull
conflBull += 1
int conflBear = 0
if useDiv
if divBear
conflBear += 1
if useStr
if strBear
conflBear += 1
if useCdl
if cdlBear
conflBear += 1
if useVol
if volBear
conflBear += 1
bool goLong = conflBull >= minConfl
bool goShort = conflBear >= minConfl
// ────────────────────────────────────────────────
// ENTRIES & EXITS
// ────────────────────────────────────────────────
if goLong
strategy.entry("Long 🟢", strategy.long)
if goShort
strategy.entry("Short 🔴", strategy.short)
strategy.exit("Exit Long", from_entry = "Long 🟢", stop = close - atrVal * slMult, limit = close + atrVal * tpMult)
strategy.exit("Exit Short", from_entry = "Short 🔴", stop = close + atrVal * slMult, limit = close - atrVal * tpMult)
// ────────────────────────────────────────────────
// PLOTS & VISUALS
// ────────────────────────────────────────────────
plot(emaFast, "EMA 50", color.orange, linewidth=1)
plot(emaSlow, "EMA 200", color.purple, linewidth=2)
plotshape(goLong, title="Long Signal", style=shape.triangleup, location=location.belowbar, color=color.new(#00FF41, 0), size=size.small, text="🟢📈")
plotshape(goShort, title="Short Signal", style=shape.triangledown, location=location.abovebar, color=color.new(#FF3366, 0), size=size.small, text="🔴📉")
if showLbl and goLong
label.new(bar_index, low, "🟢 LONG\nConfs: " + str.tostring(conflBull) + "/4", color=color.new(#00FF41, 40), textcolor=color.black, style=label.style_label_up, size=size.normal)
if showLbl and goShort
label.new(bar_index, high, "🔴 SHORT\nConfs: " + str.tostring(conflBear) + "/4", color=color.new(#FF3366, 40), textcolor=color.black, style=label.style_label_down, size=size.normal)
// ────────────────────────────────────────────────
// ALERTS
// ────────────────────────────────────────────────
alertcondition(goLong, title="🟢 LONG ATTACK", message="LONG – {{conflBull}}/4 – Vol Surge: {{volume > volAvg * volMult ? 'YES 🔥' : 'NO'}}")
alertcondition(goShort, title="🔴 SHORT ATTACK", message="SHORT – {{conflBear}}/4 – Vol Surge: {{volume > volAvg * volMult ? 'YES 🔥' : 'NO'}}")