
Strategi ini didasarkan pada indikator Hull Moving Average untuk membangun sistem perdagangan trend tracking. Keputusan untuk melakukan lebih banyak shorting sesuai dengan arah kurva Hull adalah salah satu strategi trend tracking yang khas.
Strategi ini menggunakan Hull Moving Average sebagai indikator teknis utama. Hull Moving Average, yang dikemukakan oleh trader Amerika Alan Hull pada tahun 2005, adalah perbaikan pada dasar Moving Average, yang menggunakan fungsi akar kuadrat untuk mengurangi keterlambatan Moving Average.
Secara khusus, Hull Moving Average terdiri dari dua rata-rata, satu adalah rata-rata bergerak MA ((n) untuk periode n, dan yang lain adalah rata-rata bergerak MA ((n/2) untuk periode n/2. Perbedaan antara dua rata-rata membentuk kurva defisit Hull, kemudian menghitung rata-rata bergerak sendiri dari kurva defisit Hull, yang menghasilkan kurva Hull.
Ketika Hull curve naik, memakai long term moving average di atas representative short term moving average, untuk memicu sinyal multi; ketika Hull curve turun, memakai long term moving average di bawah representative short term moving average, untuk memicu sinyal kosong.
Strategi ini menetapkan periode Hull n menjadi 16, menghitung masing-masing n/2 = rata-rata bergerak 8 periode, n = rata-rata bergerak 16 periode, dan menghitung kurva Hull yang berbeda dari keduanya, kemudian menghitung kurva Hull untuk rata-rata bergerak n = 4 periode sendiri ((mengambil akar kuadrat n = 4). Lakukan lebih banyak saat melintasi kurva Hull, kosongkan saat melintasi.
Hull Moving Average memiliki beberapa keunggulan dibandingkan Moving Average biasa:
Mengurangi keterlambatan. Menggunakan fungsi akar kuadrat, kurva Hull lebih dekat dengan harga, dapat menangkap perubahan harga lebih cepat.
Mengurangi penyeberangan palsu. Rata-rata bergerak tradisional cenderung menghasilkan lebih banyak penyeberangan palsu, sementara kurva Hull dapat menyaring beberapa kebisingan dan menghindari transaksi yang tidak perlu.
parameter kurang. Hull hanya membutuhkan satu parameter untuk optimalisasi, sedangkan sistem dua-equilibrium membutuhkan dua parameter untuk optimalisasi.
Dapat disesuaikan. Nilai n dari kurva Hull dapat disesuaikan dengan pasar, dapat disesuaikan dengan siklus, dan dapat disesuaikan dengan varietas yang berbeda.
Kekuatan sistematis. Kekuatan sistematis dari Hull Curve, menghindari pilihan manual, mengikuti konsistensi sistem perdagangan mekanis.
Meskipun sistem Hull memiliki banyak kelebihan dibandingkan sistem moving average, namun masih ada risiko berikut:
Keterbatasan dari strategi trend tracking itu sendiri. Sistem Hull sebagai strategi trend tracking, mudah rusak ketika tren berubah drastis.
Fitur responsif dari Hull Curve meningkatkan frekuensi transaksi, mudah untuk overtrading.
parameters mudah dioptimalkan. Hanya ada satu parameter n yang mudah menyebabkan overoptimalisasi, yaitu risiko curve fitting.
Efeknya bervariasi dari varietas ke varietas. Sistem Hull tidak bekerja dengan baik pada beberapa varietas dengan tingkat fluktuasi tinggi, dan parameter harus disesuaikan dengan varietas.
Berdasarkan keterbatasan strategi Hull Moving Average di atas, optimasi dapat dilakukan dari:
Kombinasi dengan indikator tambahan untuk memfilter sinyal perdagangan, menghindari false breakout. Dapat bergabung dengan indikator MACD, KD dan lain-lain untuk menilai tren.
Menambahkan strategi stop loss, mengendalikan kerugian tunggal. Misalnya, mengatur stop loss bergerak atau stop loss yang tergantung.
Optimalkan parameter n untuk menghindari overoptimisasi. Optimalisasi scrolling dapat dilakukan dengan menggunakan metode analisa walk forward.
Parameter optimasi dinamis dengan teknologi pembelajaran mesin. Menggunakan model seperti RNN untuk memprediksi parameter optimal n.
Optimalisasi parameter subvarietas. Menggunakan pembelajaran mesin untuk optimalisasi pencocokan parameter varietas yang berbeda.
Mengoptimalkan manajemen posisi, mengurangi frekuensi transaksi.
Strategi Hull Moving Average adalah strategi pelacakan tren yang khas. Ini memiliki keunggulan dibandingkan dengan moving average, tetapi ada juga masalah dengan over-optimisasi, perdagangan yang sering, dan lain-lain. Kita dapat memperbaiki strategi ini dengan metode optimasi parameter, strategi stop loss, manajemen posisi, dan lain-lain.
/*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()