Semua Tentang Strategi Perdagangan Momentum dengan Stop Loss untuk Emas

Penulis:ChaoZhang, Tanggal: 2024-02-20 16:27:18
Tag:

img

Gambaran umum

Strategi ini menghitung penyimpangan harga emas dari rata-rata bergerak eksponensial 21 hari untuk menentukan situasi overbought dan oversold di pasar.

Logika Strategi

  1. Menghitung EMA 21 hari sebagai garis dasar
  2. Menghitung penyimpangan harga dari EMA
  3. Standarisasi penyimpangan ke dalam Z-Score
  4. Pergi panjang ketika Z-Score melintasi lebih dari 0,5; Pergi pendek ketika Z-Score melintasi di bawah -0,5
  5. Posisi tutup ketika Z-Score jatuh kembali ke ambang 0,5/-0,5
  6. Atur stop loss ketika Z-Score naik di atas 3 atau di bawah -3

Analisis Keuntungan

Keuntungan dari strategi ini adalah:

  1. EMA sebagai dukungan/resistensi dinamis untuk menangkap tren
  2. Stddev dan Z-Score secara efektif mengukur tingkat overbought/oversold, mengurangi sinyal palsu
  3. EMA eksponensial memberikan lebih banyak bobot pada harga baru-baru ini, membuatnya lebih sensitif
  4. Z-Score standarisasi deviation for unified judgment rules
  5. Mekanisme stop loss mengendalikan risiko dan membatasi kerugian

Analisis Risiko

Beberapa risiko yang perlu dipertimbangkan:

  1. EMA dapat menghasilkan sinyal yang salah ketika harga celah atau pecah
  2. Batas Stddev/Z-Score perlu disetel dengan benar untuk kinerja terbaik
  3. Pengaturan stop loss yang tidak benar dapat menyebabkan kerugian yang tidak perlu
  4. Black swan event dapat memicu stop loss dan kehilangan peluang tren

Solusi:

  1. Mengoptimalkan parameter EMA untuk mengidentifikasi tren utama
  2. Backtest untuk menemukan ambang batas optimal Stddev/Z-Score
  3. Rasionalitas penghentian rugi uji dengan penghentian trailing
  4. Mengevaluasi kembali pasar setelah peristiwa, menyesuaikan strategi sesuai

Arahan Optimasi

Beberapa cara untuk meningkatkan strategi:

  1. Gunakan indikator volatilitas seperti ATR alih-alih Stddev sederhana untuk mengukur nafsu risiko
  2. Uji berbagai jenis rata-rata bergerak untuk garis dasar yang lebih baik
  3. Mengoptimalkan parameter EMA untuk menemukan periode terbaik
  4. Mengoptimalkan ambang Z-Score untuk peningkatan kinerja
  5. Tambahkan stop berbasis volatilitas untuk kontrol risiko yang lebih cerdas

Kesimpulan

Secara keseluruhan ini adalah strategi trend berikut yang solid. Ini menggunakan EMA untuk mendefinisikan arah tren dan deviasi standar untuk dengan jelas mengidentifikasi tingkat overbought / oversold untuk sinyal perdagangan. Stop loss yang wajar mengendalikan risiko sambil membiarkan keuntungan berjalan. Penyesuaian parameter lebih lanjut dan penambahan kondisi dapat membuat strategi ini lebih kuat untuk aplikasi praktis.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("GC Momentum Strategy with Stoploss and Limits", overlay=true)

// Input for the length of the EMA
ema_length = input.int(21, title="EMA Length", minval=1)

// Exponential function parameters
steepness = 2

// Calculate the EMA
ema = ta.ema(close, ema_length)

// Calculate the deviation of the close price from the EMA
deviation = close - ema

// Calculate the standard deviation of the deviation
std_dev = ta.stdev(deviation, ema_length)

// Calculate the Z-score
z_score = deviation / std_dev

// Long entry condition if Z-score crosses +0.5 and is below 3 standard deviations
long_condition = ta.crossover(z_score, 0.5)

// Short entry condition if Z-score crosses -0.5 and is above -3 standard deviations
short_condition = ta.crossunder(z_score, -0.5)

// Exit long position if Z-score converges below 0.5 from top
exit_long_condition = ta.crossunder(z_score, 0.5)

// Exit short position if Z-score converges above -0.5 from below
exit_short_condition = ta.crossover(z_score, -0.5)

// Stop loss condition if Z-score crosses above 3 or below -3
stop_loss_long = ta.crossover(z_score, 3)
stop_loss_short = ta.crossunder(z_score, -3)

// Enter and exit positions based on conditions
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)
if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")
if (stop_loss_long)
    strategy.close("Long")
if (stop_loss_short)
    strategy.close("Short")

// Plot the Z-score on the chart
plot(z_score, title="Z-score", color=color.blue, linewidth=2)

// Optional: Plot zero lines for reference
hline(0.5, "Upper Threshold", color=color.red)
hline(-0.5, "Lower Threshold", color=color.green)


Lebih banyak