A estratégia de média móvel dupla HULL é uma estratégia de negociação baseada no indicador de média móvel HULL criado por Alan HULL. A estratégia usa duas médias móveis HULL, uma linha longa e uma linha curta, para julgar o momento de comprar e vender. A média móvel HULL é uma média móvel melhorada, reduzindo o atraso por meio de uma média ponderada sobre o preço.
A fórmula de cálculo da média móvel HULL é a seguinte:
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)))
Dentre eles, o PDL representa o período longo e o PDS representa o período curto. A estratégia julga as condições de compra e venda comparando os valores das linhas de curto e longo prazo.
A estratégia de média móvel HULL dupla é uma estratégia de negociação baseada na média móvel HULL para determinar o momento de compra e venda, comparando os pontos de interseção das linhas de curto e longo prazo. A estratégia tem a vantagem de reduzir o atraso, ser simples, fácil de entender e altamente personalizável, mas também apresenta o risco de turbulência, deslizamento e atraso no mercado e dependência de um único indicador.
/*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)