Strategi ini didasarkan pada indikator Hull Moving Average yang ditemukan oleh Alan Hull, yang termasuk dalam strategi trend following. Hull MA dapat mengurangi lag dari moving average dan merespons perubahan harga lebih cepat. Strategi ini menggunakan Hull MA untuk menentukan arah tren dan filter tambahan untuk menghasilkan sinyal perdagangan.
Menghitung jangka pendek dan jangka panjang Hull MA. jangka pendek untuk arah perdagangan tertentu, jangka panjang untuk tren keseluruhan.
Ketika periode pendek Hull MAs menyeberang, menentukan pembalikan tren. Filter dengan arah tren jangka panjang.
Tambahkan harga penembusan melalui kondisi Hull MA untuk memastikan penembusan yang sukses.
Tambahkan filter tingkat perubahan harga untuk menghindari entri breakout yang tidak diinginkan.
Tetapkan stop loss dan ambil keuntungan untuk mengendalikan risiko.
Dibandingkan dengan rata-rata bergerak sederhana, keuntungan dari strategi ini meliputi:
Hull MA merespon perubahan harga lebih cepat, mampu menangkap perubahan tren tepat waktu.
Struktur Dual Hull MA dapat menentukan tren pada jangka waktu panjang dan pendek.
Filter price breakout dan change rate membantu menghindari breakout palsu.
Stop loss dinamis dan mengambil keuntungan mengunci keuntungan dan mengontrol risiko.
Risiko dari strategi ini:
Pengaturan parameter yang tidak benar dapat melewatkan perubahan tren harga.
Penilaian tren keseluruhan yang salah dapat menyebabkan perdagangan yang bertentangan dengan tren.
Stop loss yang diatur terlalu lebar dapat menyebabkan kerugian besar.
Perdagangan yang terlalu sering meningkatkan biaya transaksi dan risiko slippage.
Hal ini dapat dioptimalkan dalam aspek berikut:
Mengoptimalkan periode Hull MA untuk menyeimbangkan sensitivitas dan kelancaran.
Mengoptimalkan parameter masuk dan keluar untuk menemukan nilai optimal.
Uji ketahanan parameter pada instrumen yang berbeda untuk meningkatkan kemampuan beradaptasi.
Menggabungkan volume untuk menghindari risiko divergensi.
Tambahkan kondisi untuk meningkatkan stabilitas.
Secara keseluruhan, strategi ini memanfaatkan responsif Hull MA untuk mengikuti tren tepat waktu, dan memiliki profitabilitas yang kuat di bawah pengendalian risiko.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-12 22:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //SeaSide420 strategy("SS420FX", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) q=input(title="HullMA Short",defval=14) z=input(title="HullMA Long",defval=14) dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001) SL = input(defval=-50000.00, title="Stop Loss in $", type=float, step=1) TP = input(defval=100000.00, title="Target Point in $", type=float, step=1) ot=1 n2ma=2*wma(close,round(q/2)) nma=wma(close,q) diff=n2ma-nma sqn=round(sqrt(q)) n2ma1=2*wma(close[1],round(q/2)) nma1=wma(close[1], q) diff1=n2ma1-nma1 sqn1=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) z2ma=2*wma(close[11],round(z/2)) zma=wma(close[11],z) ziff=n2ma-nma zqn=round(sqrt(z)) z2ma1=2*wma(close[12],round(z/2)) zma1=wma(close[12], z) ziff1=n2ma1-nma1 zqn1=round(sqrt(z)) z1=wma(diff,sqn) z2=wma(diff1,sqn) z1e=z1>z2?green:black z2e=z1>z2?black:red z3e=z1>z2?green:red n1e=plot(z1, title="HMA1", color=z1e, linewidth=2, offset=2) n2e=plot(z2, title="HMA2", color=z2e, linewidth=2, offset=2) fill(n1e, n2e, color=z3e, transp=80) confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1]) closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP if (closelong) strategy.close("Long") closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP if (closeshort) strategy.close("Short") longCondition = n1>n2 and z1>z2 and strategy.opentrades<ot and confidence>dt and close>n1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and z1<z2 and strategy.opentrades<ot and confidence<dt and close<n1 if (shortCondition) strategy.entry("Short",strategy.short)