La estrategia de las medias móviles HULL es una estrategia de negociación basada en el indicador de medias móviles HULL creado por Alan HULL. La estrategia utiliza dos medias móviles HULL, una línea larga y una línea corta, para determinar el momento de comprar y vender. La media móvil HULL es una media móvil mejorada que reduce el atraso al ponderar la media de los precios.
La fórmula para calcular el promedio móvil HULL es la siguiente:
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)))
Dentro de ellos, PDL representa el período largo y PDS representa el período corto. La estrategia determina las condiciones de compra y venta comparando los valores de las líneas corta y larga.
La estrategia de promedio móvil HULL doble es una estrategia de negociación basada en promedios móviles HULL para determinar el momento de comprar y vender mediante la comparación de las líneas de corto plazo y las líneas de largo plazo. La estrategia tiene la ventaja de reducir el retraso, ser simple y fácil de entender y altamente personalizable, pero también existe el riesgo de fluctuaciones, deslizamientos y retrasos en el mercado y la dependencia de un solo indicador. En la práctica, la estrategia se puede ajustar y optimizar en función de las circunstancias, combinada con otros indicadores técnicos y métodos de gestión de riesgos para mejorar el éxito y la rentabilidad de las operaciones.
/*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)