Strategi Crossover Purata Bergerak Eksponensial Berganda

Penulis:ChaoZhang, Tarikh: 2023-11-23 17:34:06
Tag:

img

Ringkasan

Dual Exponential Moving Average Crossover Strategy adalah strategi trend yang biasa. Ia menggunakan salib emas dan salib mati Double Exponential Moving Averages (DEMA) dengan parameter yang berbeza untuk menentukan trend pasaran dan membuat kedudukan panjang dan pendek yang sepadan.

Logika Strategi

Strategi ini menggunakan 3 DEMA secara serentak dengan parameter yang berbeza: DEMA ((8), DEMA ((20) dan DEMA ((63).

  • DEMA (8) bertindak balas paling cepat untuk menangkap trend jangka pendek;

  • DEMA(20) bergerak sedikit lebih perlahan untuk mengenal pasti trend jangka sederhana;

  • DEMA ((63) bertindak balas paling perlahan untuk menilai arah trend jangka panjang.

Apabila garis cepat DEMA ((8) melintasi di atas garis sederhana DEMA ((20) dan garis perlahan DEMA ((63), ia menunjukkan bahawa pasaran berpusing dari bawah ke atas, kedudukan panjang harus dibuat. Apabila DEMA ((8) melintasi di bawah DEMA ((20) dan DEMA ((63), ia menunjukkan bahawa pasaran berpusing dari atas ke bawah, kedudukan pendek harus dibuat.

Analisis Kelebihan

Berbanding dengan purata bergerak tunggal, purata bergerak eksponensial berganda lebih sensitif terhadap perubahan harga dan dapat mengesan titik perubahan trend lebih awal.

Gabungan garis DEM pelbagai jangka masa meningkatkan kualiti isyarat dagangan dan mengelakkan pecah palsu. Pada masa yang sama, strategi hanya menghasilkan isyarat apabila tiga garis bersilang, mengelakkan kekerapan dagangan yang berlebihan.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Lebih sedikit isyarat silang dari tiga garis mungkin kehilangan beberapa peluang perdagangan.
  2. Garis-garis DEM yang melintasi kelewatan mungkin gagal bertindak balas terhadap perubahan harga tepat pada masanya apabila pasaran turun naik dengan ganas.
  3. Ia tidak dapat mengatasi pasaran yang besar tanpa trend dengan berkesan.

Risiko boleh ditingkatkan dan dikawal dengan mengoptimumkan parameter, menambah keadaan penapis dll.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dari aspek berikut:

  1. Mengoptimumkan parameter purata bergerak untuk menjadikannya lebih sesuai dengan ciri pasaran yang berbeza.
  2. Tambah penapis seperti kelantangan, volatiliti untuk mengelakkan isyarat yang salah.
  3. Gabungkan indikator lain seperti MACD, KDJ untuk menapis isyarat palsu.
  4. Tambah strategi stop loss untuk mengawal kerugian tunggal.
  5. Mengoptimumkan pengurusan kedudukan untuk menjadikan nisbah keuntungan lebih besar daripada nisbah kerugian.

Ringkasan

Strategi crossover DEMA mempunyai idea keseluruhan yang jelas. Dengan menggabungkan DEMA pelbagai jangka masa, ia dapat menentukan arah trend pasaran dengan berkesan dan merupakan strategi trend berikut yang tipikal. Strategi dapat ditingkatkan dengan pengoptimuman parameter, menambah penapis, pengurusan stop loss dan lain-lain mengikut keperluan sebenar, untuk mendapatkan hasil strategi yang lebih baik.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 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/
// © Noldo

//@version=4
//Quoted by Author HighProfit

//Lead-In
strategy("Double Exponential Moving Average 8-20-63 Strategy", 
         shorttitle="DEMA-8-20-63", 
         overlay=true,
         max_bars_back = 5000,
         initial_capital=100000, 
         max_bars_back = 5000,
         default_qty_type=strategy.percent_of_equity, 
         default_qty_value=100, 
         commission_type=strategy.commission.percent, 
         commission_value=0.1,
         pyramiding = 0)

short = input(8, minval=1)
srcShort = input(ohlc4, title="Source Dema 1")

long = input(20, minval=1)
srcLong = input(low, title="Source Dema 2")

long2 = input(63, minval=1)
srcLong2 = input(close, title="Source Dema 3")
e1 = ema(srcShort, short)
e2 = ema(e1, short)
dema1 = 2 * e1 - e2
plot(dema1, color=color.green, linewidth=2)

e3 = ema(srcLong, long)
e4 = ema(e3, long)
dema2 = 2 * e3 - e4
plot(dema2, color=color.blue, linewidth=2)

e5 = ema(srcLong2, long2)
e6 = ema(e5, long2)
dema3 = 2 * e5 - e6
plot(dema3, color=color.black, linewidth=2)

longC  = dema1 > dema2 and dema1 > dema3
shortC = dema1 < dema2 and dema1 < dema3 

alertlong  = longC and  not longC[1]
alertshort = shortC and not shortC[1]


strategy.entry("Long" , strategy.long , when = longC ,comment="Long")
strategy.entry("Short", strategy.short, when = shortC,comment="Short")

// Alerts 

alertcondition(longC  , title='Long' , message=' Buy  Signal ')
alertcondition(shortC , title='Short', message=' Sell Signal ')



Lebih lanjut