RSI Oscillator Turtle Trading Strategi jangka pendek

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

img

Gambaran umum

Ini adalah strategi perdagangan jangka pendek yang menggunakan indikator RSI berdasarkan aturan perdagangan kura-kura. Ini menggabungkan indikator RSI dan indikator Williams Alligator untuk mengambil perdagangan kontra-trend ketika RSI memasuki zona overbought atau oversold. Ini adalah strategi perdagangan jangka pendek yang relatif konservatif.

Logika Strategi

Strategi ini didasarkan pada prinsip-prinsip berikut:

  1. Menggunakan aturan perdagangan penyu, hanya masuk ke pasar ketika ada pembalikan yang jelas, mengadopsi pendekatan perdagangan yang relatif konservatif.

  2. Menggunakan indikator RSI untuk menilai kondisi overbought/oversold. Ketika garis RSI memasuki zona overbought (default di atas 60) atau zona oversold (default di bawah 40), ini menunjukkan pasar berada di titik pembalikan, kemudian mengambil perdagangan kontra-trend.

  3. Menggabungkan indikator Alligator Williams untuk menentukan tren pasar. Pergi pendek hanya ketika Alligator menunjukkan tiga garis (Lips, Teeth, Jaw) sejajar dalam tren penurunan; pergi panjang hanya ketika tiga garis sejajar dalam tren naik.

  4. Menggunakan RSI dari RSI untuk menilai kondisi overbought/oversold dari indikator RSI itu sendiri, menciptakan efek filter ganda. Hanya ketika garis RSI memasuki zona overbought/oversold, dan RSI dari RSI juga memasuki zona overbought/oversold, sinyal perdagangan akan memicu.

  5. Tutup posisi untuk mendapatkan keuntungan atau stop loss ketika harga berbalik untuk mencapai garis take profit atau stop loss.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Mengadopsi aturan perdagangan kura-kura yang kuat, hanya memasuki pasar ketika ada pembalikan yang jelas, dapat menghindari risiko besar ketika pasar bervariasi.

  2. Menggunakan indikator RSI untuk menentukan titik pembalikan pasar, indikator ini sederhana dan jelas, mudah dioperasikan.

  3. Menggabungkan indikator Alligator untuk menentukan arah tren menghindari perdagangan melawan tren. Alligator bertindak sebagai filter tambahan untuk meningkatkan efektivitas.

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

  5. Parameter RSI dan kriteria masuk/keluar dapat disesuaikan untuk pasar yang berbeda untuk mengoptimalkan strategi.

Analisis Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Ada kemungkinan sinyal palsu dari indikator RSI. RSI dapat memberikan sinyal overbought/oversold yang salah. Menggabungkan Alligator dapat mengurangi sinyal palsu.

  2. Stop loss yang terlalu luas dapat menyebabkan kerugian yang diperbesar. Stop loss harus dipersempit dengan tepat untuk mengurangi kerugian per perdagangan.

  3. Pemberontakan mungkin tidak terjadi persis di zona overbought/oversold RSI. Perubahan rezim pasar dapat mengalihkan titik pembalikan, parameter harus disesuaikan.

  4. Jumlah perdagangan dapat rendah, menghadapi periode tanpa perdagangan.

  5. Periode penyimpanan harus disesuaikan secara tepat waktu, memperpanjang atau memperpendek jangka waktu perdagangan.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter RSI, menyesuaikan zona overbought / oversold untuk menyesuaikan diri dengan pasar yang berbeda.

  2. Sesuaikan parameter Alligator untuk meningkatkan akurasi menentukan arah tren.

  3. Optimalkan stop loss dan mengambil pengaturan keuntungan untuk memaksimalkan pengendalian penarikan dan mengunci lebih banyak keuntungan.

  4. Gabungkan dengan indikator lain seperti KDJ, MACD dll untuk meningkatkan akurasi sinyal.

  5. Tambahkan stop loss otomatis, trailing stop loss untuk lebih mengontrol kerugian perdagangan tunggal.

  6. Mengoptimalkan ukuran posisi di bawah kondisi pasar yang berbeda untuk mengelola risiko.

  7. Optimalkan sesi perdagangan, perdagangan pada saat ketika tren yang lebih jelas.

Ringkasan

Singkatnya, ini adalah strategi perdagangan jangka pendek yang relatif kuat. Ini mengadopsi pendekatan perdagangan penyu konservatif, menggunakan indikator RSI untuk menentukan titik pembalikan, dan menggabungkan indikator Alligator untuk menilai arah tren, yang dapat secara efektif menghindari perdagangan berisiko tinggi seperti mengejar puncak dan terendah, dan mengunci keuntungan yang relatif stabil. Dengan mengoptimalkan parameter, stop loss / take profit, menggabungkan indikator lain, dll., Strategi dapat terus ditingkatkan. Secara keseluruhan, strategi ini cocok untuk investor yang tertarik pada perdagangan kontra-tren dan mengejar pengembalian 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 banyak