Strategi Crossover EMA dan RSI

EMA RSI ATR
Tarikh penciptaan: 2024-06-03 11:08:30 Akhirnya diubah suai: 2024-06-03 11:08:30
Salin: 0 Bilangan klik: 933
1
fokus pada
1617
Pengikut

Strategi Crossover EMA dan RSI

Gambaran keseluruhan

EMA dan RSI bersalin strategi dengan menggabungkan indeks bergerak rata-rata ((EMA) dan indeks yang agak kuat ((RSI) dua petunjuk teknikal untuk mengenal pasti potensi membeli atau menjual isyarat. Apabila EMA dan RSI bersalin, menunjukkan pergerakan pasaran mungkin berubah. Sebagai contoh, apabila EMA yang lebih pendek tempoh EMA melalui EMA yang lebih lama tempoh, dan pada masa yang sama RSI melalui satu titik, menunjukkan kemungkinan trend naik, yang dikenali sebagai penanda aras. Sebaliknya, apabila EMA yang lebih pendek tempoh, dan pada masa yang sama RSI melalui satu titik, menunjukkan kemungkinan trend menurun, yang dikenali sebagai penanda aras.

Prinsip Strategi

  1. Hitung nilai RSI untuk tempoh yang ditetapkan dan gambarkan pada carta.
  2. Hitung nilai indikator EMA untuk tempoh yang ditetapkan dan gambarkan pada carta.
  3. Apabila harga lebih rendah daripada EMA dan RSI kurang daripada 20, ia dianggap sebagai isyarat beli; apabila harga lebih tinggi daripada EMA dan RSI lebih besar daripada 80, ia dianggap sebagai isyarat jual.
  4. Apabila muncul isyarat beli dan harga penutupan saluran semasa lebih tinggi daripada saluran terdahulu, buka lebih banyak; apabila muncul isyarat jual dan harga penutupan saluran semasa lebih rendah daripada saluran terdahulu, buka kosong.
  5. Menggunakan purata kelajuan sebenar ((ATR) untuk mengira harga hentian dan hentian. Harga hentian adalah harga bukaan dagangan tolak ((ATR + panjang entiti garisan), harga hentian ditambah dengan harga bukaan dagangan) 1.2*(ATR + panjang entiti tali pinggang))

Kelebihan Strategik

  1. Gabungan EMA dan RSI, yang mengesan trend, membolehkan anda menilai pergerakan pasaran secara lebih menyeluruh.
  2. Isyarat perdagangan boleh dikeluarkan pada awal pembentukan trend, membantu untuk menangkap peluang trend seawal mungkin.
  3. Dengan menggunakan ATR untuk menyesuaikan stop loss dan jarak berhenti secara dinamik, anda dapat menyesuaikan diri dengan lebih baik dengan turun naik pasaran.
  4. Ia juga mengambil kira hubungan kedudukan harga dengan penunjuk dan bentuk tali, meningkatkan kebolehpercayaan isyarat.

Risiko Strategik

  1. EMA dan RSI mempunyai keterbelakangan, mungkin terdapat penyambungan indikator dan harga tidak segera berbalik, menyebabkan isyarat palsu.
  2. Indeks RSI sering menghasilkan isyarat silang dalam pasaran yang bergolak, yang boleh menyebabkan perdagangan berlebihan.
  3. Nilai RSI yang tetap mungkin tidak berlaku untuk semua keadaan pasaran dan perlu disesuaikan dengan ciri-ciri pasaran.
  4. Strategi ini sangat bergantung kepada ATR untuk mengira stop loss dan stop loss, tetapi nilai ATR boleh menjadi tidak benar kerana kesan turun naik harga secara tiba-tiba.

Arah pengoptimuman strategi

  1. Mengoptimumkan parameter EMA dan RSI untuk mencari kombinasi parameter yang paling sesuai untuk pasaran semasa.
  2. Dalam pasaran yang bergolak, syarat penapisan lain seperti perubahan jumlah perdagangan, kadar turun naik dan sebagainya dimasukkan untuk menapis isyarat palsu yang kerap berlaku.
  3. RSI disesuaikan secara beransur-ansur untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  4. Menggunakan pelbagai kaedah hentian dan penutupan, seperti hentian hentian berdasarkan penutupan rintangan yang menyokong, atau hentian bergerak yang digabungkan dengan arah trend, untuk meningkatkan keupayaan kawalan risiko.
  5. Tambah modul pengurusan kedudukan untuk menyesuaikan saiz kedudukan setiap dagangan secara dinamik mengikut turun naik pasaran dan keadaan risiko akaun.

ringkaskan

Strategi EMA dan RSI silang adalah strategi trend yang mudah digunakan, dengan menggabungkan trend dan dinamika dua dimensi, dapat menilai arah pasaran secara menyeluruh. Pada masa yang sama, strategi ini menggunakan beberapa syarat penapisan dan kaedah stop loss dinamik untuk meningkatkan kualiti isyarat dan keupayaan kawalan risiko. Namun, strategi ini juga mempunyai beberapa batasan, seperti masalah metrik yang terlewat, perdagangan yang kerap. Oleh itu, dalam aplikasi sebenar, strategi ini perlu dioptimumkan dan diperbaiki lagi berdasarkan ciri-ciri pasaran tertentu dan pilihan risiko peribadi.

Kod sumber strategi
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pritom980

//@version=5
strategy("EMA RSI Cross", overlay=true, margin_long=100, margin_short=100)

// add RSI

rsi_period = input.int(7,"RSI Period")
rsi_val =  ta.rsi(close[1],rsi_period)
plot(rsi_val, color=color.blue, linewidth=2, title="RSI")

buyRsiFlag = rsi_val < 20
sellRsiFlag = rsi_val > 80

// add EMA
ema = ta.ema(close, 50)
plot(ema, color=color.red, linewidth=2, title="EMA")


// check buy

// buy when the price is below ema 
buyFlag = ema > close ? true : false

// sell when the price is above ema
sellFlag = ema < close ? true : false


bgcolor(buyFlag and buyRsiFlag ? color.green : na )
bgcolor(sellFlag and sellRsiFlag ? color.red : na )




// Check if current candle's body is bigger than previous candle's body and of opposite color
is_body_bigger_long = math.abs(close - open) > math.abs(close[1] - open[1]) and close > open != close[1] > open[1]


greenCandle = close > close[1]
redCandle = close < close[1]
// Mark the candle
bgcolor(is_body_bigger_long and greenCandle and buyFlag  ? color.blue : na, transp=70)


// ENTRY ---------------------

// Input for ATR period
atr_length = input(14, title="ATR Length")

// Calculate ATR
atr_value = ta.atr(atr_length)

// Calculate stop loss and take profit levels
candleBody = math.abs(close-open)
slDist = atr_value + candleBody

stop_loss_long = close - slDist
take_profit_long = close + (1.2 * slDist) 


stop_loss_short = high + slDist
take_profit_short = high - (1.2 * slDist)

// Entry and exit conditions
if (buyFlag and buyRsiFlag  and strategy.opentrades >= 0 and greenCandle)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long)

// Entry and exit conditions
if (sellFlag and sellRsiFlag   and strategy.opentrades <= 0 and redCandle)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short)