La idea central de esta estrategia es comparar el Hull Moving Average (HMA) con los valores de las velas para generar señales de compra y venta.
En primer lugar, la estrategia calcula HMA de un cierto período utilizando la función hma (). Luego obtiene el precio de apertura de la vela anterior como referencia. Si HMA es mayor que el precio de apertura de la vela anterior, se genera una señal de compra. Si HMA es menor que el precio de apertura de la vela anterior, se genera una señal de venta.
Las condiciones de entrada son que el precio necesita romper HMA en dirección inversa antes de entrar en el mercado. Eso significa que comprará solo cuando el precio se rompa por encima de HMA desde abajo. Vendrá solo cuando el precio se rompe por debajo de HMA desde arriba. Esto evita ser golpeado por los mercados oscilantes.
Las condiciones de salida son para detener la pérdida cuando el precio vuelve a caer al otro lado de la HMA. Por ejemplo, si el precio cae por debajo de la HMA después de comprar, se detendrá la venta con pérdida.
En resumen, esta estrategia identifica la dirección de tendencia principal utilizando la suavidad de HMA para generar señales. Mientras tanto, requiere una ruptura de precios para filtrar señales falsas y evitar ser golpeado por el ruido del mercado.
El uso de HMA en lugar de SMA puede identificar mejor las tendencias y filtrar el ruido.
El mecanismo de escape puede reducir la probabilidad de quedar atrapados y abrir posiciones repetitivas.
La adopción del precio anterior de la vela en lugar del precio actual evita el ajuste de la curva.
Las reglas son simples y claras, adecuadas para la optimización de parámetros y el comercio de robots.
Puede aplicarse de forma flexible a cualquier instrumento y marco de tiempo, con universalidad.
La configuración incorrecta del parámetro HMA puede no tener tendencias o ser demasiado sensible.
Confiar en un solo indicador es propenso a ser detenido por las repeticiones de ruptura, considere combinar otros indicadores para filtrar las señales.
Si el stop loss está demasiado cerca de HMA, puede quedar atrapado de nuevo por una ruptura posterior.
Incapaz de determinar la dirección y la fuerza de la tendencia.
El stop loss fijo causa una gran fluctuación en el riesgo/recompensa.
Esta estrategia es relativamente simple y práctica en general con una idea central clara. Identifica la tendencia principal con HMA y filtra señales falsas con ruptura. Evita ser golpeado por mercados agitados. La optimización adecuada de parámetros puede lograr resultados decentes. Sin embargo, la confiabilidad y la tasa de ganancia todavía son limitadas como una sola estrategia de indicadores. Se recomienda combinarla con otros indicadores técnicos o métodos de gestión de dinero para mejorar significativamente la robustez.
/*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