Strategi overbought dan oversold ganda berdasarkan indikator RSI


Tanggal Pembuatan: 2023-09-13 16:58:55 Akhirnya memodifikasi: 2023-09-13 16:58:55
menyalin: 0 Jumlah klik: 670
1
fokus pada
1617
Pengikut

Strategi ini diberi nama strategi overbought/oversold ganda berdasarkan indikator RSI. Strategi ini menggunakan indikator RSI dan indikator RSI Stoch untuk menilai overbought/oversold dan memberikan sinyal perdagangan yang lebih andal.

Indikator RSI mencerminkan tingkat overbought dan oversold harga. RSI di atas 70 berarti overbought, dan di bawah 30 berarti oversold. Indikator RSI Sttoch melihat apakah indikator RSI itu sendiri masuk ke dalam keadaan overbought atau oversold.

Logika perdagangan dari strategi ini:

Ketika indikator RSI melewati garis overbought yang ditetapkan pengguna, ini menunjukkan overbought masuk, pertimbangkan untuk melakukan shorting;

Ketika indikator RSI melewati batas oversold yang ditetapkan pengguna, ini menandakan oversold awal, pertimbangkan untuk melakukan lebih banyak;

Pada saat yang sama, Stoch RSI juga harus menunjukkan sinyal overbought atau oversold untuk mengkonfirmasi sinyal entry yang sesuai.

Kombinasi dua kondisi ini dapat memfilter lebih banyak sinyal yang tidak pasti dan mencegah terjadinya penembusan palsu.

Keuntungan dari strategi ini adalah menggunakan berbagai indikator derivatif dari RSI untuk lebih akurat menilai zona overbought dan oversold. Namun, perlu diperhatikan risiko kurva yang sesuai dengan overoptimisasi. Strategi stop loss juga sangat penting.

Secara keseluruhan, penggunaan kombinasi indikator memerlukan pertimbangan yang hati-hati. Penggunaan yang masuk akal dapat meningkatkan efektivitas, tetapi juga dapat membawa risiko over-optimisasi.

Kode Sumber Strategi
/*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)