Multi-EMA dan RSI Trend Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-03-01 13:26:24
Tag:

img

Gambaran umum

Artikel ini terutama menganalisis strategi perdagangan kuantitatif yang dikembangkan oleh Ravikant_sharma berdasarkan beberapa rata-rata bergerak eksponensial (EMA) dan indeks kekuatan relatif (RSI). Strategi ini mengidentifikasi tren harga dan menentukan titik masuk dan keluar dengan melintasi EMA dengan siklus dan nilai RSI yang berbeda.

Prinsip Strategi

Perhitungan Indikator

Strategi ini menggunakan 5 EMA dengan periode yang berbeda, termasuk garis 9 hari, 21 hari, 51 hari, 100 hari dan 200 hari.

Ketentuan Masuk

Salah satu dari kondisi berikut harus dipenuhi sebelum membeli:

  1. EMA 9 hari melintasi di atas EMA 21 hari
  2. EMA 9 hari melintasi di atas EMA 51 hari
  3. EMA 51 hari melintasi di bawah EMA 100 hari

Pada saat yang sama, RSI harus lebih besar dari 65, menunjukkan tren naik yang kuat.

Ketentuan Keluar

Salah satu kondisi berikut harus dipenuhi sebelum posisi ditutup:

  1. EMA 9 hari melintasi di bawah EMA 51 hari, menunjukkan pembalikan tren
  2. Harga penutupan melebihi 125% dari harga masuk, mencapai target keuntungan
  3. RSI turun di bawah 40, menandakan pembalikan
  4. Harga penutupan jatuh di bawah 98% dari harga masuk, stop loss dipicu

Analisis Keuntungan

Ini adalah tren yang khas mengikuti strategi dengan kekuatan berikut:

  1. Menggunakan crossover EMA untuk menentukan arah tren untuk pelacakan tren yang efektif
  2. Menggabungkan EMA dari periode yang berbeda mengidentifikasi sinyal tren yang lebih dapat diandalkan
  3. Filter RSI menghindari sinyal palsu di pasar yang terikat rentang
  4. Pengaturan mengambil keuntungan dan stop loss mengunci keuntungan dan mengendalikan risiko

Risiko dan Solusi

Masih ada beberapa risiko:

  1. Periode EMA dan kondisi filter RSI dapat disesuaikan.
  2. Sinyal EMA crossover mungkin tertinggal selama pembalikan tajam, tidak dapat keluar tepat waktu. Indikator lain dapat ditambahkan untuk menentukan kekuatan sinyal panjang / pendek.
  3. Target keuntungan yang tidak tepat dan pengaturan stop loss menyebabkan stop loss prematur atau kegagalan untuk mengunci keuntungan tepat waktu. Parameter harus dioptimalkan sesuai dengan produk dan lingkungan pasar yang berbeda.

Arahan Optimasi

Strategi dapat dioptimalkan lebih lanjut dengan cara berikut:

  1. Optimasi parameter untuk produk yang berbeda
  2. Menambahkan indikator teknis lainnya untuk membangun model multifaktor
  3. Mengintegrasikan algoritma pembelajaran mesin untuk menilai kualitas sinyal
  4. Menggabungkan analisis sentimen untuk menghindari perangkap emosional
  5. Mencoba strategi mengambil keuntungan / stop loss yang berbeda untuk menemukan yang optimal

Kesimpulan

Kesimpulannya, ini adalah strategi trend berikut yang dapat diandalkan dan mudah diimplementasikan secara keseluruhan. Dengan crossover EMA untuk arah tren dan filter RSI untuk sinyal palsu, hasil backtest yang baik memberikan dasar yang kuat untuk parameter lebih lanjut dan optimasi model untuk mendapatkan keuntungan yang stabil. Namun, pedagang masih harus berhati-hati dari pembalikan tajam dan parameter yang tidak tepat yang menimbulkan risiko.


/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 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/
// © Ravikant_sharma

//@version=5

strategy('new', overlay=true)

start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)

rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))   

//plot(ema4, '100', color.new(color.gray, 0)) 


//LongEntry = (  ta.crossover(ema0,ema3)  or  ta.crossover(ema0,ema2) or  ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1) 
    if rsi2>65
        LongEntry:=true
if ta.crossover(ema1,ema2)
    if rsi2>65
        LongEntry:=true
        
LongExit =  ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)



if time >= start and time <= end 
    if(LongEntry and rsi2>60)
        strategy.entry('Long', strategy.long, 1)
    if(LongExit)
        strategy.close('Long') 



Lebih banyak