Strategi mengikut arah aliran berdasarkan berbilang EMA dan RSI


Tarikh penciptaan: 2024-03-01 13:26:24 Akhirnya diubah suai: 2024-03-01 13:26:24
Salin: 10 Bilangan klik: 774
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan berbilang EMA dan RSI

Gambaran keseluruhan

Artikel ini menganalisis strategi perdagangan kuantitatif yang dibangunkan oleh Ravikant_sharma berdasarkan purata bergerak pelbagai indeks (EMA) dan indeks relatif lemah (RSI). Strategi ini menilai nilai melalui persilangan EMA dan RSI dalam tempoh yang berbeza, mengenal pasti trend harga, menentukan masa masuk dan keluar.

Prinsip Strategi

Pengiraan penunjuk

Strategi menggunakan 5 EMA yang berbeza, termasuk garis 9, 21, 51, 100, dan 200. Hanya 4 EMA pertama yang digambarkan dalam kod. Parameter RSI ditetapkan sebagai 14.

Syarat kemasukan

Strategi untuk membuka lebih banyak kedudukan apabila salah satu daripada syarat-syarat berikut dipenuhi:

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

Ia memerlukan RSI lebih besar daripada 65 untuk menunjukkan trend menaik yang kuat.

Syarat keluar

Apabila salah satu daripada syarat-syarat berikut dipenuhi, strategi keluar dari kedudukan rata:

  1. EMA 9 di bawah EMA 51, menunjukkan trend berbalik
  2. Harga penutupan melebihi harga kemasukan 125%, mencapai sasaran keuntungan
  3. RSI di bawah 40 menunjukkan tanda-tanda pembalikan
  4. Harga penutupan adalah 98% lebih rendah daripada harga kemasukan

Analisis kelebihan

Ini adalah strategi trend tracking yang tipikal, dengan kelebihan berikut:

  1. Menggunakan EMA untuk menilai arah trend, trend harga dapat dikesan dengan berkesan
  2. Menggabungkan EMA yang berbeza untuk mengenal pasti isyarat trend yang lebih dipercayai
  3. Penapis RSI mengelakkan isyarat salah dalam keadaan goyah
  4. Tetapkan kedudukan stop loss untuk mengunci keuntungan dan mengawal risiko

Analisis risiko dan penyelesaian

Strategi ini mempunyai beberapa risiko:

  1. Dalam keadaan yang bergolak, beberapa isyarat ketidakpastian mungkin berlaku, yang menyebabkan perdagangan yang terlalu kerap. Parameter kitaran EMA boleh disesuaikan dengan betul, atau syarat penapis RSI boleh ditambah.
  2. Apabila keadaan berubah, isyarat silang EMA mungkin terlewat dan tidak dapat dihentikan dalam masa yang tepat. Ia boleh dikombinasikan dengan petunjuk lain untuk menilai kekuatan isyarat lebih banyak dan lebih rendah.
  3. Matlamat keuntungan dan marjin stop-loss yang tidak betul, boleh menyebabkan stop-loss awal atau tidak tepat pada masanya. Parameter harus dioptimumkan mengikut ciri-ciri pelbagai jenis dan keadaan pasaran.

Arah pengoptimuman strategi

Strategi ini juga boleh dioptimumkan dalam beberapa arah:

  1. Menambah pengoptimuman parameter untuk varieti perdagangan, menetapkan kombinasi parameter terbaik untuk varieti yang berbeza
  2. Menambah penilaian lain seperti KDJ, MACD dan sebagainya untuk membentuk model multi-faktor
  3. Menambah kaedah kawalan angin pembelajaran mesin, menggunakan model untuk menilai kualiti isyarat, mengurangkan kemungkinan kesalahan
  4. Analisis emosi untuk mengelakkan perdagangan yang salah yang didorong oleh emosi melampau
  5. Uji strategi stop loss yang berbeza untuk mencari parameter yang optimum

ringkaskan

Strategi ini secara keseluruhannya adalah strategi pengesanan trend yang boleh dipercayai dan mudah dilaksanakan. Ia menggunakan EMA pelbagai kitaran untuk menentukan arah trend, dan kemudian digabungkan dengan RSI memfilter isyarat palsu, untuk mengoptimumkan parameter dan mengoptimumkan model berdasarkan kesan pengukuran yang lebih baik.

Kod sumber strategi
/*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')