Strategi mengikut arah aliran dengan tiga EMA digabungkan dengan DMI dan MACD


Tarikh penciptaan: 2024-01-25 15:48:59 Akhirnya diubah suai: 2024-01-25 15:48:59
Salin: 0 Bilangan klik: 1177
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran dengan tiga EMA digabungkan dengan DMI dan MACD

Gambaran keseluruhan

Ini adalah strategi pengesanan trend yang menggabungkan penggunaan 3 indeks moving averages (EMA), trend indicators (DMI) dan moving average aggregate indicators (MACD) untuk menentukan arah trend dan menghasilkan isyarat jual beli. Komponen utama termasuk isyarat EMA Gold Crossover, DMI menilai kekuatan trend dan MACD untuk pengesahan momentum.

Logik Strategi

Logik teras bergantung kepada 3 EMA - 34, 89, dan 200 - yang dikira pada kitaran M5 untuk mengenal pasti trend keseluruhan. 34 kitaran EMA memberikan arah jangka pendek, manakala 89 dan 200 EMA menentukan trend jangka panjang.

Apabila anda membeli isyarat:

  • 34 EMA pada harga penutupan
  • + DI ((pergerakan trend bullish) > 17
  • ADX (kuasa trend) > -DI

Menjual semasa menghasilkan isyarat:

  • 34 EMA di bawah harga penutupan
  • -DI ((pergerakan ke arah penurunan) > 17
  • ADX > +DI

Indeks MACD memberikan pengesahan tambahan sebelum kemasukan.

Kelebihan

Strategi ini mempunyai beberapa kelebihan utama:

  1. Perpindahan trend melalui EMA emas jangka pendek dan tangkapan awal
  2. Menggunakan pelbagai EMA untuk menilai kekuatan trend dalam pelbagai tempoh masa
  3. Penapis DMI membantu mengelakkan isyarat yang salah dengan memeriksa pergerakan trend yang kuat
  4. MACD menyediakan pengesahan momentum untuk meningkatkan kualiti dan kebarangkalian peluang perdagangan
  5. Gabungan penunjuk meningkatkan ketepatan dan masa isyarat masuk

Risiko

Risiko utama:

  1. EMA Gold Cross yang hanya bergantung kepada EMA Gold Cross mudah disesatkan dan tersesat
  2. Pengesahan berganda boleh menyebabkan kelewatan pada masa penjanaan isyarat
  3. Rentan kepada perubahan trend yang tidak dijangka

Cara untuk mengurangkannya:

  • Menggunakan pengurusan stop loss dan kedudukan yang betul
  • Optimumkan parameter EMA mengikut keadaan pasaran semasa
  • Memperhatikan pergerakan harga untuk pengesahan visual

Arah pengoptimuman

Peningkatan lebih lanjut dalam strategi:

  1. Tambah indikator seperti RSI untuk menilai kawasan overbought dan oversold
  2. Analisis trafik gabungan menghasilkan isyarat yang lebih kuat
  3. Optimumkan parameter dan parameter mengikut aset dan jangka masa yang berbeza
  4. Menggunakan teknologi pembelajaran mesin untuk terus belajar daripada data pasaran baru

ringkaskan

Secara keseluruhannya, ia adalah satu sistem pengesanan trend yang kuat, yang menggabungkan beberapa rentetan petunjuk yang mudah tetapi praktikal. Tiga EMA untuk menilai trend dalam pelbagai bingkai masa, DMI dan MACD untuk memeriksa peluang masuk dan peluang keuntungan. Bersama dengan pengoptimuman dan pengurusan risiko yang sesuai, ia boleh menjadi alat yang berkesan untuk pedagang trend.

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

//@version=5
strategy("2 EMA di+ Buy Sell, strategy ", overlay=true)

// Define the EMA calculation function
ema(src, length) =>
    ta.ema(src, length)

// Calculate and plot EMA on M5
ema34_M5 = ema(close, 34)
ema89_M5 = ema(close, 89)
ema200_M5 = ema(close, 200)

// Plot EMAs
plot(ema34_M5, color=color.green, title="EMA 34 M5", linewidth=2)
plot(ema89_M5, color=color.blue, title="EMA 89 M5", linewidth=2)
plot(ema200_M5, color=color.black, title="EMA 200 M5", linewidth=2)

// Define DMI parameters
len = input(14, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plusDI = 100 * ta.rma(plusDM, len) / trur
minusDI = 100 * ta.rma(minusDM, len) / trur

// Calculate ADX
adxValue = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI == 0 ? 1 : plusDI + minusDI), len)

// Define MACD parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)

// Create buy/sell conditions
buyCondition = close > ema34_M5 and plusDI > 17 and adxValue > minusDI 
sellCondition = close < ema34_M5 and minusDI > 17 and adxValue > plusDI 

// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)

// Create alerts for buy/sell signals
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal")

// Plot buy/sell arrows on the price chart
bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na)

plotarrow(buyCondition ? 1 : sellCondition ? -1 : na, colorup=color.new(color.green, 0), colordown=color.new(color.red, 0), offset=-1)