Strategi HULL Moving Average adalah strategi perdagangan berdasarkan HULL Moving Average Indicator yang dicipta oleh Alan HULL. Strategi ini menggunakan dua HULL Moving Average, satu garis panjang dan satu garis pendek, untuk menilai masa pembelian dan penjualan. HULL Moving Average adalah purata bergerak yang diperbaiki untuk mengurangkan ketinggalan dengan memberi berat kepada harga purata.
Rumus untuk HULL Moving Average adalah seperti berikut:
HmaL = wma(2*wma(close, round(PDL/2)) - wma(close, PDL), round(sqrt(PDL)))
HmaS = wma(2*wma(close, round(PDS/2)) - wma(close, PDS), round(sqrt(PDS)))
Di antaranya, PDL mewakili kitaran jangka panjang dan PDS mewakili kitaran jangka pendek. Strategi menilai syarat pembelian dan penjualan dengan membandingkan nilai garis pendek dan panjang.
Strategi HULL Moving Average Dual adalah strategi perdagangan berdasarkan HULL Moving Average untuk menentukan masa pembelian dan penjualan dengan membandingkan titik persilangan garis pendek dan garis panjang. Strategi ini mempunyai kelebihan untuk mengurangkan keterbelakangan, mudah difahami, dan sangat disesuaikan, tetapi juga berisiko terhadap guncangan pasaran, tergelincir dan kelewatan, dan bergantung pada satu indikator. Dalam aplikasi praktikal, strategi ini boleh disesuaikan dan dioptimumkan mengikut keadaan tertentu, digabungkan dengan petunjuk teknikal lain dan kaedah pengurusan risiko, untuk meningkatkan kejayaan dan keuntungan perdagangan.
/*backtest
start: 2023-09-07 00:00:00
end: 2023-09-14 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Credit Indicator from KIVANC
// author and idea: KIVANC @fr3762 on twitter
// creator: Alan HULL
//
strategy("Double HULL Moving Average Strategy", overlay=true)
PDL=input(title="LongerPeriod", defval=21, minval=1,maxval=500)
PDS=input(title="ShorterPeriod", defval=8, minval=1,maxval=500)
// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2019, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
HmaL=wma(2*wma(close,round(PDL/2))-wma(close,PDL),round(sqrt(PDL)))
HmaS=wma(2*wma(close,round(PDS/2))-wma(close,PDS),round(sqrt(PDS)))
plot(HmaL,color=red, linewidth=2)
plot(HmaS,color=blue, linewidth=2)
Buy = HmaS > HmaL
Sell = HmaS < HmaL
strategy.entry("Buy",true,when=window() and Buy)
strategy.close_all(when=window() and Sell)