Strategi pelarian corak RSI W


Tarikh penciptaan: 2023-09-17 18:24:17 Akhirnya diubah suai: 2023-09-17 18:24:17
Salin: 0 Bilangan klik: 879
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggunakan pengenalan bentuk W pada indikator RSI, digabungkan dengan penghakiman trend, untuk mencapai operasi terobosan dengan harga rendah dan harga tinggi. Berbanding dengan penghakiman rantau RSI yang lebih murah dan lebih murah, pengenalan bentuk W dapat lebih jelas menentukan masa pembelian.

Prinsip Strategi

  1. Menggunakan RSI ((5) untuk menilai bentuk W dan mencari peluang membeli yang berpotensi. Apabila bentuk W muncul di kawasan oversold, ia menandakan pembalikan yang akan datang.

  2. EMA20 memakai EMA50 untuk menilai trend naik, sebagai arah besar masuk.

  3. Beli apabila W-shape dikenali dan trend naik.

  4. Jika anda sudah memegang kedudukan, anda boleh menambah kedudukan apabila RSI jatuh ke bawah 20 lagi.

  5. Apabila RSI melepasi 75, ia menandakan kawasan overbought dan penarikan stop loss.

  6. Tetapkan titik hentian 8% dan keluar dari hentian jika melebihi titik ini.

Analisis kelebihan

  1. Pengenalan bentuk W meningkatkan kepastian kemasukan.

  2. Menerusi trend, kita boleh mengesan isyarat penapisan yang tidak berkesan dan mengelakkan kehilangan peluang untuk berbalik.

  3. Parameter RSI ditetapkan untuk peluang jangka pendek dalam masa 5 hari.

  4. Tetapkan titik berhenti untuk mengawal risiko.

Analisis risiko

  1. Pengiktirafan bentuk W bergantung pada tetapan parameter, yang mungkin tidak dapat difahami atau salah menilai bentuk.

  2. Sebagai isyarat sebaliknya, terdapat risiko untuk dihalang.

  3. RSI mudah menyebabkan penembusan palsu, dan isyarat harus disaring dengan betul.

  4. Jika titik henti anda terlalu besar, anda mungkin akan berhenti terlalu awal.

Arah pengoptimuman

  1. Uji parameter kitaran RSI yang berbeza untuk mencari kombinasi parameter yang optimum.

  2. Menambah syarat penentuan bentuk untuk meningkatkan ketepatan pengenalan.

  3. Ia juga boleh digunakan untuk memfilterkan isyarat dalam kombinasi dengan petunjuk lain untuk mengurangkan kesilapan perdagangan.

  4. Mengubah kedudukan hentian secara dinamik, mengoptimumkan strategi hentian.

  5. Mengoptimumkan strategi penangguhan, memanjangkan tempoh pegangan dengan jaminan keuntungan.

ringkaskan

Strategi ini menggunakan bentuk RSI W untuk mencapai operasi penembusan balik yang cekap. Tetapi perlu lebih mengoptimumkan parameter yang ditetapkan, ditambah dengan penapisan isyarat dengan petunjuk teknikal lain, untuk meningkatkan kestabilan strategi dan tahap keuntungan.

Kod sumber strategi
/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 3h
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(title="RSI W Pattern strategy", pyramiding=2, shorttitle="RSI W Pattern", overlay = false)

//Strategy Rules
//ema20 is above ema50
//RSI5 making W pattern in oversold area  or just below 70 level  , you can define the value for parameter buyRsiEntry --- dont go beyond 70
//Exit when RSI reaches 75 

len = input(title="RSI Period", minval=1, defval=5)
buyRsiEntry = input(title="look for W pattern bottom edges well below RSI level (BUY) ", minval=10, defval=65, maxval=70)
//numberOfBars = input(title="Number of Bars in W pattern ", minval=4, defval=4, maxval=6)

emaL = input(title="Long Term EMA", minval=1, defval=50, maxval=200)
emaS = input(title="Short Term EMA", minval=1, defval=20, maxval=200)

stopLoss = input(title="Stop Loss %", minval=1, defval=8, maxval=10)

//rsiWp1=false

myRsi = rsi(close,len)

//longEmaVal=ema(close,emaL)
//shortEmaVal=ema(close,emaS)

entryEma=ema(close,5)  // This is used as filetr for BUY


isEma20AboveEma50=ema(close,emaS)>ema(close,emaL) ? true : false 

//W Pattern
//rsiWp1 =  myRsi>myRsi[1] and myRsi>=30 and myRsi[1]<myRsi[2] and myRsi[2]>myRsi[3]  and myRsi[3]<myRsi[4] //This is published one
rsiWp1 =    myRsi>myRsi[1] and myRsi>=30 and myRsi[1]<myRsi[2] and myRsi[2]>myRsi[3]  and myRsi[3]<myRsi[4] and (low[1]<=low[4] or low[3]<=low[4] ) // looking for recent low

//rsiWp1 =  myRsi>myRsi[1] and myRsi>=30 and myRsi[1]<myRsi[2] and myRsi[2]>myRsi[3]  and myRsi[3]<myRsi[4]  //Ths one has 92% win rate and 4.593 prfit factor

//long condition filters
//1. ema20 > ema50
//2. Rsi5 has W pattern
//3. current RSI <= 65 (parameter buyRsiEntry)  (dont go beyond 70 , becuase that is already overbought area)
//4. current price low/close is below 5 ema --- looking for pullback  -- Optional
longCondition =  isEma20AboveEma50 and rsiWp1   and (myRsi<=buyRsiEntry  and myRsi>=30)  
//and (low<entryEma or close<entryEma)  --- if this optional required , add it to above condition

patternText=" W "

barcolor(longCondition?color.yellow:na)

//initial entry
strategy.entry("RSI_W_LE", comment="Buy" , long=true, when=longCondition  )

//legging in to existing 
strategy.entry("RSI_W_LE",comment="Add", long=true, when=strategy.position_size>0 and crossover(myRsi,10 ))

//calculate stoploss value
stopLossValue=strategy.position_avg_price -  (strategy.position_avg_price*stopLoss/100) 


rsiPlotColor=longCondition ?color.yellow:color.purple


plot(myRsi, title="RSI", linewidth=2, color=color.purple)
//    plot(myRsi, title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple)
    //plot(myRsi[1], title="RSI", linewidth=2, color=rsiWp1==true?color.yellow:color.purple)
    //plot(myRsi[2], title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple)
    //plot(myRsi[3], title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple)
    //plot(myRsi[4], title="RSI", linewidth=2, color=rsiWp1?color.yellow:color.purple)
    


hline(40, title="Middle Line", color=color.blue, linestyle=hline.style_dashed)
obLevel = hline(75, title="Overbought", color=color.red, linestyle=hline.style_dashed)
osLevel = hline(30, title="Oversold", color=color.purple, linestyle=hline.style_dashed)
fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)


plotshape(
	 longCondition ? myRsi[1] : na,
	 offset=-1,
	 title="W Pattern",
	 text=patternText,
	 style=shape.labelup,
	 location=location.absolute,
	 color=color.purple,
	 textcolor=color.yellow,
	 transp=0
	 )	 
	 
bgcolor(strategy.position_size>0?color.green:na, transp=40, title='In Long Position')

//take profit or close when RSI reaches 75    
takeProfit=crossover(myRsi,75)

//close when RSi reaches profit level 
strategy.close("RSI_W_LE", comment="TP Exit", qty=strategy.position_size,when=crossover(myRsi,75) and close>strategy.position_avg_price )


//close everything when stoploss hit  
longCloseCondition=close<(strategy.position_avg_price - (strategy.position_avg_price*stopLoss/100)  ) //or crossunder(myRsi,30)
strategy.close("RSI_W_LE", comment="SL Exit", qty=strategy.position_size,when=longCloseCondition )