Ini adalah strategi perdagangan kuantitatif tingkat tinggi yang didasarkan pada indikator yang relatif kuat (RSI) deviasi dan beberapa kombinasi garis rata. Strategi ini terutama digunakan untuk perdagangan garis pendek, menangkap potensi titik balik dengan mengidentifikasi deviasi antara RSI dan harga. Strategi ini menggabungkan RSI, berbagai jenis rata-rata bergerak, dan Brin-band, untuk memberikan pedagang dengan kerangka analisis teknis yang komprehensif.
Inti dari strategi ini adalah menggunakan deviasi RSI untuk mengidentifikasi potensi kondisi overbought dan oversold. Ini mendeteksi deviasi dengan membandingkan RSI dengan harga tinggi dan rendah, dan digabungkan dengan tingkat RSI untuk menentukan waktu masuk. Selain itu, strategi ini juga menggabungkan berbagai jenis garis rata-rata, seperti rata-rata bergerak sederhana (SMA), rata-rata bergerak indeks (EMA), rata-rata bergerak lurus (SMMA), dan lain-lain, untuk memberikan sinyal konfirmasi tren tambahan.
Perhitungan RSI: Perhitungan nilai RSI menggunakan siklus RSI yang dapat disesuaikan (default 60).
RSI Average: Aplikasi moving average untuk RSI, mendukung berbagai jenis rata-rata, termasuk SMA, EMA, SMMA, WMA, dan VWMA.
Meninggalkan tes:
Syarat masuk:
Manajemen transaksi:
Foto diambil dari:
Analisis Komprehensif Multi-Indikator: Kombinasi RSI, Moving Average, dan Brinks memberikan perspektif pasar yang komprehensif.
Fleksibilitas pengaturan parameter: memungkinkan pengguna untuk menyesuaikan parameter seperti panjang RSI, jenis garis rata-rata dan lain-lain sesuai dengan kondisi pasar yang berbeda.
Identifikasi deviasi: menangkap peluang potensial untuk berbalik dengan mengidentifikasi deviasi antara RSI dan harga.
Pengelolaan risiko: mekanisme built-in stop loss dan stop stop, membantu mengendalikan risiko.
Efek visualisasi: Intuisi menunjukkan sinyal perdagangan dan deviasi pada grafik.
Adaptif: dapat diterapkan pada berbagai jenis transaksi dan kerangka waktu.
Perdagangan otomatis: dapat dengan mudah diintegrasikan ke dalam sistem perdagangan otomatis.
Risiko sinyal palsu: Dalam pasar horizontal, mungkin terjadi terlalu banyak sinyal palsu yang menyimpang.
Lagging: RSI dan garis rata-rata adalah indikator yang tertinggal, yang dapat menyebabkan sedikit penundaan waktu masuk.
Terlalu banyak trading: Terlalu banyak trading dapat memicu sinyal di pasar yang bergejolak.
Sensitivitas parameter: kinerja strategi sangat tergantung pada pengaturan parameter, dan mungkin memerlukan optimasi yang berbeda untuk pasar yang berbeda.
Performa pasar tren: Di pasar tren yang kuat, strategi yang tidak sesuai dapat menyebabkan perdagangan berlawanan yang sering terjadi.
Risiko Stop Loss Terbatas: Menggunakan nilai tetap sebagai stop loss mungkin tidak cocok untuk semua kondisi pasar.
Masukkan filter tren: Tambahkan rata-rata bergerak jangka panjang atau indikator ADX untuk menghindari perdagangan berlawanan arah dalam tren yang kuat.
Stop loss dinamis: menggunakan ATR atau persentase volatilitas untuk mengatur stop loss dinamis untuk menyesuaikan dengan fluktuasi pasar yang berbeda
Analisis multi-frame: menggabungkan sinyal dari frame waktu yang lebih tinggi untuk mengkonfirmasi arah transaksi.
Menambahkan analisis volume transaksi: Mempertimbangkan indikator volume transaksi untuk meningkatkan keandalan sinyal.
Optimalkan waktu masuk: pertimbangkan untuk menggunakan pola perilaku harga atau bentuk grafik untuk masuk yang tepat.
Optimasi pembelajaran mesin: Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan pilihan parameter dan generasi sinyal.
Menambahkan kriteria penyaringan: Menambahkan indikator teknis tambahan atau faktor fundamental untuk memfilter sinyal perdagangan.
Strategi perdagangan kuantitatif canggih ini, yang didasarkan pada kombinasi RSI deviasi dan beberapa garis rata, memberikan framework analisis yang kuat dan fleksibel bagi pedagang. Dengan menggabungkan RSI deviasi, beberapa jenis garis rata, dan Brinks, strategi ini mampu menangkap potensi titik balik pasar, sekaligus memberikan sinyal konfirmasi tren.
Keunggulan utama dari strategi ini adalah kemampuannya yang komprehensif dan fleksibel, dapat beradaptasi dengan kondisi pasar yang berbeda. Namun, pengguna perlu memperhatikan risiko potensial seperti kemungkinan sinyal palsu dan overtrading. Dengan terus-menerus mengoptimalkan dan memperkenalkan alat analisis tambahan, strategi ini memiliki potensi untuk menjadi sistem perdagangan yang dapat diandalkan.
Kuncinya adalah untuk menyesuaikan parameter sesuai dengan varietas perdagangan dan kondisi pasar tertentu, dan untuk memverifikasi sinyal dalam kombinasi dengan metode analisis lainnya. Di samping itu, manajemen risiko yang ketat dan optimasi strategi yang berkelanjutan adalah faktor kunci untuk memastikan kesuksesan jangka panjang.
/*backtest
start: 2024-05-28 00:00:00
end: 2024-06-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Advanced Gold Scalping Strategy with RSI Divergence", overlay=false)
// Input parameters
rsiLengthInput = input.int(60, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(ohlc4, "Source", group="RSI Settings")
maTypeInput = input.string("SMMA (RMA)", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(3, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
showDivergence = input(true, title="Show Divergence", group="RSI Settings")
stopLoss = input.float(11, title="Stop Loss (pips)", group="Trade Settings")
takeProfit = input.float(33, title="Take Profit (pips)", group="Trade Settings")
// RSI and MA calculation
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"
// Divergence detection
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
plFound = na(ta.pivotlow(rsi, lookbackLeft, lookbackRight)) ? false : true
phFound = na(ta.pivothigh(rsi, lookbackLeft, lookbackRight)) ? false : true
_inRange(cond) =>
bars = ta.barssince(cond == true)
rangeLower <= bars and bars <= rangeUpper
// Bullish divergence
rsiHL = rsi[lookbackRight] > ta.valuewhen(plFound, rsi[lookbackRight], 1) and _inRange(plFound[1])
priceLL = low[lookbackRight] < ta.valuewhen(plFound, low[lookbackRight], 1)
bullishDivergence = priceLL and rsiHL and plFound
// Bearish divergence
rsiLH = rsi[lookbackRight] < ta.valuewhen(phFound, rsi[lookbackRight], 1) and _inRange(phFound[1])
priceHH = high[lookbackRight] > ta.valuewhen(phFound, high[lookbackRight], 1)
bearishDivergence = priceHH and rsiLH and phFound
// Entry conditions
longCondition = bullishDivergence and rsi < 40
shortCondition = bearishDivergence and rsi > 60
// Convert pips to price for Gold (assuming 1 pip = 0.1 for XAUUSD)
stopLossPrice = stopLoss * 0.1
takeProfitPrice = takeProfit * 0.1
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("TP/SL", "Long", stop=strategy.position_avg_price - stopLossPrice, limit=strategy.position_avg_price + takeProfitPrice)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("TP/SL", "Short", stop=strategy.position_avg_price + stopLossPrice, limit=strategy.position_avg_price - takeProfitPrice)
// Plotting
plot(rsi, "RSI", color=#7E57C2)
// plot(rsiMA, "RSI-based MA", color=color.yellow)
hline(60, "RSI Upper Band", color=#787B86)
// hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
hline(40, "RSI Lower Band", color=#787B86)
fill(hline(60), hline(40), color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
// Divergence visualization
plotshape(showDivergence and bullishDivergence ? rsi[lookbackRight] : na, offset=-lookbackRight, title="Bullish Divergence", text="Bull", style=shape.labelup, location=location.absolute, color=color.green, textcolor=color.white)
plotshape(showDivergence and bearishDivergence ? rsi[lookbackRight] : na, offset=-lookbackRight, title="Bearish Divergence", text="Bear", style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white)