Sumber dimuat naik... memuat...

Strategi crossover purata bergerak berbilang eksponen dengan pengoptimuman stop-loss dinamik ATR berasaskan jumlah

Penulis:ChaoZhang, Tarikh: 2024-11-29 17:06:37
Tag:EMAATR

img

Ringkasan

Strategi ini adalah sistem dagangan berdasarkan beberapa isyarat silang Exponential Moving Average (EMA), menggabungkan EMA dari tempoh yang berbeza dengan mekanisme stop-loss dinamik berasaskan ATR. Strategi ini menggunakan EMA 10, 39, dan 73 tempoh sebagai penunjuk isyarat utama, sambil menggabungkan EMA jangka masa yang lebih tinggi 143 tempoh sebagai penapis trend, dan melaksanakan sasaran stop-loss dan mengambil keuntungan dinamik menggunakan penunjuk ATR.

Prinsip Strategi

Logik terasnya adalah berdasarkan beberapa persilangan EMA dan pengesahan trend. Isyarat panjang dihasilkan apabila EMA jangka pendek (10 tempoh) melintasi di atas EMA jangka sederhana (39 tempoh), dan harga berada di atas EMA jangka panjang (73 tempoh) dan EMA jangka masa yang lebih tinggi (143 tempoh). Sebaliknya, isyarat pendek dihasilkan apabila EMA jangka pendek melintasi di bawah EMA jangka sederhana, dan harga berada di bawah kedua-dua EMA jangka panjang. Strategi melaksanakan nisbah risiko-balasan 1:2 menggunakan 1x ATR untuk sasaran stop-loss dan 2x ATR untuk mengambil keuntungan.

Kelebihan Strategi

  1. Pengesahan jangka masa berbilang: Integrasi EMA tempoh yang berbeza secara berkesan mengurangkan risiko pecah palsu
  2. Mekanisme stop-loss dinamik: Stop berasaskan ATR menyesuaikan diri dengan turun naik pasaran
  3. Trend mengikuti keberkesanan: Penapisan EMA jangka masa yang lebih tinggi memastikan arah perdagangan sejajar dengan trend utama
  4. Nisbah risiko-balasan yang dioptimumkan: 1: 2 menetapkan risiko-balasan meningkatkan pulangan yang dijangkakan
  5. Kebolehpercayaan isyarat yang tinggi: Pengesahan pelbagai penunjuk meningkatkan kualiti isyarat perdagangan dengan ketara

Risiko Strategi

  1. Risiko pasaran yang berkisar: Isyarat palsu yang kerap boleh berlaku di pasaran sampingan
  2. Risiko kelewatan: Sistem purata bergerak berganda mempunyai kelewatan yang melekat, berpotensi kehilangan titik kemasukan yang optimum
  3. Risiko jurang: Volatiliti yang teruk boleh menyebabkan kegagalan stop-loss
  4. Sensitiviti parameter: Pilihan parameter jangka masa berbilang memberi kesan yang ketara kepada prestasi strategi
  5. Ketergantungan persekitaran pasaran: Strategi lebih baik dalam trend yang kuat tetapi mungkin kurang dalam keadaan lain

Arahan Pengoptimuman Strategi

  1. Masukkan penunjuk jumlah: Tambah pengesahan jumlah untuk meningkatkan kebolehpercayaan isyarat
  2. Tambah penapisan kekuatan trend: Pertimbangkan untuk memasukkan ADX atau penunjuk kekuatan trend lain
  3. Mengoptimumkan penyesuaian parameter: Sesuaikan parameter EMA secara dinamik berdasarkan keadaan pasaran
  4. Memperbaiki mekanisme stop-loss: Pertimbangkan untuk menambah stop trailing atau strategi stop-loss komposit
  5. Analisis persekitaran pasaran yang dipertingkatkan: Memperkenalkan penunjuk turun naik untuk klasifikasi keadaan pasaran

Ringkasan

Strategi ini membina sistem dagangan yang menggabungkan trend berikut dan pengurusan risiko melalui pelbagai persimpangan EMA dan hentian dinamik berasaskan ATR. Kekuatannya utama terletak pada mekanisme pengesahan jangka masa berbilang dan pengurusan kedudukan dinamik, sambil mengambil kira risiko pasaran dan lag. Kestabilan strategi dan keuntungan dapat ditingkatkan lagi melalui pengesahan jumlah, penapisan kekuatan trend, dan pengoptimuman lain. Dalam aplikasi praktikal, parameter harus disesuaikan mengikut persekitaran pasaran yang berbeza dan ciri instrumen perdagangan.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Enhanced EMA Crossover Strategy", overlay=true)

// Define the EMA lengths
ema_short_length = 10
ema_long_length = 39
ema_filter_length = 73
ema_higher_tf_length = 143

// Calculate the EMAs
ema_short = ta.ema(close, ema_short_length)
ema_long = ta.ema(close, ema_long_length)
ema_filter = ta.ema(close, ema_filter_length)
ema_higher_tf = request.security(syminfo.tickerid, "D", ta.ema(close, ema_higher_tf_length))

// Calculate ATR for volatility-based stop loss and take profit
atr_length = 14
atr = ta.atr(atr_length)

// Plot the EMAs
plot(ema_short, title="EMA 10", color=color.blue)
plot(ema_long, title="EMA 35", color=color.red)
plot(ema_filter, title="EMA 75", color=color.orange)
plot(ema_higher_tf, title="EMA Higher TF", color=color.purple)

// EMA crossover conditions with EMA 75 and higher timeframe EMA filter
longCondition = ta.crossover(ema_short, ema_long) and close > ema_filter and close > ema_higher_tf
shortCondition = ta.crossunder(ema_short, ema_long) and close < ema_filter and close < ema_higher_tf

// Execute long trade with dynamic stop loss and take profit
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=close + 2 * atr, stop=close - 1 * atr)

// Execute short trade with dynamic stop loss and take profit
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=close - 2 * atr, stop=close + 1 * atr)

// Plot signals on the chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")


Berkaitan

Lebih lanjut