
Esta estrategia utiliza una combinación de dos períodos de HMA para construir un sistema de seguimiento de tendencias completo. En concreto, la estrategia utiliza la HMA 200 como indicador de señal de entrada, mientras que la HMA 150 se utiliza para generar una señal de parada dinámica. La estrategia activa una señal de compra o venta cuando el precio supera la HMA 200 y ejecuta una parada cuando el precio tiene una relación cruzada específica con la HMA 150.
El núcleo de la estrategia está basado en dos promedios móviles de Hull de diferentes períodos: el HMA 200 y el HMA 150. El HMA es un indicador avanzado de promedios móviles que, en comparación con los promedios móviles tradicionales, puede reducir significativamente la retraso mientras se mantiene la suavidad. La lógica de entrada de la estrategia se basa en la relación cruzada del precio con la línea HMA 200 más lenta: genera una señal de compra cuando se cruza el HMA 200 por encima del precio de apertura; genera una señal de venta cuando se cruza el HMA 200 por debajo del precio de apertura.
La lógica de stop-loss utiliza el HMA 150 más rápido como punto de referencia dinámico: para las posiciones de más de un extremo, se activa el stop-loss cuando el precio atraviesa el HMA 150 por debajo; para las posiciones de cabeza vacía, se activa el stop-loss cuando el precio atraviesa el HMA 150 por encima. Este diseño permite que el nivel de stop-loss se ajuste a la dinámica del mercado, en lugar de usar un objetivo de ganancias fijo.
El código incluye la función de rango de fechas de retroalimentación configurable, que permite al comerciante realizar un análisis de rendimiento estratégico para un período histórico específico y evaluar con mayor precisión el rendimiento de la estrategia en diferentes entornos de mercado. La estrategia también incluye un componente de visualización que muestra la línea HMA, las señales de entrada y las señales de parada en un gráfico, lo que permite al comerciante comprender el estado del mercado y las decisiones estratégicas.
Reducir el atrasoLa HMA tiene un menor retraso en comparación con las medias móviles tradicionales, lo que permite que las señales de entrada y salida sean más oportunas y puedan responder más rápidamente a los cambios en el mercado, reduciendo los posibles costos de oportunidad.
Diseño de equilibrio de doble cicloLa estrategia utiliza HMA de diferentes períodos para entrar y parar, respectivamente, formando un método equilibrado - el período más largo (el 200) es utilizado para identificar la dirección de la tendencia de forma sólida, el período más corto (el 150) es utilizado para una protección de las ganancias más sensible, logrando el doble objetivo de capturar la tendencia y bloquear las ganancias.
Sistema de comercio totalmente automatizadoLas estrategias tienen reglas claras de entrada y salida, la ejecución puede ser completamente automatizada, reduce la interferencia emocional humana y mejora la disciplina de las operaciones. Las señales visuales en los gráficos también ayudan a tomar decisiones estratégicas.
Función de retroalimentación flexible: El rango de fechas configurable permite a los comerciantes realizar pruebas de estrategias para un período histórico específico, lo que ayuda a analizar el rendimiento de las estrategias en diferentes entornos de mercado y optimizar los parámetros.
La lógica es clara.La lógica central de la estrategia es simple y directa, fácil de entender y modificar, lo que facilita la personalización y extensión de los comerciantes según sus propias necesidades, y es adecuada para el uso de comerciantes de todos los niveles.
La ventaja de seguir la tendencia: Como estrategia de seguimiento de tendencias, puede obtener mayores ganancias en mercados de fuerte tendencia, especialmente en un entorno de mercado de tendencia unidireccional continua.
Los mercados intermedios no están funcionando bienComo todas las estrategias de seguimiento de tendencias, puede funcionar mal en mercados de corrección horizontal o de gran volatilidad, lo que genera frecuentes falsas señales y operaciones perdedoras.
La falta de un mecanismo de detención de pérdidas: La estrategia actual no tiene un mecanismo de stop loss integrado, lo que puede conducir a un retiro considerable si la tendencia se reversiona pero aún no se ha disparado la condición de parada. En la aplicación práctica, se debe considerar agregar reglas de stop loss adecuadas para limitar la pérdida máxima de una sola operación.
Limites de parámetros fijosLos ciclos HMA ((200 y 150) son fijos y pueden no ser adecuados para todos los mercados o marcos de tiempo. Diferentes variedades de transacciones y períodos de tiempo pueden requerir diferentes configuraciones de parámetros para obtener los mejores resultados.
Salida prematura de una fuerte tendenciaEn una tendencia fuerte, el mecanismo de parada basado en la HMA 150 puede causar una salida prematura de un comercio rentable y perder parte de los beneficios. Esta es la contradicción inherente entre la metodología de parada dinámica y la continuidad de la tendencia.
Falta de gestión de posicionesLa estrategia no incluye ajuste de tamaño de posición o funciones de gestión de riesgos, y todas las transacciones utilizan la misma proporción de fondos, lo que en algunos casos puede provocar una exposición excesiva al riesgo.
Dependencia de un solo indicador: La estrategia depende únicamente de los indicadores HMA sin utilizar otros indicadores técnicos o filtros para confirmar la señal, lo que puede aumentar el riesgo de falsedad.
Adherirse al mecanismo de suspensiónImplementar reglas de stop loss dinámicas o fijas, como stop loss basadas en el ATR, stop loss porcentual o stop loss basado en niveles de soporte/resistencia, para limitar el riesgo máximo de pérdida de una sola operación. Esto es fundamental para proteger la seguridad de los fondos, especialmente en caso de reversión repentina de la tendencia.
Diseño de parámetros adaptativos: Ajuste del ciclo HMA basado en la volatilidad del mercado u otras características del mercado para que la estrategia se adapte a diferentes circunstancias del mercado. Por ejemplo, el uso de un ciclo más largo cuando la volatilidad es alta y el uso de un ciclo más corto cuando la volatilidad es baja.
Añadir un filtro de entorno de mercado: Implementar mecanismos para detectar mercados intermedios o mercados de tendencia, evitar operaciones en mercados intermedios o ajustar los parámetros de la estrategia. Indicadores como ADX, el ancho de banda de Brin pueden usarse para evaluar el estado del mercado.
Análisis integrado de volumen de transaccionesLa inclusión de indicadores de volumen de transacciones para confirmar la fuerza de la tendencia, ejecutar señales solo cuando el volumen de transacciones es favorable, y reducir las operaciones perdedoras causadas por falsas rupturas.
Implementación de la gestión inteligente de posicionesAjuste el tamaño de la posición en función de la volatilidad, el tamaño de la cuenta o los parámetros de riesgo para garantizar el equilibrio de riesgo y el crecimiento estable de los fondos a largo plazo. Por ejemplo, la aplicación de un cálculo del tamaño de la posición basado en ATR o un método de porcentaje de riesgo fijo.
Análisis de marcos de tiempo múltiples: Aumentar el análisis de tendencias en los marcos de tiempo más altos, ejecutar operaciones solo si la tendencia de los marcos de tiempo más altos es consistente, mejorar la calidad de la señal y la tasa de éxito.
Cancelación de pérdidas de seguimiento: con un stop loss de seguimiento en lugar de un nivel de parada fija, que permite que los beneficios sigan creciendo mientras se protege la ganancia, especialmente en una fuerte tendencia. El stop loss de seguimiento se puede realizar en función del indicador HMA, ATR o porcentaje de retiro.
La estrategia de seguimiento de tendencias de las medias móviles de Hull de dos períodos y la estrategia de comercio de cuantificación de paradas dinámicas ofrecen un método de seguimiento de tendencias intuitivo y efectivo, combinado con un mecanismo de paradas dinámicas. Utilizando las características de baja latencia de las medias móviles de Hull de dos períodos diferentes, la estrategia logra un equilibrio entre la captura de tendencias y la protección de las ganancias. Las principales ventajas de la estrategia incluyen la generación de señales claras, la reducción de la latencia de las señales y el período de retroalimentación personalizable, lo que la convierte en una herramienta práctica para los operadores que siguen las tendencias.
Sin embargo, la estrategia también tiene algunas limitaciones, incluido el mal desempeño en los mercados intermedios, la falta de mecanismos de stop loss y la limitación de parámetros fijos. Mediante la implementación de medidas de optimización recomendadas, como la adición de reglas de stop loss, ajustes de parámetros de adaptación, filtración de entornos de mercado y administración de posiciones inteligentes, la estrategia puede convertirse en un sistema de negociación más robusto para diversos entornos de mercado.
En última instancia, esta estrategia de doble ciclo basada en las medias móviles de Hull proporciona a los operadores cuantitativos una base sólida que se puede personalizar y ampliar aún más en función de las preferencias de riesgo personales y los objetivos de negociación. En la práctica, los operadores deben tener siempre en cuenta la importancia de la gestión de riesgos y realizar una adecuada retroalimentación y verificación de transacciones en simulación antes de negociar en vivo.
/*backtest
start: 2024-06-03 00:00:00
end: 2025-06-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
//@strategy HMA 200/150 Trading Strategy
//@description A trend-following strategy using HMA 200 for entry signals and HMA 150 for take profit signals. Buys when price closes above HMA 200, sells when price closes below HMA 200. Take profit for buys when price closes below HMA 150, and for sells when price closes above HMA 150. Includes date range inputs for backtesting.
//@author [TrendBlazeX]
strategy("HMA 200/150 Trading Strategy", overlay=true, margin_long=100, margin_short=100)
// Input for backtest period
var start_year = input.int(2023, "Start Year", minval=1900, maxval=2100, group="Backtest Period")
var start_month = input.int(1, "Start Month", minval=1, maxval=12, group="Backtest Period")
var start_day = input.int(1, "Start Day", minval=1, maxval=31, group="Backtest Period")
var end_year = input.int(2025, "End Year", minval=1900, maxval=2100, group="Backtest Period")
var end_month = input.int(12, "End Month", minval=1, maxval=12, group="Backtest Period")
var end_day = input.int(31, "End Day", minval=1, maxval=31, group="Backtest Period")
// Convert dates to timestamps
start_timestamp = timestamp(start_year, start_month, start_day, 0, 0)
end_timestamp = timestamp(end_year, end_month, end_day, 23, 59)
// Check if current bar is within the date range
in_date_range = time >= start_timestamp and time <= end_timestamp
// Calculate HMAs
hma200 = ta.hma(close, 200)
hma150 = ta.hma(close, 150)
// Define conditions for buy and sell signals
buySignal = ta.crossover(close, hma200) and in_date_range
sellSignal = ta.crossunder(close, hma200) and in_date_range
// Define take profit conditions
buyTakeProfit = ta.crossunder(close, hma150) and in_date_range
sellTakeProfit = ta.crossover(close, hma150) and in_date_range
// Strategy entry and exit
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)
if (buyTakeProfit)
strategy.close("Buy", comment="TP Buy")
if (sellTakeProfit)
strategy.close("Sell", comment="TP Sell")
// Plot HMAs on chart
plot(hma200, color=color.blue, title="HMA 200", linewidth=2)
plot(hma150, color=color.orange, title="HMA 150", linewidth=2)
// Plot signals on chart
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(buyTakeProfit, title="Buy TP", location=location.abovebar, color=color.yellow, style=shape.diamond, size=size.tiny)
plotshape(sellTakeProfit, title="Sell TP", location=location.belowbar, color=color.yellow, style=shape.diamond, size=size.tiny)