Sumber dimuat naik... memuat...

Strategi Dagangan Swing Multi-EMA yang Mengikuti Trend dengan Pengurusan Risiko Berasaskan ATR

Penulis:ChaoZhang, Tarikh: 2024-12-20 17:06:20
Tag:EMAATR

img

Ringkasan

Strategi ini adalah sistem dagangan mengikut trend berdasarkan pelbagai Exponential Moving Averages (EMA) dan Average True Range (ATR). Ia menggunakan tiga EMA (20, 50, dan 100 tempoh) bersama-sama dengan ATR untuk pengurusan risiko dinamik dan penargetan keuntungan. Pendekatan ini memastikan perdagangan yang sistematik sambil mengekalkan kawalan risiko dinamik.

Prinsip Strategi

Logik teras dibina pada interaksi antara harga dan pelbagai EMA:

  1. Isyarat kemasukan adalah berdasarkan persilangan harga dengan EMA 20 tempoh, disaring oleh EMA 50 tempoh
  2. Syarat kemasukan panjang: harga melintasi di atas 20 EMA dan di atas 50 EMA
  3. Syarat kemasukan pendek: harga melintasi di bawah 20 EMA dan di bawah 50 EMA
  4. Stop-loss: dikira secara dinamik menggunakan ATR 14 tempoh untuk menyesuaikan diri dengan turun naik pasaran
  5. Sasaran keuntungan: menggunakan nisbah risiko-balasan 1.5, menetapkan sasaran keuntungan pada 1.5 kali jarak stop-loss

Kelebihan Strategi

  1. Pengesahan jangka masa berbilang: Menggunakan 20/50/100 EMA untuk mengurangkan isyarat palsu
  2. Pengurusan risiko dinamik: Hentian berasaskan ATR menyediakan kawalan risiko yang disesuaikan dengan pasaran
  3. Nisbah risiko-balasan yang jelas: Tetapan tetap 1.5 R/R menggalakkan keuntungan jangka panjang
  4. Menggabungkan trend-mengikuti dengan perdagangan ayunan: menangkap kedua-dua trend utama dan peluang jangka pendek
  5. Isyarat perdagangan yang dilihat: Menyediakan antara muka grafik yang jelas untuk pemahaman dan pelaksanaan yang lebih baik

Risiko Strategi

  1. Risiko pasaran yang bergelora: Boleh menghasilkan isyarat pecah palsu yang kerap semasa penyatuan
  2. Risiko tergelincir: Harga pelaksanaan sebenar mungkin berbeza dari harga isyarat semasa pergerakan pasaran yang cepat
  3. Risiko pembalikan trend: Pembalikan trend tiba-tiba boleh mengakibatkan kerugian yang besar
  4. Risiko pengoptimuman parameter: Pengoptimuman berlebihan boleh membawa kepada prestasi dunia sebenar yang buruk

Arahan pengoptimuman

  1. Menggabungkan penunjuk jumlah: Gunakan jumlah untuk mengesahkan kesahihan harga pecah
  2. Tambah penapis kekuatan trend: Pertimbangkan ADX atau penunjuk serupa untuk meningkatkan kualiti kemasukan
  3. Mengoptimumkan kaedah stop-loss: Pertimbangkan untuk melaksanakan hentian trailing untuk perlindungan keuntungan yang lebih baik
  4. Klasifikasi persekitaran pasaran: Sesuaikan parameter berdasarkan keadaan pasaran yang berbeza
  5. Tambah penapis turun naik: Hentikan perdagangan semasa turun naik pasaran yang berlebihan

Ringkasan

Strategi ini menggabungkan pelbagai EMA dan kawalan risiko dinamik berasaskan ATR untuk mewujudkan sistem dagangan yang mempunyai ciri-ciri perdagangan trend dan swing. Kekuatannya terletak pada pendekatan sistematik dan risiko yang boleh dikawal, tetapi penerapan praktikal memerlukan perhatian terhadap kebolehan penyesuaian pasaran dan pengoptimuman khusus berdasarkan keadaan sebenar. Melalui tetapan parameter yang betul dan kawalan risiko yang ketat, strategi ini berpotensi untuk mencapai hasil dagangan yang stabil di kebanyakan persekitaran pasaran.


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

//@version=6
strategy("EMA Swing Strategy with ATR", overlay=true)

// Inputs
emaShort = input.int(20, "Short EMA")
emaMid = input.int(50, "Mid EMA")
emaLong = input.int(100, "Long EMA")
rrRatio = input.float(1.5, "Risk-Reward Ratio")
contracts = input.int(5, "Number of Contracts")

// Calculations
ema20 = ta.ema(close, emaShort)
ema50 = ta.ema(close, emaMid)
ema100 = ta.ema(close, emaLong)

atr = ta.atr(14)

// Conditions
longCondition = ta.crossover(close, ema20) and close > ema50
shortCondition = ta.crossunder(close, ema20) and close < ema50

// Variables for trades
var float entryPrice = na
var float stopLoss = na
var float takeProfit = na

// Long Trades
if (longCondition)
    entryPrice := close
    stopLoss := close - atr
    takeProfit := close + atr * rrRatio
    strategy.entry("Long", strategy.long, contracts)
    strategy.exit("Exit Long", from_entry="Long", stop=stopLoss, limit=takeProfit)

// Short Trades
if (shortCondition)
    entryPrice := close
    stopLoss := close + atr
    takeProfit := close - atr * rrRatio
    strategy.entry("Short", strategy.short, contracts)
    strategy.exit("Exit Short", from_entry="Short", stop=stopLoss, limit=takeProfit)

// Plot EMAs
plot(ema20, color=color.green, title="EMA 20")
plot(ema50, color=color.red, title="EMA 50")
plot(ema100, color=color.white, title="EMA 100")

// Visualization for Entries
plotshape(series=longCondition, style=shape.labelup, color=color.green, location=location.belowbar, title="Long Entry")
plotshape(series=shortCondition, style=shape.labeldown, color=color.red, location=location.abovebar, title="Short Entry")

Berkaitan

Lebih lanjut