
Strategi RSI ganda adalah strategi perdagangan kuantitatif yang canggih yang menggabungkan dua kaedah perdagangan klasik RSI deviasi dan RSI silang. Strategi ini bertujuan untuk menangkap titik jual beli yang lebih dipercayai di pasaran dengan memantau isyarat deviasi dan silang RSI secara serentak. Idea utama strategi ini adalah bahawa isyarat perdagangan hanya akan dicetuskan apabila RSI deviasi dan RSI silang muncul pada masa yang sama, mekanisme pengesahan ganda ini membantu meningkatkan ketepatan dan kebolehpercayaan perdagangan.
RSI berpaling dari:
RSI silang:
Penjanaan isyarat:
Tetapan parameter:
Kebolehpercayaan yang tinggi: Dengan menggabungkan RSI deviate dan cross, ia meningkatkan kebolehpercayaan isyarat perdagangan dan mengurangkan risiko isyarat palsu.
Trend capture: titik perubahan yang dapat menangkap trend pasaran dengan berkesan, sesuai untuk perdagangan jangka menengah dan panjang.
Fleksibiliti: parameter utama strategi boleh disesuaikan untuk menyesuaikan diri dengan keadaan pasaran dan jenis perdagangan yang berbeza.
Kawalan risiko: Kawalan yang berkesan terhadap risiko perdagangan melalui mekanisme pengesahan dua kali yang ketat.
Sokongan visual: Strategi menyediakan tanda-tanda carta yang jelas untuk memudahkan peniaga memahami keadaan pasaran secara langsung.
Keterlambatan: Anda mungkin terlepas beberapa peringkat awal yang cepat kerana perlu dua kali pengesahan.
Terlalu bergantung pada RSI: Dalam keadaan pasaran tertentu, satu petunjuk mungkin tidak dapat mencerminkan keadaan pasaran sepenuhnya.
Sensitiviti parameter: Tetapan parameter yang berbeza boleh menyebabkan hasil transaksi yang sangat berbeza dan perlu dioptimumkan dengan teliti.
Risiko isyarat palsu: Walaupun mekanisme pengesahan dua kali mengurangkan risiko isyarat palsu, ia masih boleh berlaku dalam pasaran yang sangat bergolak.
Kekurangan mekanisme hentikan kerugian: Strategi itu sendiri tidak mempunyai mekanisme hentikan kerugian terbina dalam, yang memerlukan tetapan tambahan oleh peniaga.
Gabungan pelbagai petunjuk: memperkenalkan petunjuk teknikal lain (seperti MACD, Brinband) untuk disahkan silang, meningkatkan kebolehpercayaan isyarat lebih lanjut.
Parameter penyesuaian diri: RSI menyesuaikan kitaran dan penurunan mengikut pergerakan turun naik pasaran untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Menyertai mekanisme hentian kerugian: reka bentuk strategi hentian berdasarkan ATR atau peratusan tetap untuk mengawal risiko perdagangan tunggal.
Penapisan masa: Tambah sekatan tetingkap masa perdagangan untuk mengelakkan perdagangan pada masa yang tidak menguntungkan.
Penapisan kadar turun naik: Menekan isyarat perdagangan dalam persekitaran turun naik yang rendah, mengurangkan risiko penembusan palsu.
Penggabungan kuantiti dan harga: memperkenalkan analisis kuantiti untuk meningkatkan kebolehpercayaan isyarat.
Pengoptimuman Pembelajaran Mesin: Mengoptimumkan pilihan parameter menggunakan algoritma pembelajaran mesin untuk meningkatkan kebolehpasaran strategi.
Strategi RSI berganda, dengan menggabungkan isyarat RSI dan isyarat silang, menghasilkan sistem perdagangan yang kuat dan fleksibel. Ia bukan sahaja dapat menangkap titik-titik perubahan penting dalam trend pasaran dengan berkesan, tetapi juga meningkatkan kebolehpercayaan isyarat perdagangan dengan mekanisme pengesahan berganda. Walaupun terdapat risiko tertentu dalam strategi, seperti keterbelakangan dan kepekaan parameter, masalah-masalah ini dapat dikurangkan dengan baik melalui pengoptimuman dan pengurusan risiko yang wajar.
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Combined RSI Strategies", overlay=true)
// Input parameters for the first strategy (RSI Divergences)
len = input(14, minval=1, title="RSI Length")
ob = input(defval=70, title="Overbought", type=input.integer, minval=0, maxval=100)
os = input(defval=30, title="Oversold", type=input.integer, minval=0, maxval=100)
xbars = input(defval=90, title="Div lookback period (bars)?", type=input.integer, minval=1)
// Input parameters for the second strategy (RSI Crossover)
rsiBuyThreshold = input(30, title="RSI Buy Threshold")
rsiSellThreshold = input(70, title="RSI Sell Threshold")
// RSI calculation
rsi = rsi(close, len)
// Calculate highest and lowest bars for divergences
hb = abs(highestbars(rsi, xbars))
lb = abs(lowestbars(rsi, xbars))
// Initialize variables for divergences
var float max = na
var float max_rsi = na
var float min = na
var float min_rsi = na
var bool pivoth = na
var bool pivotl = na
var bool divbear = na
var bool divbull = na
// Update max and min values for divergences
max := hb == 0 ? close : na(max[1]) ? close : max[1]
max_rsi := hb == 0 ? rsi : na(max_rsi[1]) ? rsi : max_rsi[1]
min := lb == 0 ? close : na(min[1]) ? close : min[1]
min_rsi := lb == 0 ? rsi : na(min_rsi[1]) ? rsi : min_rsi[1]
// Compare current bar's high/low with max/min values for divergences
if close > max
max := close
if rsi > max_rsi
max_rsi := rsi
if close < min
min := close
if rsi < min_rsi
min_rsi := rsi
// Detect pivot points for divergences
pivoth := (max_rsi == max_rsi[2]) and (max_rsi[2] != max_rsi[3]) ? true : na
pivotl := (min_rsi == min_rsi[2]) and (min_rsi[2] != min_rsi[3]) ? true : na
// Detect divergences
if (max[1] > max[2]) and (rsi[1] < max_rsi) and (rsi <= rsi[1])
divbear := true
if (min[1] < min[2]) and (rsi[1] > min_rsi) and (rsi >= rsi[1])
divbull := true
// Conditions for RSI crossovers
isRSICrossAboveThreshold = crossover(rsi, rsiBuyThreshold)
isRSICrossBelowThreshold = crossunder(rsi, rsiSellThreshold)
// Combined buy and sell conditions
buyCondition = divbull and isRSICrossAboveThreshold
sellCondition = divbear and isRSICrossBelowThreshold
// Generate buy/sell signals
if buyCondition
strategy.entry("Bat Signal Buy", strategy.long)
if sellCondition
strategy.entry("Bat Signal Sell", strategy.short)
// Plot RSI
plot(rsi, "RSI", color=color.blue)
hline(ob, title="Overbought", color=color.red)
hline(os, title="Oversold", color=color.green)
hline(rsiBuyThreshold, title="RSI Buy Threshold", color=color.green)
hline(rsiSellThreshold, title="RSI Sell Threshold", color=color.red)
// Plot signals
plotshape(series=buyCondition, title="Bat Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Bat Signal")
plotshape(series=sellCondition, title="Bat Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="Bat Sell")