Ini adalah strategi perdagangan kuantitatif lanjutan berdasarkan perbezaan Indeks Kekuatan Relatif (RSI) dan gabungan pelbagai purata bergerak. Strategi ini terutamanya direka untuk perdagangan jangka pendek, bertujuan untuk menangkap titik pembalikan yang berpotensi dengan mengenal pasti perbezaan antara RSI dan tindakan harga. Ia menggabungkan RSI, pelbagai jenis purata bergerak, dan Bollinger Bands untuk menyediakan pedagang dengan kerangka analisis teknikal yang komprehensif.
Inti strategi ini terletak pada menggunakan perbezaan RSI untuk mengenal pasti keadaan overbought dan oversold yang berpotensi. Ia mengesan perbezaan dengan membandingkan tinggi dan rendah RSI dan harga, dan menggabungkan tahap RSI untuk menentukan titik masuk. Di samping itu, strategi ini menggabungkan pelbagai jenis purata bergerak, seperti Purata Bergerak Sederhana (SMA), Purata Bergerak Eksponensial (EMA), Purata Bergerak Lesu (SMMA), dan lain-lain, untuk memberikan isyarat pengesahan trend tambahan.
Pengiraan RSI: Menggunakan tempoh RSI yang boleh disesuaikan (default 60) untuk mengira nilai RSI.
RSI Moving Average: Menggunakan purata bergerak kepada RSI, menyokong pelbagai jenis MA termasuk SMA, EMA, SMMA, WMA, dan VWMA.
Pengesanan Perbezaan:
Syarat kemasukan:
Pengurusan Perdagangan:
Imej:
Analisis Multi-Indikator: Menggabungkan RSI, purata bergerak, dan Bollinger Bands untuk pandangan pasaran yang komprehensif.
Tetapan Parameter Fleksibel: Membolehkan pengguna menyesuaikan panjang RSI, jenis MA, dan parameter lain untuk keadaan pasaran yang berbeza.
Pengesanan Perbezaan: Mengambil peluang pembalikan yang berpotensi dengan mengenal pasti perbezaan antara RSI dan harga.
Pengurusan Risiko: Mekanisme stop loss dan mengambil keuntungan yang terbina dalam membantu mengawal risiko.
Perwakilan Visual: Intuitif memaparkan isyarat perdagangan dan perbezaan pada carta.
Kebolehsesuaian: Boleh digunakan untuk instrumen perdagangan dan jangka masa yang berbeza.
Potensi Automasi: Mudah disatukan ke dalam sistem perdagangan automatik.
Risiko isyarat palsu: Boleh menghasilkan isyarat perbezaan palsu yang berlebihan di pasaran yang berbeza.
Lag: RSI dan purata bergerak adalah penunjuk yang tertinggal, yang berpotensi membawa kepada entri yang sedikit tertunda.
Overtrading: Dalam pasaran yang sangat tidak menentu, strategi boleh mencetuskan terlalu banyak isyarat perdagangan.
Sensitiviti Parameter: Prestasi strategi sangat bergantung kepada tetapan parameter, yang mungkin memerlukan pengoptimuman yang berbeza untuk pasaran yang berbeza.
Prestasi Pasaran Trend: Strategi divergensi sering boleh berdagang menentang trend di pasaran trend yang kuat.
Risiko Stop Loss Tetap: Menggunakan bilangan titik tetap sebagai stop loss mungkin tidak sesuai untuk semua keadaan pasaran.
Memperkenalkan Penapis Trend: Tambahkan purata bergerak jangka panjang atau penunjuk ADX untuk mengelakkan dagangan yang bertentangan dengan trend dalam trend yang kuat.
Stop Loss Dinamik: Melaksanakan ATR atau stop loss dinamik berasaskan peratusan turun naik untuk menyesuaikan diri dengan turun naik pasaran yang berbeza.
Analisis Pelbagai Jangka Masa: Menggabungkan isyarat dari jangka masa yang lebih tinggi untuk mengesahkan arah perdagangan.
Integrasi Analisis Volume: Sertakan penunjuk jumlah untuk meningkatkan kebolehpercayaan isyarat.
Mengoptimumkan Waktu Masuk: Pertimbangkan untuk menggunakan corak tindakan harga atau pembentukan candlestick untuk kemasukan yang tepat.
Pengoptimuman Pembelajaran Mesin: Menggunakan algoritma pembelajaran mesin untuk mengoptimumkan pemilihan parameter dan penjanaan isyarat.
Syarat Penapisan Tambahan: Tambah penunjuk teknikal tambahan atau faktor asas untuk menapis isyarat perdagangan.
Strategi perdagangan kuantitatif canggih ini berdasarkan perbezaan RSI dan pelbagai kombinasi purata bergerak menyediakan pedagang dengan kerangka analisis yang kuat dan fleksibel. Dengan menggabungkan perbezaan RSI, pelbagai jenis purata bergerak, dan Bollinger Bands, strategi ini dapat menangkap titik pembalikan pasaran yang berpotensi sambil memberikan isyarat pengesahan trend.
Kelebihan utama strategi ini terletak pada kepelbagaian dan fleksibiliti, yang mampu menyesuaikan diri dengan keadaan pasaran yang berbeza. Walau bagaimanapun, pengguna perlu menyedari potensi risiko seperti isyarat palsu dan kemungkinan overtrading. Melalui pengoptimuman berterusan dan pengenalan alat analisis tambahan, strategi ini berpotensi menjadi sistem perdagangan yang boleh dipercayai.
Kuncinya adalah untuk menyesuaikan parameter mengikut instrumen dagangan tertentu dan keadaan pasaran, dan untuk mengesahkan isyarat bersama-sama dengan kaedah analisis lain.
/*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)