Strategi Perdagangan Indikator RSI Lanjutan

Penulis:ChaoZhang, Tanggal: 2024-02-06 11:47:59
Tag:

img

Gambaran umum

S&P500 Advanced RSI Indicator Trading Strategy adalah strategi trend jangka menengah hingga panjang untuk perdagangan indeks S&P500. Strategi ini menggabungkan beberapa filter dengan sinyal overbought dan oversold RSI untuk mengendalikan risiko dan mengurangi sinyal palsu.

Logika Strategi

Indikator inti dari strategi ini adalah RSI, menggunakan 2 periode RSI untuk menentukan tingkat harga overbought dan oversold.

  1. Filter RSI Mingguan: Memerlukan RSI mingguan berada di bawah ambang batas untuk menghindari jangka panjang yang terlalu agresif di pasar bull.

  2. Filter MA: Memerlukan harga berada di atas periode MA tertentu untuk memastikan masuk setelah tren naik telah dimulai.

  3. Filter RSI sekunder: Mengharuskan indikator RSI sekunder juga turun di bawah garis oversold untuk menghindari pecah palsu.

  4. ATR Breakout Filter: Menghindari pergi lama setelah penurunan harga tajam untuk mengendalikan risiko.

Kombinasi dari beberapa filter ini dapat secara efektif mengidentifikasi titik pembalikan harga jangka menengah hingga panjang, mengontrol frekuensi perdagangan dan mengurangi risiko.

Analisis Keuntungan

Strategi Trading Indikator RSI Lanjutan S&P500 memiliki keuntungan berikut:

  1. Menggabungkan beberapa indikator bantu mengurangi sinyal palsu dan meningkatkan keandalan.

  2. Filter breakout ATR mengendalikan risiko dengan menghindari pembelian setelah jatuhnya harga.

  3. RSI filter mingguan mencegah terlalu agresif panjang di pasar bull.

  4. Filter MA memastikan masuk setelah tren naik telah dimulai.

  5. Filter RSI sekunder menghindari RSI palsu.

  6. Cocok untuk memegang jangka menengah hingga panjang dan menghindari overtrading.

Analisis Risiko

Risiko utama dari strategi ini berasal dari aspek berikut:

  1. RSI sebagai indikator utama memiliki beberapa ketinggalan.

  2. Kondisi filter bisa terlalu ketat dan kehilangan kesempatan.

  3. Stop loss bisa diambil saat flash crash.

  4. RSI sederhana dan filter memiliki kemampuan terbatas dalam kondisi pasar yang kompleks.

Mitigasi yang sesuai:

  1. Sesuaikan parameter untuk menghindari kehilangan perdagangan.

  2. Meningkatkan ukuran posisi untuk memperhitungkan beberapa perdagangan yang hilang.

  3. Meredakan kondisi filter secara moderat untuk meningkatkan frekuensi perdagangan.

  4. Pertimbangkan untuk menggabungkan lebih banyak indikator untuk analisis pasar yang kompleks.

Arahan Optimasi

Strategi dapat dioptimalkan lebih lanjut dalam arah berikut:

  1. Uji penyesuaian parameter RSI untuk menemukan garis overbought/oversold optimal.

  2. Uji parameter periode MA untuk menentukan nilai optimal.

  3. Uji menyesuaikan parameter ATR untuk mengoptimalkan filter price breakout.

  4. Cobalah menggabungkan indikator lain untuk analisis pasar yang lebih kompleks.

  5. Optimalkan parameter RSI mingguan untuk menemukan pengaturan yang optimal.

  6. Mengoptimalkan parameter RSI sekunder termasuk periode dan garis overbought/oversold.

Kesimpulan

S&P500 Advanced RSI Indicator Trading Strategy mengidentifikasi titik pembalikan tren jangka menengah hingga panjang menggunakan RSI dan kondisi filter ganda untuk mengendalikan risiko. Ini memanfaatkan kekuatan RSI secara efektif untuk mengunci tren jangka menengah / panjang dan menghindari overtrading. Karena parameter terus dioptimalkan, kinerja strategi dapat terus meningkat. Secara keseluruhan, ini cocok untuk investasi nilai jangka menengah hingga panjang dan merupakan strategi kuantitatif yang relatif stabil.


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

//@version=5
// Lets connect on LinkedIn (https://www.linkedin.com/in/lets-grow-with-quality/)
// Optimized for S&P500 Daily. Use it as a buy confirmation on certain levels (Springs, Pullbacks, ...) or let it run 
// without "Weekly RSI Filter" and pyramiding for 4 x more trades.
// This strategy is optimized for minimum drawdowns and has several filters on board for use on different securities

strategy("S&P500 RSI2 Studio", overlay=true)

baseLength = input(2, title="Base RSI Length")
overSold = input(10, title="Overbought Level")
overBought = input(90, title="Oversold Level")
overBoughtExit = input(70, title="Overbought Level Exit")
enableWeeklyRsiFilter = input(true, title="Enable Weekly RSI Filter")
weeklyOverSold = input(30, title="Weekly Oversold Level")
weeklyOverBought = input(70, title="Weekly OverOverbought Level")
weeklyRsiLength = input(2, title="weeklyRsiLength")

enableWmaFilter = input(false, title="Enable MA Filter")
wmaLength = input(100, title="WMA Length")

exitRsiLength = input(4, title="Exit RSI Length")
dailyRsiLength = input(4, title="Daily RSI Length")

enable2ndRSIFilter = input(false, title="Enable 2nd RSI Filter")
SecRSIFilterLengh = input(14, title="2nd RSI Filter Length")
SecRSIFilterOverSold = input(20, title="2nd RSI Filter Oversold Level")

enableAtrFilter = input(true, title="Enable ATR Filter")
numAtrDays = input(14, title="Number of Days ATR Average")
atrFilterFactor = input(2, title="ATR Filter Factor")

weeklyRsi = request.security(syminfo.tickerid, "W", ta.wma(ta.rsi(close, weeklyRsiLength), 1))
exitRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, exitRsiLength), 2))
dailyRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, dailyRsiLength), 2))
price = close

priceDropCondition = ta.atr(1) >= ta.atr(numAtrDays) * atrFilterFactor
preventEarlyEntry = not priceDropCondition

vrsi = ta.wma(ta.rsi(price, baseLength), 2)
wma = ta.wma(price, wmaLength)


buyCond1 = ta.crossunder(vrsi, overSold)
buyCond2 = enableWeeklyRsiFilter ? weeklyRsi < weeklyOverSold : true
buyCond3 = enable2ndRSIFilter ? ta.wma(ta.rsi(close, SecRSIFilterLengh),2) < SecRSIFilterOverSold : true
buyCond4 = enableWmaFilter ? price > ta.wma(close, wmaLength) : true
buyCond5 = enableAtrFilter ? preventEarlyEntry : true
 
buy = buyCond1 and buyCond2 and buyCond3 and buyCond4 and buyCond5

if (not na(vrsi))
    if buy 
        strategy.entry("RSI2 Studio", strategy.long, comment="Long")

if (exitRsi > overBoughtExit)
    strategy.close("RSI2 Studio", comment="Close Long")

Lebih banyak