La idea central de esta estrategia es comparar el promedio móvil de Hall (Hull Moving Average, HMA) con los valores de la línea K para generar una señal de compra y venta. Compra cuando el HMA está por encima de la línea K y vende cuando el HMA está por debajo de la línea K.
En primer lugar, la estrategia calcula el HMA de un período determinado a través de la función hma (). Luego, se obtiene el precio de apertura de la línea K anterior como referencia de comparación. Si el HMA es superior al precio de apertura de la línea K anterior, se genera una señal de compra; si el HMA es inferior al precio de apertura de la línea K anterior, se genera una señal de venta.
La condición de entrada de la estrategia es entrar en juego solo cuando el precio rompa el HMA en la dirección opuesta. Es decir, comprar solo cuando el precio rompa el HMA desde abajo; vender solo cuando el precio rompa el HMA desde arriba. Esto evita que los mercados convulsionados reactiven la señal.
La condición de salida de la estrategia es que el precio vuelva a caer al otro lado de la HMA. Por ejemplo, si el precio de compra cae por debajo de la HMA, el stop loss se vende.
En general, esta estrategia utiliza las características suaves de la HMA para identificar la dirección de la tendencia principal y generar señales. Al mismo tiempo, se requiere que los precios se rompan para filtrar las falsas señales y evitar ser atrapados repetidamente por los movimientos del mercado.
El uso de HMA en lugar de SMA permite identificar mejor las tendencias y filtrar las oscilaciones.
El mecanismo de ruptura puede reducir la probabilidad de que las posiciones se bloqueen y se abran repetidamente.
El uso de un precio de la línea K anterior en lugar de un juicio de precio actual evita el trazado de la curva retrospectiva.
Las reglas son sencillas y claras, adecuadas para la optimización de parámetros y el comercio de robots.
Aplicación flexible en cualquier variedad y ciclo, con universalidad.
La configuración incorrecta de los parámetros de HMA puede causar tendencias erróneas o ser demasiado sensible. Se pueden probar diferentes parámetros de ciclo para encontrar el valor óptimo.
Los indicadores individuales son propensos a ser re-ensayados dentro de la brecha de salida, y se puede considerar la combinación de otros indicadores para filtrar la señal.
El punto de parada está cerca de la HMA, por lo que es fácil que se vuelva a romper el bloqueo, y se puede alejar adecuadamente hasta el punto de resistencia de soporte.
Si no se puede determinar la dirección y la intensidad de la tendencia, considere agregar un indicador de clasificación de tendencias.
El punto de parada fijo causa una gran fluctuación en el riesgo de ganancias, se puede probar con el paro de pérdidas o la administración de fondos.
Esta estrategia es sencilla y práctica en su conjunto, y la idea central es clara. La dirección de la tendencia principal se determina con la HMA para romper las señales erróneas. Se puede evitar que los mercados de volatilidad abran repositorios repetidamente.
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SeaSide420. Any timeFrame/pair , Hull Moving Average vs Candle
//@version=4
strategy("Hull Moving Average vs Candle",shorttitle="HMA-vs-Candle",overlay=true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.cash_per_order,commission_value=1.00,slippage=1)
Period=input(title="Hull MA Period",type=input.integer,defval=50,minval=1)
Resolution=input(title="Candle Resolution", type=input.resolution,defval="D")
Price=input(title="Source of Price",type=input.source,defval=open)
HMA=hma(Price,Period)
Candle=security(syminfo.tickerid,Resolution,Price,barmerge.gaps_off,barmerge.lookahead_off)
change_color=HMA>Candle?color.green:color.red
plot1=plot(Candle,color=change_color,title="Candle Line",linewidth=2,transp=50)
plot2=plot(HMA[1],color=change_color,title="Hull MA Line",linewidth=2,transp=50)
fill(plot1,plot2,color=change_color,transp=50)
strategy.close("BUY",when=Price<HMA and HMA<Candle,comment="close buy entry")
strategy.close("SELL",when=Price>HMA and HMA>Candle,comment="close sell entry")
if (Price>HMA and HMA>Candle and Price>Price[1])
strategy.entry("BUY",strategy.long)
if (Price<HMA and HMA<Candle and Price<Price[1])
strategy.entry("SELL",strategy.short)
// /L'-,
// ,'-. /MM . . / L '-,
// . _,--dMMMM\ /MMM `.. / '-,
// : _,--, )MMMMMMMMM),. `QMM ,<> /_ '-,'
// ; ___,--. \MM( `-' )M//MM\ ` ,',.; .-'* ; .'
// | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' /
// | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,'
// | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ /
// | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___
// | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-.
// | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-.,
// | __ \`. | | | \ / _ |. . . . \ `-. F
// | ___ / \ | `| ' __ \ | /-' F . . . . \ '`
// | \ \ \ / | __ / \ | |,-' __,- J . . . . . \
// | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,'
// | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\
// | ___ \ \ | | ` __,--' /;;;;;;;;;;;;.
// | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\
// \ | | / | __,--' `--;;/ \;-'\
// \ | |/ __,--' / / \ \
// \ | __,--' / / \ \
// \|__,--' _,-;M-K, ,;-;\
// <;;;;;;;; '-;;;;
// ~ priceless artwork by SeaSide420