Strategi Dual Overbought/Oversold Berdasarkan Indikator RSI

Penulis:ChaoZhang, Tanggal: 2023-09-13 16:58:55
Tag:

Strategi ini disebut Dual Overbought/Oversold Strategy Based on RSI Indicator. Ini menggunakan indikator RSI dan indikator Stoch RSI untuk menentukan kondisi overbought dan oversold untuk sinyal perdagangan yang lebih andal.

Indikator RSI mencerminkan tingkat overbought / oversold dalam harga. RSI di atas 70 menunjukkan keadaan overbought, sementara di bawah 30 adalah oversold. Indikator RSI Stoch menunjukkan apakah RSI itu sendiri telah memasuki zona overbought atau oversold.

Logika perdagangan adalah:

Ketika RSI melintasi di atas garis overbought yang ditentukan pengguna, itu menandakan kondisi overbought untuk mempertimbangkan perdagangan pendek.

Ketika RSI jatuh di bawah garis oversold yang didefinisikan pengguna, itu menandai kondisi oversold untuk mempertimbangkan perdagangan panjang.

Sementara itu, Stoch RSI juga perlu menunjukkan sinyal overbought atau oversold untuk mengkonfirmasi sinyal masuk yang sesuai.

Kondisi ganda ini dikombinasikan untuk menyaring sinyal yang lebih ambigu dan menghindari kebocoran palsu.

Keuntungan dari strategi ini adalah memanfaatkan berbagai indikator turunan RSI untuk penilaian rentang overbought/oversold yang lebih akurat.

Dalam kesimpulan, kombinasi indikator membutuhkan keseimbangan yang hati-hati. Penggunaan yang wajar dapat meningkatkan hasil tetapi juga dapat membawa risiko overoptimasi. Pedagang masih membutuhkan penilaian yang fleksibel.


/*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)

Lebih banyak