RSI Bentuk V Pattern Swing Trading Strategy

Penulis:ChaoZhang, Tanggal: 2024-01-12 13:52:55
Tag:

img

Gambaran umum

Strategi ini didasarkan pada pola berbentuk V yang dibentuk oleh indikator RSI, dikombinasikan dengan filter EMA, untuk mengembangkan strategi perdagangan yang menguntungkan jangka pendek yang dapat diandalkan.

Logika Strategi

  1. Menggunakan EMA 20 hari di atas EMA 50 hari sebagai penilaian tren naik jangka panjang
  2. RSI membentuk pola berbentuk V, menunjukkan peluang rebound oversold
    • Previous bars low lebih rendah dari 2 bars low sebelumnya
    • RSI bar saat ini lebih tinggi dari 2 bar RSI sebelumnya
  3. RSI melintasi di atas 30 sebagai sinyal penyelesaian pola berbentuk V untuk pergi panjang
  4. Tetapkan stop loss pada 8% di bawah harga masuk
  5. Ketika RSI melintasi 70, mulailah menutup posisi dan pindahkan stop loss ke harga masuk
  6. Ketika RSI melewati 90, tutup 3/4 posisi
  7. Ketika RSI turun di bawah 10 / stop loss dipicu, tutup semua posisi

Analisis Keuntungan

  1. Gunakan EMA untuk menilai arah pasar secara keseluruhan, hindari perdagangan melawan tren
  2. RSI pola berbentuk V menangkap peluang rata-rata-reversing ketika oversold
  3. Beberapa mekanisme stop loss untuk mengendalikan risiko

Analisis Risiko

  1. Tren penurunan yang kuat dapat menimbulkan kerugian yang tidak dapat dihentikan
  2. Sinyal RSI berbentuk V dapat memberikan sinyal palsu, menyebabkan kerugian yang tidak perlu

Arahan Optimasi

  1. Mengoptimalkan parameter RSI untuk menemukan pola berbentuk V yang lebih andal
  2. Masukkan indikator lain untuk meningkatkan keandalan sinyal pembalikan
  3. Memperbaiki strategi stop loss, keseimbangan antara mencegah terlalu agresif dan stop loss yang tepat waktu

Ringkasan

Strategi ini mengintegrasikan filter EMA dan penilaian pola berbentuk RSI V untuk membentuk strategi perdagangan jangka pendek yang dapat diandalkan. Ini dapat secara efektif merebut peluang rebound ketika oversold. Dengan optimasi terus-menerus pada parameter dan model, meningkatkan mekanisme stop loss, strategi ini dapat ditingkatkan lebih lanjut dalam stabilitas dan profitabilitas. Ini membuka pintu perdagangan swing yang menguntungkan bagi pedagang kuant.


/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
//strategy("RSI V Pattern", overlay=true)
strategy(title="RSI V Pattern", overlay=false )

//Strategy Rules
//ema20 is above ema50  --- candles are colored  green on the chart
//RSI value sharply coming up which makes a V shape ,  colored in yellow on the chart
//RSI V pattern should occur from below 30    

len = input(title="RSI Period", minval=1, defval=5)
stopLoss = input(title="Stop Loss %", minval=1, defval=8)

myRsi = rsi(close,len)

longEmaVal=ema(close,50)
shortEmaVal=ema(close,20)

//plot emas 
//plot(longEmaVal, title="Long EMA" ,linewidth=2, color=color.orange, trackprice=true)
//plot(shortEmaVal, title="Short EMA" ,linewidth=2, color=color.green, trackprice=true)


longCondition =  ema(close,20)>ema(close,50)   and (low[1]<low[2] and  low[1]<low[3]) and (myRsi>myRsi[1] and myRsi>myRsi[2] ) and crossover(myRsi,30) //  (   and myRsi<60)  

//(myRsi<60 and myRsi>30)  and myRsi>myRsi[1] and (myRsi[1]<myRsi[2]  or  myRsi[1]<myRsi[3]) and (myRsi[2]<30)  and (myRsi[3]<30 and myRsi[4]>=30)



barcolor(shortEmaVal>longEmaVal?color.green:color.red)
//longCondition = crossover(sma(close, 14), sma(close, 28))
barcolor(longCondition?color.yellow:na)
strategy.entry("RSI_V_LE", strategy.long, when=longCondition )
//stoploss value at 10%
stopLossValue=strategy.position_avg_price -  (strategy.position_avg_price*stopLoss/100) 
//stopLossValue=valuewhen(longCondition,low,3)


//takeprofit at RSI highest  reading
//at RSI75 move the stopLoss to entry price
moveStopLossUp=strategy.position_size>0 and crossunder(myRsi,70)
barcolor(moveStopLossUp?color.blue:na)
stopLossValue:=crossover(myRsi,70) ? strategy.position_avg_price:stopLossValue

//stopLossValue:=moveStopLossUp?strategy.position_avg_price:stopLossValue
rsiPlotColor=longCondition ?color.yellow:color.purple
rsiPlotColor:= moveStopLossUp ?color.blue:rsiPlotColor
plot(myRsi, title="RSI", linewidth=2, color=rsiPlotColor)
//longCondition?color.yellow:#8D1699)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(75, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(25, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)


    
//when RSI crossing down 70 , close 1/2 position and move stop loss to average entry price
strategy.close("RSI_V_LE",  qty=strategy.position_size*1/2, when=strategy.position_size>0 and crossunder(myRsi,70))

//when RSI reaches high reading 90 and crossing down close 3/4 position
strategy.close("RSI_V_LE",  qty=strategy.position_size*3/4, when=strategy.position_size>0 and crossunder(myRsi,90))



//close everything when Rsi goes down below to 10 or stoploss hit  
//just keeping RSI cross below 10 , can work as stop loss , which also keeps you long in the trade ... however sharp declines could  make large loss
//so I combine RSI goes below 10 OR stoploss hit  , whichever comes first - whole posiition closed
longCloseCondition=crossunder(myRsi,10)  or close<stopLossValue
strategy.close("RSI_V_LE", qty=strategy.position_size,when=longCloseCondition )



Lebih banyak