Sumber dimuat naik... memuat...

Dual Hull Moving Average Crossover Strategi Kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-11-29 16:53:05
Tag:HMAMAWMA

img

Ringkasan

Strategi ini berdasarkan isyarat silang Hull Moving Average (HMA). Ia menghasilkan isyarat perdagangan apabila dua garis HMA dengan tempoh yang berbeza bersilang. HMA adalah penunjuk purata bergerak maju yang mengurangkan kelewatan melalui gabungan khas Purata Bergerak Bertimbang (WMA), memberikan isyarat trend pasaran yang lebih cepat dan lebih lancar.

Prinsip Strategi

Inti strategi ini terletak pada menangkap titik pembalikan trend pasaran menggunakan persilangan HMA dari tempoh yang berbeza. Pengiraan HMA melibatkan tiga langkah: pertama mengira WMA separuh tempoh, kemudian mengira WMA tempoh penuh, dan akhirnya mengira WMA lain dengan tempoh yang sama dengan akar kuadrat tempoh asal menggunakan gabungan khas dua WMA pertama. Isyarat beli dihasilkan apabila HMA cepat (default 9 tempoh) melintasi di atas HMA perlahan (default 16 tempoh), dan isyarat jual apabila HMA cepat melintasi di bawah HMA perlahan.

Kelebihan Strategi

  1. Jawapan Isyarat Cepat: HMA mengurangkan ketinggalan purata bergerak tradisional dengan cara pengiraan khasnya, menangkap perubahan trend pasaran dengan lebih cepat.
  2. Penapisan Bunyi: Pengesahan silang antara dua purata bergerak secara berkesan menapis bunyi bising pasaran, mengurangkan isyarat palsu.
  3. Parameter Fleksibel: Strategi ini membolehkan penyesuaian tempoh baris cepat dan perlahan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza.
  4. Visualisasi yang jelas: Strategi ini dengan jelas memaparkan kedua-dua purata bergerak dan isyarat perdagangan pada carta untuk analisis dan pengoptimuman yang mudah.

Risiko Strategi

  1. Risiko pasaran yang berbelit-belit: Perpindahan yang kerap di pasaran sampingan boleh menyebabkan perdagangan berlebihan dan kerugian berturut-turut.
  2. Risiko Lag: Walaupun HMA mempunyai lag yang kurang daripada purata bergerak tradisional, beberapa lag masih wujud, berpotensi kehilangan titik masuk yang optimum.
  3. Sensitiviti Parameter: Gabungan parameter yang berbeza boleh membawa kepada hasil perdagangan yang berbeza dengan ketara, yang memerlukan pengoptimuman yang teliti.
  4. Risiko pecah palsu: Pasaran mungkin menunjukkan pecah palsu, yang membawa kepada isyarat perdagangan yang salah.

Arahan Pengoptimuman Strategi

  1. Memperkenalkan Penapis Trend: Tambah ADX atau penunjuk kekuatan trend untuk berdagang hanya dalam trend yang jelas.
  2. Mengoptimumkan Mekanisme Stop Loss: Reka bentuk stop loss dinamik berdasarkan ATR atau turun naik.
  3. Tambah Syarat Pengesahan Perdagangan: Masukkan penunjuk jumlah dan momentum sebagai isyarat pengesahan tambahan.
  4. Penyesuaian Parameter: Membangunkan mekanisme penyesuaian parameter dinamik berdasarkan turun naik pasaran.
  5. Pengoptimuman Pengurusan Risiko: Tambah saiz kedudukan dan modul pengurusan wang.

Ringkasan

Ini adalah strategi perdagangan kuantitatif berdasarkan persilangan HMA, menyediakan isyarat perdagangan yang lebih tepat pada masanya dengan mengurangkan kelewatan purata bergerak tradisional. Reka bentuk strategi ringkas, mudah difahami dan dilaksanakan, tetapi memerlukan perhatian terhadap kebolehan menyesuaikan diri dengan persekitaran pasaran dan pengurusan risiko dalam aplikasi praktikal. Melalui pengoptimuman dan peningkatan yang berterusan, strategi ini berpotensi menjadi sistem perdagangan yang kukuh.


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

//@version=5
strategy("Hull Moving Average Crossover", overlay=true)


fastLength = input.int(9, "Fast HMA Length", minval=1)
slowLength = input.int(16, "Slow HMA Length", minval=1)


hma(src, length) =>
    wma1 = ta.wma(src, length / 2)
    wma2 = ta.wma(src, length)
    ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length)))


fastHMA = hma(close, fastLength)
slowHMA = hma(close, slowLength)


plot(fastHMA, color=color.blue, title="Fast HMA")
plot(slowHMA, color=color.red, title="Slow HMA")


longCondition = ta.crossover(fastHMA, slowHMA)
shortCondition = ta.crossunder(fastHMA, slowHMA)


if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)


plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

Berkaitan

Lebih lanjut