Strategi purata bergerak double HULL adalah strategi dagangan berdasarkan penunjuk purata bergerak HULL (HMA) yang dicipta oleh Alan HULL. Strategi ini menggunakan dua garis HMA, garis jangka panjang dan garis jangka pendek, untuk menentukan titik masuk dan keluar.
Formula pengiraan untuk HMA 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 sini, PDL mewakili tempoh jangka panjang, dan PDS mewakili tempoh jangka pendek. Strategi membandingkan nilai garis jangka pendek dan jangka panjang untuk menentukan syarat membeli dan menjual.
Strategi purata bergerak double HULL adalah strategi dagangan berdasarkan penunjuk purata bergerak HULL. Ia menggunakan persilangan garis HMA jangka pendek dan jangka panjang untuk menentukan titik masuk dan keluar. Strategi ini menawarkan kelebihan seperti penurunan kelewatan, kesederhanaan, dan penyesuaian yang tinggi. Walau bagaimanapun, ia juga membawa risiko yang berkaitan dengan turun naik pasaran, slippage dan latensi, dan bergantung pada satu penunjuk. Dalam aplikasi praktikal, strategi boleh diselaraskan dan dioptimumkan berdasarkan keadaan tertentu, menggabungkan penunjuk teknikal lain dan kaedah pengurusan risiko untuk meningkatkan kejayaan perdagangan dan keuntungan.
/*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)