Semua Tentang Strategi Dagangan Momentum dengan Stop Loss untuk Emas

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

img

Ringkasan

Strategi ini mengira penyimpangan harga emas dari purata bergerak eksponensial 21 hari untuk menentukan situasi overbought dan oversold di pasaran. Ia menggunakan pendekatan perdagangan momentum dengan mekanisme stop loss untuk mengawal risiko apabila penyimpangan mencapai ambang tertentu dari segi penyimpangan standard.

Logika Strategi

  1. Mengira EMA 21 hari sebagai garis asas
  2. Mengira penyimpangan harga daripada EMA
  3. Menstandarisasi penyimpangan ke dalam Z-Score
  4. Pergi panjang apabila Z-Score melintasi lebih daripada 0.5; Pergi pendek apabila Z-Score melintasi di bawah -0.5
  5. Tutup kedudukan apabila Z-Score jatuh semula ke ambang 0.5/-0.5
  6. Tetapkan stop loss apabila Z-Score melebihi 3 atau di bawah -3

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. EMA sebagai sokongan/tahan dinamik untuk menangkap trend
  2. Stddev dan Z-Score secara berkesan mengukur tahap overbought / oversold, mengurangkan isyarat palsu
  3. EMA eksponen memberi lebih banyak berat kepada harga baru-baru ini, menjadikannya lebih sensitif
  4. Z-Score standardisasi deviation for unified judgment rules
  5. Mekanisme Stop Loss mengawal risiko dan had kerugian

Analisis Risiko

Beberapa risiko yang perlu dipertimbangkan:

  1. EMA boleh menghasilkan isyarat yang salah apabila jurang harga atau pecah
  2. Sempadan Stddev / Z-Score memerlukan penyesuaian yang betul untuk prestasi terbaik
  3. Tetapan stop loss yang tidak betul boleh menyebabkan kerugian yang tidak perlu
  4. Peristiwa Black Swan boleh mencetuskan stop loss dan peluang trend yang terlepas

Penyelesaian:

  1. Mengoptimumkan parameter EMA untuk mengenal pasti trend utama
  2. Backtest untuk mencari ambang Sddev/Z-Score yang optimum
  3. Rasionaliti kehilangan hentian ujian dengan hentian belakang
  4. Penilaian semula pasaran selepas peristiwa, menyesuaikan strategi dengan sewajarnya

Arahan pengoptimuman

Beberapa cara untuk meningkatkan strategi:

  1. Gunakan penunjuk turun naik seperti ATR dan bukannya Stddev mudah untuk mengukur selera risiko
  2. Uji pelbagai jenis purata bergerak untuk garis asas yang lebih baik
  3. Mengoptimumkan parameter EMA untuk mencari tempoh terbaik
  4. Mengoptimumkan ambang Z-Score untuk peningkatan prestasi
  5. Tambahkan hentian berasaskan turun naik untuk kawalan risiko yang lebih pintar

Kesimpulan

Secara keseluruhan ini adalah strategi trend berikut yang kukuh. Ia menggunakan EMA untuk menentukan arah trend dan penyimpangan berstandar untuk mengenal pasti dengan jelas tahap overbought / oversold untuk isyarat perdagangan. kawalan stop loss yang munasabah risiko sambil membiarkan keuntungan berjalan. penyesuaian parameter lanjut dan menambah syarat boleh menjadikan strategi ini lebih mantap untuk aplikasi praktikal.


/*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 lanjut