Strategi ini dinamakan strategi overbought dan oversold berganda berdasarkan indikator RSI. Strategi ini menggunakan indikator RSI dan indikator RSI Stoch pada masa yang sama untuk menilai keadaan overbought dan oversold, untuk mendapatkan isyarat perdagangan yang lebih dipercayai.
RSI mencerminkan tahap harga yang terlalu banyak dibeli dan dijual. RSI lebih tinggi daripada 70 menunjukkan terlalu banyak dibeli dan lebih rendah daripada 30 menunjukkan terlalu banyak dijual.
Logik perdagangan untuk strategi ini:
Apabila penunjuk RSI melintasi garis overbought yang ditetapkan oleh pengguna, ia menandakan overbought masuk dan mengambil kira shorting;
Apabila indikator RSI melintasi garis oversold yang ditetapkan oleh pengguna, ini menunjukkan bahawa anda telah melakukan oversold dan mempertimbangkan untuk melakukan lebih banyak;
Pada masa yang sama, Stoch RSI juga mesti menunjukkan isyarat overbought atau oversold untuk mengesahkan isyarat masuk yang sesuai.
Kombinasi dua syarat ini dapat menyaring lebih banyak isyarat yang tidak pasti dan mengelakkan penembusan palsu.
Kelebihan strategi ini adalah menggunakan pelbagai petunjuk turunan RSI untuk lebih tepat menilai kawasan overbought dan oversold. Tetapi perlu diingatkan mengenai risiko kesesuaian kurva yang disebabkan oleh pengoptimuman berlebihan. Strategi hentikan kerugian juga penting.
Secara umum, penggunaan gabungan penunjuk memerlukan pertimbangan yang berhati-hati. Penggunaan yang bijak dapat meningkatkan keberkesanan, tetapi juga boleh membawa risiko pengoptimuman berlebihan.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("test1","t1",overlay=true, default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=200, currency=currency.USD)
//user input
k_param = input(title = "k length", type = input.integer, defval = 14)
d_param = input(title = "d length", type = input.integer, defval = 3)
rsi_param = input(title = "RSI", type = input.integer, defval = 5)
upper = input(title = "over brought", type = input.integer, defval = 80)
lower = input(title = "over sold", type = input.integer, defval = 20)
//calculation
rsi = rsi(close,rsi_param)
stochastic = 100*(rsi - lowest(rsi,k_param))/(highest(rsi,k_param)-lowest(rsi,k_param))
SMA = sma(stochastic,d_param)
//DRAW
plot(upper,color = color.blue,linewidth = 2, title ="超买")
plot(lower,color = color.blue,linewidth = 2, title ="超卖")
plot(rsi,color = rsi>upper ?color.red:rsi<lower? color.green:color.black, linewidth=2,title ="ris超买超卖")
plot(stochastic,color = color.purple,title="震荡指数")
plot(SMA, color = color.orange,title="移动平均")
//trading
shortposition = crossover(rsi,upper)
longposition = crossunder(rsi,lower)
strategy.entry("卖",false,when =(shortposition))
strategy.entry("买",true,when = (longposition))
strategy.exit("止盈",profit = close*0.013/syminfo.mintick)