Strategi Dagangan Purata Bergerak Dinamik
Gambaran Keseluruhan
Strategi ini mengira Purata Bergerak Dinamik dan menggunakannya sebagai isyarat dagangan. Ia membuka posisi beli apabila harga saham meningkat dan menutup posisi apabila harga menurun. Strategi ini menggabungkan kelebihan indikator momentum dan purata bergerak, bertujuan untuk mengesan trend jangka sederhana harga saham dan mencapai pulangan yang stabil.
Prinsip
Strategi ini berdasarkan tiga varian Purata Bergerak Hull (HMA), termasuk Purata Bergerak Hull biasa (HMA), Purata Bergerak Hull Berwajaran (WHMA), dan Purata Bergerak Hull Eksponen (EHMA). Berdasarkan kod, strategi membenarkan pengguna bertukar antara ketiga-tiga Hull MA ini.
Formula pengiraan HMA adalah:
HMA = WMA(2*WMA(close,n/2)-WMA(close,n),sqrt(n))
di mana WMA mewakili Purata Bergerak Berwajaran dan n mewakili parameter tempoh. Berbanding dengan SMA (Purata Bergerak Mudah), HMA bertindak balas lebih pantas terhadap perubahan harga.
Formula pengiraan WHMA dan EHMA adalah serupa dengan HMA. Strategi menggunakan HMA sebagai pilihan lalai.
Selepas mengira HMA, strategi menggunakan nilai garis tengah HMA sebagai isyarat dagangan. Apabila harga melintasi ke atas garis tengah HMA, posisi beli dibuka; apabila harga melintasi ke bawah garis tengah HMA, posisi ditutup. Dengan cara ini, ia menggunakan garis tengah HMA untuk mengesan trend jangka sederhana harga dan menjana keuntungan.
Kelebihan
Berbanding dengan strategi purata bergerak tradisional, strategi ini mempunyai kelebihan berikut:
- Kelajuan tindak balas lebih pantas, keupayaan menjejak trend lebih kuat, membolehkan kemasukan dan henti rugi tepat pada masanya
- Mengurangkan kekerapan dagangan yang tidak perlu, mengelakkan pembelian pada harga tinggi dan penjualan pada harga rendah
- Konfigurasi parameter Hull MA yang fleksibel, mampu menyesuaikan dengan pelbagai persekitaran pasaran
- Boleh bertukar antara HMA, WHMA dan EHMA, memperluaskan skop aplikasi
Risiko
Strategi ini juga mempunyai beberapa risiko:
- Dalam pasaran rangka, ia mudah menghasilkan isyarat tidak sah yang kerap, meningkatkan kekerapan dagangan dan kos gelinciran
- Penetapan parameter Hull MA yang tidak sesuai mungkin terlepas titik pembalikan trend, meningkatkan risiko kerugian
- Pemilihan saham yang tidak sesuai, seperti memilih saham dengan kecairan rendah, mungkin menghadapi gelinciran yang besar
Langkah Mengatasi:
- Optimumkan parameter Hull MA untuk mencari nilai terbaik
- Gabungkan dengan indikator lain untuk mengenal pasti titik pembalikan trend
- Pilih saham dengan kecairan baik dan jumlah dagangan harian yang tinggi
Hala Tuju Pengoptimuman
Strategi ini juga boleh dioptimumkan dari aspek berikut:
- Menambah penapis volum dagangan atau indikator lain untuk memastikan kebolehpercayaan isyarat dagangan
- Menggabungkan indikator lain seperti MACD, KDJ untuk menentukan masa masuk, meningkatkan kadar kemenangan
- Melaraskan parameter tempoh Hull MA berdasarkan data ujian semula dagangan sebenar
- Bertukar kepada WHMA atau EHMA untuk menguji varian Hull yang paling sesuai untuk saham tertentu
- Menambah strategi henti rugi untuk mengawal kerugian setiap dagangan
Kesimpulan
Strategi dagangan purata bergerak dinamik ini menggabungkan kelebihan tindak balas pantas Hull MA, berkesan menjejak trend jangka sederhana harga saham, membuka posisi beli dan henti rugi pada masa yang sesuai, dengan prestasi ujian semula sejarah yang baik. Dengan pengoptimuman lanjut pada tetapan parameter dan skop pemilihan saham, strategi ini boleh mencapai pulangan lebihan yang lebih stabil. Ia adalah strategi kuantitatif yang mudah dilaksanakan dan mempunyai risiko terkawal.
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Position Investing by SirSeff', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0)
strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all'])
strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all- 1

