Strategi mengikuti tren berdasarkan stop loss EMA dan ATR


Tanggal Pembuatan: 2023-12-11 16:00:09 Akhirnya memodifikasi: 2023-12-11 16:00:09
menyalin: 0 Jumlah klik: 794
1
fokus pada
1621
Pengikut

Strategi mengikuti tren berdasarkan stop loss EMA dan ATR

Ringkasan

Strategi ini menggunakan EMA rata-rata golden cross untuk menghasilkan sinyal perdagangan, yaitu sinyal beli ketika melewati EMA lambat di EMA cepat, dan sinyal jual ketika melewati EMA lambat di EMA cepat. Strategi ini merupakan strategi pelacakan tren yang khas.

Prinsip Strategi

  1. Definisi EMA rata-rata cepat adalah 13, EMA rata-rata lambat adalah 48.
  2. Ketika EMA cepat melewati EMA lambat, menghasilkan sinyal beli; ketika EMA cepat melewati EMA lambat, menghasilkan sinyal jual.
  3. Fungsi ta.crossover dan ta.crossunder untuk menentukan forks linear.
  4. Dengan menggunakan indikator ATR untuk menghitung stop loss dinamis, stop loss adalah 1.5 kali ATR dari jarak dekat.
  5. Sinyal perdagangan dan stop loss ditampilkan secara visual melalui perubahan warna, tanda jual beli, dan garis stop loss.

Analisis Keunggulan Strategi

  1. Gold Fork Dead Fork yang didasarkan pada garis rata-rata EMA menghasilkan sinyal, menghindari kehilangan tren utama pasar, dan mendapatkan keuntungan yang cukup besar.
  2. ATR Dynamic Tracking Stop Loss, memastikan keuntungan yang cukup baik, tetapi juga mengendalikan risiko penarikan, dan keuntungan dari risiko secara keseluruhan lebih seimbang.
  3. Tampilan sinyal dan stop loss yang intuitif, mudah dioperasikan, dan cocok untuk kebanyakan orang.
  4. Parameter yang dapat disesuaikan lebih sedikit, mudah dipelajari dan dioptimalkan.

Analisis Risiko Strategi

  1. Kejadian tak terduga dapat memicu penurunan harga.
  2. Dalam situasi gempa bumi, sinyal tidak aktif dapat sering dihasilkan.
  3. Penetapan parameter yang tidak tepat dapat menyebabkan terlalu keras masuk ke lapangan atau stop loss terlalu longgar.
  4. Parameter EMA dan ATR harus dioptimalkan dengan tepat.

Solusi:

  1. ATR dapat dilepaskan secara tepat untuk memastikan bahwa ada penyangga dari stop loss ke titik tertinggi terdekat.
  2. Mekanisme konfirmasi dapat dipertimbangkan setelah munculnya sinyal, seperti harga sebelum mencapai titik tertinggi.
  3. Optimasi parameter disarankan untuk mempertimbangkan berbagai situasi pasar secara menyeluruh.

Arah optimasi strategi

  1. Anda dapat menguji kombinasi parameter yang berbeda untuk menemukan yang terbaik.
  2. Anda dapat mempertimbangkan untuk menambahkan indikator lain untuk memfilter sinyal, seperti indikator volume transaksi, indikator tingkat fluktuasi, dan sebagainya, untuk meningkatkan kualitas sinyal.
  3. Parameter EMA dapat disesuaikan dengan tren skala besar untuk menangkap tren utama.
  4. Anda dapat mempertimbangkan untuk secara dinamis menyesuaikan ATR stop loss multiplier dan memperluas stop loss dalam situasi tren.
  5. Parameter optimasi yang dapat beradaptasi dengan algoritma pembelajaran mesin.

Meringkaskan

Strategi ini secara keseluruhan relatif sederhana dan mudah digunakan, berdasarkan EMA rata-rata menghasilkan sinyal, karena berurutan, ditambah dengan indikator ATR untuk melacak stop loss, dapat secara efektif mengendalikan risiko. Meskipun akan ada beberapa sinyal palsu, namun kemampuan untuk menangkap tren utama yang kuat, keuntungan yang lebih stabil, cocok sebagai salah satu strategi dasar untuk perdagangan kuantitatif.

Kode Sumber Strategi
/*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)