RSI Oscillator Turtle Trading Strategi Jangka Pendek

Penulis:ChaoZhang, Tarikh: 2023-11-14 15:59:25
Tag:

img

Ringkasan

Ini adalah strategi perdagangan jangka pendek yang menggunakan penunjuk RSI berdasarkan peraturan perdagangan penyu. Ia menggabungkan penunjuk RSI dan penunjuk Williams Alligator untuk mengambil perdagangan kontra-trend apabila RSI memasuki zon overbought atau oversold. Ini adalah strategi perdagangan jangka pendek yang agak konservatif.

Logika Strategi

Strategi ini berdasarkan prinsip-prinsip berikut:

  1. Menggunakan peraturan perdagangan penyu, hanya memasuki pasaran apabila terdapat pembalikan yang jelas, mengamalkan pendekatan perdagangan yang agak konservatif.

  2. Menggunakan penunjuk RSI untuk menilai keadaan overbought / oversold. Apabila garis RSI memasuki zon overbought (default di atas 60) atau zon oversold (default di bawah 40), ia menunjukkan pasaran berada di titik pembalikan, kemudian mengambil perdagangan kontra-trend.

  3. Menggabungkan penunjuk Alligator Williams untuk menentukan trend pasaran. Pergi pendek hanya apabila Alligator menunjukkan tiga garis (Lips, Teeth, Jaw) sejajar dalam trend menurun; pergi panjang hanya apabila tiga garis sejajar dalam trend menaik.

  4. Menggunakan RSI RSI untuk menilai keadaan overbought / oversold dari penunjuk RSI itu sendiri, mewujudkan kesan penapis berganda. Hanya apabila garis RSI memasuki zon overbought / oversold, dan RSI RSI juga memasuki zon overbought / oversold, isyarat perdagangan akan mencetuskan.

  5. Tetapkan stop loss dan mengambil garis keuntungan. Tutup kedudukan untuk keuntungan atau stop loss apabila harga terbalik untuk mencapai garis mengambil keuntungan atau stop loss.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Mengambil peraturan perdagangan penyu yang kukuh, hanya memasuki pasaran apabila terdapat pembalikan yang jelas, boleh mengelakkan risiko besar apabila pasaran bertukar-tukar.

  2. Menggunakan penunjuk RSI untuk menentukan titik pembalikan pasaran, penunjuk itu mudah dan jelas, mudah dikendalikan.

  3. Menggabungkan penunjuk Alligator untuk menentukan arah trend mengelakkan perdagangan terhadap trend. Alligator bertindak sebagai penapis tambahan untuk meningkatkan keberkesanan.

  4. Menetapkan stop loss dan mengambil kunci keuntungan dalam keuntungan dan mengawal risiko.

  5. Mudah untuk mengoptimumkan parameter. Parameter RSI dan kriteria kemasukan / keluar boleh diselaraskan untuk pasaran yang berbeza untuk mengoptimumkan strategi.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Terdapat kemungkinan isyarat palsu dari penunjuk RSI. RSI mungkin memberikan isyarat overbought / oversold yang salah. Menggabungkan Alligator dapat mengurangkan isyarat palsu.

  2. Stop loss yang terlalu luas boleh menyebabkan kerugian yang diperbesar. Stop loss harus dipersempit dengan sewajarnya untuk mengurangkan kerugian setiap perdagangan.

  3. Pembalikan mungkin tidak berlaku tepat di zon overbought / oversold RSI. Perubahan rejim pasaran boleh menggeser titik pembalikan, parameter harus diselaraskan.

  4. Bilangan perdagangan boleh rendah, menghadapi tempoh tidak berdagang.

  5. Perdagangan jangka pendek boleh menjadi sukar apabila pasaran yang berlarian berpanjangan. Tempoh penyimpanan harus disesuaikan dengan tepat pada masanya, memanjangkan atau memendekkan jangka masa perdagangan.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter RSI, menyesuaikan zon overbought / oversold untuk menyesuaikan diri dengan pasaran yang berbeza.

  2. Sesuaikan parameter Alligator untuk meningkatkan ketepatan menentukan arah trend.

  3. Mengoptimumkan tetapan stop loss dan mengambil keuntungan untuk memaksimumkan kawalan pengeluaran dan mengunci lebih banyak keuntungan.

  4. Gabungkan dengan penunjuk lain seperti KDJ, MACD dll untuk meningkatkan ketepatan isyarat.

  5. Tambah auto stop loss, trailing stop loss untuk mengawal kerugian perdagangan tunggal dengan lebih baik.

  6. Mengoptimumkan saiz kedudukan di bawah keadaan pasaran yang berbeza untuk menguruskan risiko.

  7. Mengoptimumkan sesi dagangan, dagangan pada masa-masa apabila trend lebih jelas.

