
La idea central de esta estrategia es identificar la dirección de la tendencia del mercado en combinación con la línea media de Hull y la amplitud de la onda real (ATR) y entrar en el mercado después de la confirmación de la dirección de la tendencia. Concretamente, se calcula el diferencial entre la línea media de Hull en un período determinado y la línea media de Hull del período anterior.
Esta estrategia se basa principalmente en dos tipos de indicadores: la línea media de Hull y el ATR.
La línea media de Hull es un indicador de seguimiento de tendencias desarrollado por el comerciante de futuros estadounidense Alan Hull. La línea media de Hull es similar a la media móvil, pero la línea media de Hull tiene una mayor sensibilidad para capturar las tendencias de los cambios de precio más rápidamente. La estrategia tiene un parámetro ajustable hullLength para controlar la longitud del ciclo de la línea media de Hull, para determinar la dirección de la tendencia de los precios actuales mediante el cálculo de la diferencia entre el ciclo actual y el promedio de Hull del ciclo anterior.
ATR es el promedio verdadero rango, es decir, la amplitud real. Refleja la amplitud de las fluctuaciones diarias de los precios. Cuando la fluctuación aumenta, la amplitud real aumenta; cuando la fluctuación disminuye, la amplitud real disminuye.
En concreto, la lógica de la estrategia es la siguiente:
La estrategia tiene las siguientes ventajas:
La estrategia también tiene sus riesgos:
Resolución de las mismas:
El espacio para la optimización de esta estrategia es amplio y se puede comenzar principalmente en los siguientes aspectos:
Esta estrategia integra la capacidad de seguimiento de tendencias de la línea media de Hull y la capacidad de juicio de indicadores de calor de ATR, y al confirmar una tendencia, al mismo tiempo que selecciona un punto de entrada de tiempo positivo y con gran fluctuación, puede filtrar algunas señales no eficaces. La optimización de los parámetros de los indicadores y el uso de medios de gestión de riesgos pueden aumentar aún más la eficacia de la estrategia. En general, esta estrategia combina varios factores de seguimiento de tendencias y juicio de calor, que pueden obtener mejores resultados si los parámetros se ajustan y optimizan.
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) =>
if smoothing == "RMA"
rma(p, length)
else
if smoothing == "SMA"
sma(p, length)
else
if smoothing == "EMA"
ema(p, length)
else
wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
strategy.close("buy")
closeshort = n1>n2
if (closeshort)
strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
strategy.entry("sell", strategy.short, comment="SELL")