
RSI, EMA, DIVERGENCE, VOLUME, ATR
Ini bukan satu lagi strategi pembalikan yang biasa-biasa sahaja. Dengan empat petanda teknikal yang disahkan oleh RSI yang beresonansi, penolakan struktur, pembalikan K-line, dan jumlah transaksi, strategi ini akan mendorong kejayaan perdagangan pembalikan ke tahap yang baru. Data retrospeksi menunjukkan bahawa kemungkinan pembalikan adalah jauh lebih tinggi daripada strategi penunjuk tunggal apabila sekurang-kurangnya 3 petanda teknikal memberi isyarat pada masa yang sama.
Logik teras yang langsung menyerang: harga perlu membentuk resonansi untuk mencetuskan perdagangan apabila terdapat isyarat penolakan pada tahap rintangan sokongan utama. Mekanisme penapisan yang ketat ini menapis banyak isyarat palsu dengan berkesan, tetapi kosnya adalah penurunan frekuensi perdagangan.
RSI deviasi adalah senjata utama strategi tersebut. Melalui pengesanan titik pusat 5 kitaran, sistem secara automatik mengenal pasti fenomena deviasi harga tinggi / rendah yang tidak selaras dengan indikator RSI.
Pemandang berpatah balik: harga berinovasi rendah tetapi RSI tidak berinovasi rendah, menunjukkan kegagalan tenaga turun. Pemandang berpatah balik: harga berinovasi tinggi tetapi RSI tidak berinovasi tinggi, menunjukkan kekurangan.
Kelebihan Utama: Menyingkirkan isyarat biasanya mendahului harga berbalik 2-5 kitaran, memberikan peluang penempatan awal yang berharga kepada peniaga.
Sistem 50⁄200 EMA ganda membina kerangka trend yang jelas. Struktur menolak isyarat yang meminta harga menyentuh garis purata penting tetapi gagal untuk memecahkannya dengan berkesan, diikuti dengan rebound atau penurunan yang cepat. “Penyusutan palsu” seperti ini sering menjadi petanda perubahan yang kuat.
Struktur penjaga: harga menghampiri 200 EMA tetapi harga penutupan kembali berdiri, dan lebih tinggi daripada 50 EMA. Struktur penjaga: harga menaiki 200 EMA tetapi harga penutupan turun, dan lebih rendah daripada 50 EMA. Reka bentuk ini memastikan arah perdagangan konsisten dengan trend utama.
Kesan pertempuran sebenar: Dalam pasaran yang sedang tren, struktur menolak isyarat dengan kadar kemenangan 65-70%, jauh melebihi garis asas 50% untuk masuk secara rawak.
Strategi ini mempunyai dua model K-line yang berbalik klasik: bentuk menenggelamkan dan varian tali pinggang / tali penggantungan. Mereka mencerminkan secara intuitif penukaran seketika kekuatan udara dan merupakan penunjuk awal yang boleh dipercayai untuk pembalikan jangka pendek.
Pembaharuan: entiti K-line semasa menelan sepenuhnya satu cincin yang terdahulu, atau muncul garis bawah panjang dan entiti terletak di bahagian atas. Pembaharuan: entiti K-line semasa menelan sepenuhnya satu cincin yang terdahulu, atau muncul garis atas panjang dan entiti terletak di bahagian bawah.
Parameter utama: Panjang objek mestilah lebih dari 2 kali panjang garis bayangan untuk memastikan kebolehpercayaan isyarat pembalikan. Penyaringan ketat ini mengelakkan gangguan bentuk samar seperti bintang salib.
Jumlah transaksi adalah penunjuk akhir untuk mengesahkan keaslian tindakan harga. Strategi memerlukan isyarat pembalikan disertai dengan peningkatan sebanyak 1.5 kali ganda jumlah transaksi rata-rata, untuk memastikan terdapat cukup dana untuk mendorong pembalikan harga.
Logik kuantiti transaksi: pembalikan bullish memerlukan pembiayaan solar, pembiayaan bearish memerlukan pembiayaan negatif. Garis purata kuantiti transaksi 20 kitaran sebagai asas, kuantiti transaksi semasa mesti melebihi 150% daripada asas untuk mencetuskan isyarat.
Makna dalam pertempuran: Inversion tanpa kuantiti sering menjadi isyarat palsu, dan kesinambungan inversion amplitudo jelas lebih kuat. Statistik menunjukkan bahawa kitaran berterusan purata isyarat inversion amplitudo lebih dari 40% daripada inversion tanpa kuantiti.
Tetapan stop loss menggunakan 1.2 kali ATR, tetapan stop loss ialah 2.5 kali ATR, nisbah risiko-keuntungan mencapai 1: 2.08. Mekanisme penyesuaian dinamik ini dapat menyesuaikan diri dengan ciri-ciri turun naik di pasaran yang berbeza, mengelakkan masalah yang sering dipicu oleh stop loss nombor tetap semasa turun naik yang tinggi.
Kitaran ATR ditetapkan pada 14, menyeimbangkan sensitiviti dan kestabilan. Dalam pasaran yang bergelombang tinggi, jarak stop loss secara automatik berkembang, mengurangkan gangguan bunyi; dalam persekitaran yang bergelombang rendah, stop loss mengetatkan, meningkatkan kecekapan dana.
Amaran penting: Strategi ini mempunyai risiko kerugian berturut-turut, terutama dalam pasaran yang bergolak. Ia disyorkan untuk menggunakan penapis trend dan mengelakkan perdagangan yang kerap semasa penyusunan di sebelah kiri.
Tetapan bilangan resonansi minimum 3 adalah parameter optimum yang disahkan oleh banyak ujian ulang. Tetapan 2 akan meningkatkan frekuensi perdagangan tetapi mengurangkan peluang kemenangan, dan tetapan 4 akan meningkatkan ketepatan tetapi mengurangkan peluang perdagangan.
Penyesuaian parameter untuk ciri-ciri pasaran yang berbeza:
Sejarah menunjukkan bahawa strategi ini berfungsi dengan baik di pasaran yang sedang tren, tetapi pelabur perlu menyedari bahawa prestasi masa lalu tidak mewakili pendapatan masa depan, dan pengurusan risiko dan pengurusan dana yang ketat adalah kunci kejayaan.
/*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'}}")