Ringkasan

Ringkasnya, ini adalah strategi perdagangan jangka pendek yang agak kukuh. Ia menggunakan pendekatan perdagangan penyu konservatif, menggunakan penunjuk RSI untuk menentukan titik pembalikan, dan menggabungkan penunjuk Alligator untuk menilai arah trend, yang dapat mengelakkan perdagangan berisiko tinggi seperti mengejar puncak dan bawah, dan mengunci keuntungan yang agak stabil. Dengan mengoptimumkan parameter, menghentikan kerugian / mengambil keuntungan, menggabungkan penunjuk lain, dan lain-lain, strategi ini dapat terus ditingkatkan. Secara keseluruhan, strategi ini sesuai untuk pelabur yang berminat dalam perdagangan kontra-trend dan mengejar pulangan yang stabil.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-07 20:00:00
period: 30m
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 of Ultimate Oscillator [SHORT Selling] Strategy",  shorttitle="RSIofUO" , overlay=false, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

	
//Ultimate Oscillator logic copied from  TradingView   builtin indicator
/////////////////////////////////////////////////////////////////////////////////
length1 = input(5, minval=1), length2 = input(10, minval=1), length3 = input(15, minval=1)


rsiUOLength = input(5, title="RSI UO length", minval=1)

sellLine = input (60, title="Sell at RSIofUO")
coverLine = input (75, title="Cover at RSIofUO")

riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)


showUO=input(false, "show Ultimate Oscialltor")



average(bp, tr_, length) => sum(bp, length) / sum(tr_, length)
high_ = max(high, close[1])
low_ = min(low, close[1])
bp = close - low_
tr_ = high_ - low_
avg7 = average(bp, tr_, length1)
avg14 = average(bp, tr_, length2)
avg28 = average(bp, tr_, length3)
out = 100 * (4*avg7 + 2*avg14 + avg28)/7
//Ultimate Oscillator 
/////////////////////////////////////////////////////////////////////////////////

//Willimas Alligator  copied from  TradingView built in Indicator
/////////////////////////////////////////////////////////////////////////////////
smma(src, length) =>
	smma =  0.0
	smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
	smma

//moving averages logic copied from Willimas Alligator -- builtin indicator in TradingView
sma1=smma(hl2,10)
sma2=smma(hl2,20)
sma3=smma(hl2,50)

//Willimas Alligator
/////////////////////////////////////////////////////////////////////////////////


//drawings
/////////////////////////////////////////////////////////////////////////////////
hline(sellLine, title="Middle Line 60  [Short Here]", color=color.red , linestyle=hline.style_solid)

obLevelPlot = hline(75, title="Overbought",  color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(25, title="Oversold", color=color.blue, linestyle=hline.style_dashed)

fill(obLevelPlot, osLevelPlot, title="Background", color=color.blue, transp=90)
rsiUO = rsi(out,rsiUOLength)

ultPlot=plot(showUO==true? out : na, color=color.green, title="Oscillator")

plot(rsiUO, title = "rsiUO" ,  color=color.purple)
//drawings
/////////////////////////////////////////////////////////////////////////////////




//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


strategy.entry(id="SERSIofUO", long=false,   qty=qty1, when = sma1<=sma2 and sma2 < sma3 and close<sma2 and crossunder(rsiUO,sellLine) )

//strategy.entry(id="SERSiofUO", long=false, when = sma1< sma2  and crossunder(rsiUO,60) )

barcolor(abs(strategy.position_size)>=1 ? color.purple : na )
bgcolor(abs(strategy.position_size)>=1 ? color.purple : na , transp=70)


//partial exit
strategy.close(id="SERSIofUO", comment="PExit",  qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and close< strategy.position_avg_price and crossover(rsiUO,30) )

strategy.close(id="SERSIofUO", comment="CloseAll", when=abs(strategy.position_size)>=1 and crossover(rsiUO,coverLine) )

//Strategy Logic 
/////////////////////////////////////////////////////////////////////////////////



Lebih lanjut