
RSI, EMA, DIVERGENCE, VOLUME, ATR
Ini bukan strategi reversal yang biasa-biasa saja. Strategi ini mendorong tingkat keberhasilan perdagangan reversal ke tingkat yang baru. Strategi reversal secara signifikan lebih tinggi daripada strategi indikator tunggal ketika setidaknya 3 indikator teknis mengirimkan sinyal secara bersamaan.
Logika inti langsung menyerang: harga harus membentuk resonansi untuk memicu perdagangan ketika sinyal penolakan muncul di titik-titik resistensi dukungan penting. Mekanisme penyaringan yang ketat ini secara efektif memfilter sejumlah besar sinyal palsu, tetapi dengan harga yang lebih rendah dari frekuensi perdagangan.
RSI deviasi adalah senjata inti dari strategi tersebut. Melalui deteksi 5 siklus pivot point, sistem secara otomatis mengidentifikasi fenomena deviasi harga tinggi / rendah yang tidak selaras dengan indikator RSI. Pengaturan parameter spesifik: RSI siklus 14, deviasi dari harga yang dikonfirmasi membutuhkan 10 siklus.
Pengamat deviasi: harga inovasi rendah tetapi RSI tidak inovasi rendah, menunjukkan penurunan mobilitas kelelahan. Pengamat deviasi: harga inovasi tinggi tetapi RSI tidak inovasi tinggi, menyiratkan kekurangan.
Keuntungan utama: deviasi dari sinyal biasanya memimpin 2-5 siklus reversal harga, memberikan kesempatan yang berharga bagi pedagang untuk penempatan lebih awal.
Sistem 50⁄200 EMA ganda membangun kerangka tren yang jelas. Struktur menolak sinyal yang meminta harga untuk menyentuh garis rata-rata kunci tetapi gagal untuk berhasil menerobos, diikuti dengan bouncing atau mundur dengan cepat. “Penembusan palsu” ini sering merupakan pertanda dari pembalikan yang kuat.
Struktur bullish: harga mendekati 200 EMA tetapi harga closeout kembali naik dan berada di atas 50 EMA. Struktur bearish: harga menabrak 200 EMA tetapi harga closeout turun dan berada di bawah 50 EMA. Desain ini memastikan konsistensi arah perdagangan dengan tren utama.
Efek pertempuran nyata: Dalam pasar tren, struktur menolak sinyal dengan tingkat kemenangan 65-70%, jauh lebih tinggi dari 50 basis% untuk masuk acak.
Strategi ini memiliki dua model K-line reversal klasik: formasi penetrasi dan varian tali/gantung. Mereka secara intuitif mencerminkan konversi momentum dari kekuatan udara dan merupakan indikator awal yang dapat diandalkan untuk pembalikan jangka pendek.
Pembalasan: Entitas garis K saat ini benar-benar menelan satu garis negatif sebelumnya, atau muncul garis bawah yang panjang dan entitas berada di bagian atas. Pembalasan: Entitas garis K saat ini benar-benar menelan satu garis positif sebelumnya, atau muncul garis atas yang panjang dan entitas berada di bagian bawah.
Parameter kunci: panjang entitas harus lebih dari 2 kali panjang garis bayangan, untuk memastikan keandalan sinyal pembalikan. Penyaringan ketat ini menghindari gangguan dari bentuk samar seperti bintang salib.
Volume transaksi adalah indikator akhir untuk memverifikasi keaslian tindakan harga. Strategi ini memerlukan sinyal pembalikan yang disertai dengan amplifikasi 1,5 kali lipat dari volume transaksi rata-rata, untuk memastikan ada cukup dana untuk mendorong harga berbalik.
Logika volume transaksi: berbalik naik membutuhkan cahaya matahari, berbalik turun membutuhkan cahaya matahari. 20 siklus volume transaksi rata-rata sebagai acuan, volume transaksi saat ini harus lebih dari 150% dari acuan untuk memicu sinyal.
Arti nyata: Inversion tak terhitung seringkali merupakan sinyal palsu, sedangkan durasi inversion amplitudo jelas lebih kuat. Statistik menunjukkan bahwa siklus durasi rata-rata sinyal inversion amplitudo lebih dari 40% lebih lama daripada inversion tak terhitung.
Stop loss diatur dengan 1.2x ATR, stop loss diatur dengan 2.5x ATR, rasio risiko / keuntungan mencapai 1: 2.08. mekanisme penyesuaian dinamis ini dapat beradaptasi dengan karakteristik fluktuasi pasar yang berbeda, menghindari masalah stop loss dengan jumlah tetap yang sering dipicu selama fluktuasi tinggi.
Siklus ATR diatur menjadi 14, menyeimbangkan sensitivitas dan stabilitas. Dalam pasar yang berfluktuasi tinggi, jarak stop loss secara otomatis diperluas, mengurangi gangguan suara; Dalam lingkungan yang berfluktuasi rendah, stop loss diperketat, meningkatkan efisiensi dana.
Peringatan penting: Strategi ini memiliki risiko kerugian berturut-turut, terutama dalam pasar yang bergoyang. Disarankan untuk menggunakan filter tren dan menghindari perdagangan yang sering terjadi selama pengumpulan horizontal.
Setelan jumlah resonansi minimum 3 adalah parameter optimal yang telah diverifikasi dengan banyak pengulangan. Setelan 2 akan meningkatkan frekuensi perdagangan tetapi mengurangi tingkat kemenangan, dan setelan 4 akan meningkatkan akurasi tetapi mengurangi peluang perdagangan secara signifikan.
Pengaturan parameter untuk karakteristik pasar yang berbeda:
Retrospeksi historis menunjukkan bahwa strategi ini bekerja dengan baik di pasar tren, tetapi investor perlu menyadari bahwa kinerja masa lalu tidak mewakili keuntungan masa depan, dan manajemen risiko dan pengelolaan dana yang ketat adalah kunci keberhasilan.
/*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'}}")