
Strategi ini dibina berdasarkan Hull Moving Average Indicator untuk membina sistem perdagangan trend, membuat keputusan untuk melakukan lebih banyak shorting mengikut arah Hull Curve, dan merupakan strategi trend-tracking yang tipikal.
Strategi ini menggunakan purata bergerak Hull sebagai penunjuk teknikal utama. Purata bergerak Hull dikemukakan oleh pedagang Amerika Syarikat, Alan Hull pada tahun 2005 dan merupakan penambahbaikan pada asas purata bergerak, menggunakan fungsi akar kuadrat yang mengurangkan keterbelakangan purata bergerak.
Secara khusus, purata bergerak Hull mengandungi dua purata, satu adalah purata bergerak MA ((n) untuk tempoh n, dan yang lain adalah purata bergerak MA ((n/2) untuk tempoh n/2. Perbezaan antara dua purata membentuk kurva nilai perbezaan Hull, kemudian kira rata-rata bergerak sendiri pada kurva nilai perbezaan Hull, iaitu kurva Hull.
Apabila kurva Hull naik, memakai purata bergerak jangka panjang di atas rata-rata bergerak jangka pendek, untuk mencetuskan isyarat ganda; apabila kurva Hull turun, memakai purata bergerak jangka panjang di bawah rata-rata bergerak jangka pendek, untuk mencetuskan isyarat kosong.
Strategi ini menetapkan tempoh Hull n sebagai 16, mengira n/2 = purata bergerak 8 masa, n = purata bergerak 16 masa, dan mengira keluk Hull yang berbeza antara keduanya, kemudian mengira keluk Hull sendiri untuk n = 4 masa bergerak ((ambil akar kuadrat n = 4). Apabila Hull melintasi lebih banyak, kosong apabila melintasi lebih rendah.
Berbanding dengan purata bergerak biasa, purata bergerak Hull mempunyai kelebihan berikut:
Mengurangkan ketinggalan. Menggunakan fungsi akar kuadrat, kurva Hull lebih dekat dengan harga, dapat menangkap perubahan harga lebih cepat.
Mengurangkan penyeberangan palsu. Rata-rata bergerak tradisional cenderung menghasilkan lebih banyak penyeberangan palsu, manakala kurva Hull dapat menyaring beberapa kebisingan dan mengelakkan perdagangan yang tidak perlu.
parameter kurang. Hull curve hanya memerlukan satu parameter n, untuk memudahkan pengoptimuman, dan sistem dwi-sempit memerlukan pengoptimuman dua parameter.
Boleh disesuaikan. Nilai n bagi keluk Hull boleh disesuaikan mengikut pasaran, boleh disesuaikan mengikut kitaran, sesuai dengan varieti yang berbeza.
Kekuatan sistematik. Kekuatan kurva Hull, mengelakkan pilihan buatan, mengikuti keserasian sistem perdagangan mekanikal.
Walaupun mempunyai banyak kelebihan berbanding sistem purata bergerak, sistem Hull mempunyai risiko berikut:
Hull sistem sebagai trend mengikuti strategi, mudah terhenti apabila trend berubah secara drastik.
Mudah menghasilkan perdagangan yang kerap. Ciri responsif Hull Curve meningkatkan frekuensi perdagangan, mudah untuk berdagang berlebihan.
parameters mudah dioptimumkan terlalu banyak. Hanya satu parameter n yang mudah menyebabkan pengoptimuman berlebihan, risiko curve fitting.
Kesan berbeza-beza mengikut jenis. Sistem Hull tidak berfungsi dengan baik untuk beberapa jenis yang mempunyai kadar turun naik yang tinggi, perlu menyesuaikan parameter untuk jenis tersebut.
Berdasarkan batasan strategi purata bergerak Hull di atas, ia boleh dioptimumkan dari aspek berikut:
Gabungan dengan penapis isyarat perdagangan penunjuk tambahan, mengelakkan penembusan palsu. Boleh menyertai trend penilaian penunjuk MACD, KD dan sebagainya.
Tambah strategi hentikan kerugian, mengawal kerugian tunggal. Seperti menetapkan hentikan bergerak atau hentikan hentikan
Pilihan untuk mengoptimumkan parameter n, untuk mengelakkan pengoptimuman berlebihan. Anda boleh menggunakan kaedah analisis maju berjalan untuk mengoptimumkan bergulir.
Parameter pengoptimuman dinamik yang digabungkan dengan teknologi pembelajaran mesin. Nilai optimum parameter n yang diramalkan menggunakan model seperti RNN.
Pengoptimuman parameter subspesies. Menggunakan pembelajaran mesin untuk menyesuaikan parameter yang berbeza.
Mengoptimumkan pengurusan kedudukan, mengurangkan frekuensi perdagangan. Kaedah seperti peraturan bahagian tetap boleh digunakan.
Strategi Hull Moving Average adalah strategi pengesanan trend yang tipikal. Ia mempunyai kelebihan berbanding moving averages, tetapi terdapat juga masalah seperti terlalu optimum, perdagangan yang kerap. Kita boleh memperbaiki strategi ini dengan cara pengoptimuman parameter, strategi hentian, pengurusan kedudukan dan sebagainya.
/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
strategy.close_all()