Strategi EMA dengan ATR Stop Loss

Penulis:ChaoZhang, Tarikh: 2023-12-11 16:00:09
Tag:

img

Ringkasan

Strategi ini menggunakan salib emas EMA untuk menjana isyarat dagangan, iaitu isyarat beli dihasilkan apabila garis EMA pantas melintasi di atas garis EMA perlahan, dan isyarat jual dihasilkan apabila garis EMA pantas melintasi di bawah garis EMA perlahan. Ia tergolong dalam strategi trend berikut yang tipikal. Pada masa yang sama, strategi menggunakan penunjuk ATR untuk menetapkan stop loss dinamik untuk mengawal risiko sambil memastikan keuntungan.

Prinsip Strategi

  1. Tentukan tempoh EMA pantas sebagai 13 dan tempoh EMA perlahan sebagai 48.
  2. Apabila garisan EMA pantas melintasi di atas garisan EMA perlahan, isyarat beli dihasilkan; apabila garisan EMA pantas melintasi di bawah garisan EMA perlahan, isyarat jual dihasilkan.
  3. Gunakan fungsi ta.crossover dan ta.crossunder untuk menentukan salib emas dan salib kematian purata bergerak.
  4. Gunakan penunjuk ATR untuk mengira kehilangan berhenti dinamik, yang 1.5 kali jarak ATR dari penutupan.
  5. Secara intuitif memaparkan isyarat perdagangan dan tahap stop loss melalui perubahan warna, tanda beli / jual dan garis stop loss.

Analisis Kelebihan

  1. Isyarat dihasilkan berdasarkan EMA salib emas dan salib kematian, yang mengelakkan kehilangan trend pasaran utama dan pulangan adalah besar.
  2. ATR trailing stop loss memastikan keuntungan yang mencukupi mengikut trend sambil mengawal pengeluaran, mencapai nisbah risiko-balasan yang seimbang.
  3. Paparan isyarat intuitif dan paparan stop loss, mudah dikendalikan, sesuai untuk kebanyakan orang.
  4. Beberapa parameter yang boleh diselaraskan, mudah difahami dan dioptimumkan.

Analisis Risiko

  1. Kecelakaan kilat boleh mencetuskan kehilangan berhenti.
  2. Isyarat tidak sah yang kerap boleh berlaku di pasaran yang berbeza.
  3. Tetapan parameter yang tidak betul boleh menyebabkan masuk yang terlalu agresif atau kehilangan berhenti yang longgar.
  4. Parameter EMA dan parameter ATR perlu dioptimumkan dengan betul.

Penyelesaian:

  1. Luangkan pengganda ATR dengan betul untuk meninggalkan beberapa penyangga dari paras tertinggi baru-baru ini.
  2. Pertimbangkan mekanisme pengesahan selepas isyarat berlaku, seperti harga memecahkan paras tertinggi sebelumnya dan lain-lain.
  3. Pengoptimuman parameter harus mengambil kira pelbagai keadaan pasaran.

Arahan pengoptimuman

  1. Uji kombinasi parameter yang berbeza untuk mencari parameter optimum.
  2. Pertimbangkan menambah penunjuk lain untuk penapisan isyarat, seperti jumlah, penunjuk turun naik dll untuk meningkatkan kualiti isyarat.
  3. Sesuaikan parameter EMA mengikut trend utama untuk menangkap trend utama dengan lebih baik.
  4. Pertimbangkan untuk menyesuaikan pembiakan stop loss ATR secara dinamik untuk memperluaskan julat berhenti semasa pasaran trend.
  5. Menggabungkan algoritma pembelajaran mesin untuk pengoptimuman parameter adaptif.

Kesimpulan

Strategi ini agak mudah dan mudah digunakan. Ia menghasilkan isyarat berdasarkan persilangan EMA, mengikuti trend, dan menggunakan stop loss ATR untuk mengawal risiko dengan berkesan. Walaupun mungkin ada beberapa isyarat palsu, ia mempunyai keupayaan yang kuat dalam menangkap trend utama dan pulangan agak stabil. Ia sesuai sebagai strategi perdagangan kuantitatif asas.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
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/
// © byee322

/// This strategy uses the EMA to generate buy and sell signals with a 1.5x ATR stop loss
//@version=5
strategy("EMA Strategy with ATR Stop Loss", overlay=true)

// Define the EMA lengths as input parameters
emaLength1 = input(13, "EMA Length 1")
emaLength2 = input(48, "EMA Length 2")

// Define the moving averages
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)

// Buy signal: EMA 1 crosses above EMA 2
buy = ta.crossover(ema1, ema2)

// Sell signal: EMA 1 crosses below EMA 2
sell = ta.crossunder(ema1, ema2)

// Define the state variable
state = 0
state := buy ? 1 : sell ? -1 : nz(state[1])

// Change the color of the candles
color = state == 1 ? color.green : state == -1 ? color.red : na

// Plot the colored candles
plotcandle(open, high, low, close, color=color)

// Plot the signals on the chart with text labels
plotshape(buy, style=shape.triangleup, color=color.new(color.green, 50), location=location.belowbar, text="Buy")
plotshape(sell, style=shape.triangledown, color=color.new(color.red, 50), location=location.abovebar, text="Sell")

// Calculate the ATR
atrVal = ta.atr(14)

// Calculate the stop loss level for buy
stopLossBuy = buy ? close[1] - 1.5 * atrVal : na

// Calculate the stop loss level for sell
stopLossSell = sell ? close[1] + 1.5 * atrVal : na

// Plot the stop loss level for buy
plot(stopLossBuy,  color=color.new(color.green, 50), linewidth=3)

// Plot the stop loss level for sell
plot(stopLossSell, color=color.new(color.red, 50), linewidth=3)

if buy
    strategy.entry("Enter Long", strategy.long)
else if sell
    strategy.entry("Enter Short", strategy.short)

Lebih lanjut