Strategi ini didasarkan pada sinyal crossover Hull Moving Average (HMA). Ini menghasilkan sinyal perdagangan ketika dua garis HMA dengan periode yang berbeda saling melintasi. HMA adalah indikator rata-rata bergerak canggih yang mengurangi lag melalui kombinasi khusus Weighted Moving Averages (WMA), memberikan sinyal tren pasar yang lebih cepat dan lebih halus.
Inti dari strategi ini terletak pada menangkap titik pembalikan tren pasar menggunakan HMA crossover dari periode yang berbeda. Perhitungan HMA melibatkan tiga langkah: pertama menghitung WMA setengah periode, kemudian menghitung WMA periode penuh, dan akhirnya menghitung WMA lain dengan periode yang sama dengan akar kuadrat dari periode asli menggunakan kombinasi khusus dari dua WMA pertama. Sinyal beli dihasilkan ketika HMA cepat (default 9 periode) melintasi di atas HMA lambat (default 16 periode), dan sinyal jual ketika HMA cepat melintasi di bawah HMA lambat.
Ini adalah strategi perdagangan kuantitatif berdasarkan crossover HMA, memberikan sinyal perdagangan yang lebih tepat waktu dengan mengurangi ketinggalan rata-rata bergerak tradisional. Desain strategi ringkas, mudah dimengerti dan diimplementasikan, tetapi membutuhkan perhatian terhadap kemampuan beradaptasi dengan lingkungan pasar dan manajemen risiko dalam aplikasi praktis. Melalui optimalisasi dan perbaikan terus-menerus, strategi ini memiliki potensi untuk menjadi sistem perdagangan yang kuat.
/*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)