En la carga de los recursos... Cargando...

Estrategia de negociación cuantitativa de patrón de candelero de inversión de tendencia de doble marco de tiempo

El autor:¿ Qué pasa?, fecha: 2025-01-10 15:47:53
Las etiquetas:- ¿Qué es?

 Dual Timeframe Trend Reversal Candlestick Pattern Quantitative Trading Strategy

Resumen general

Esta estrategia es un sistema de negociación cuantitativo basado en dos patrones clásicos de velas: Hammer y Hanging Man. Predice puntos de inflexión potenciales del mercado mediante la identificación de estos patrones de inversión. El sistema combina múltiples indicadores técnicos para confirmar la validez de la señal, incluida la relación entre el cuerpo de la vela y las sombras, la dirección de la tendencia y otros elementos, logrando una captura precisa de los puntos de inversión del mercado.

Principio de la estrategia

La lógica central de la estrategia es identificar dos patrones clave de candlestick programáticamente: 1. Martillo: Aparece en tendencias bajistas, lo que sugiere una posible reversión ascendente. Caracterizado por un cuerpo pequeño, una sombra inferior larga (al menos el doble de la longitud del cuerpo) y una sombra superior mínima o nula. 2. Hombre colgado: aparece en tendencias alcistas, lo que sugiere una posible reversión a la baja.

La estrategia cuantifica estos patrones a través de parámetros estrictos, incluidos: - Múltiplicador de longitud mínima del cuerpo de la vela - Relación entre la sombra inferior y la altura de la vela - Periodos de retención

Ventajas estratégicas

  1. Identificación sistemática: identifica con precisión las señales de inversión del mercado de forma programática, evitando el juicio humano subjetivo.
  2. El riesgo controlado: establece períodos de tenencia claros, evitando los riesgos derivados de la tenencia excesiva de posiciones.
  3. Visualización de señales: muestra las señales comerciales de manera intuitiva en los gráficos para análisis y optimización.
  4. Parámetros flexibles: puede ajustar los parámetros en función de las diferentes condiciones del mercado, mejorando la adaptabilidad de la estrategia.

Riesgos estratégicos

  1. Riesgo de ruptura falsa: los patrones de reversión pueden generar señales falsas que requieren la confirmación de otros indicadores técnicos.
  2. Riesgo de tiempo: es posible que los períodos de retención fijos no capturen plenamente el potencial de movimiento de precios.
  3. Dependencia del entorno del mercado: puede generar señales falsas excesivas en mercados diversos.

Direcciones para la optimización de la estrategia

  1. Introduzca filtros de tendencias: agregue indicadores como promedios móviles para filtrar tendencias y mejorar la calidad de la señal.
  2. Periodos de retención dinámicos: ajustar el tiempo de retención en función de la volatilidad del mercado.
  3. Confirmación de tendencias en marcos de tiempo múltiples: aplicar mecanismos de confirmación de tendencias en marcos de tiempo más largos.
  4. Optimización de pérdidas de parada: agregar mecanismos dinámicos de pérdida de parada para mejorar el control de riesgos.

Resumen de las actividades

Esta estrategia implementa la teoría clásica del análisis técnico de manera sistemática a través de la cuantificación, demostrando un fuerte valor práctico. A través de la optimización de parámetros y el refinamiento del mecanismo de control de riesgos, la estrategia puede mantener un rendimiento estable en diferentes entornos de mercado.


/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("Hammer and Hanging Man Strategy", overlay=true)

// Input parameters
length = input.int(5, title="Minimum Candle Body Length (Multiplier)", minval=1)
shadowRatio = input.float(1, title="Lower Shadow to Candle Height Ratio", minval=1.0)
holdPeriods = input.int(26, title="Hold Periods (Bars)", minval=1)  // Holding period in bars

// Function to calculate the absolute value
absValue(x) =>
    x >= 0 ? x : -x

// Function to check if it is a Hammer
isHammer() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close > open

// Function to check if it is a Hanging Man
isHangingMan() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close < open

// Detect the candles
hammer = isHammer()
hangingMan = isHangingMan()

// Trading logic: Long on Hammer, Short on Hanging Man
if hammer
    strategy.entry("Long", strategy.long)  // Long entry on Hammer

if hangingMan
    strategy.entry("Short", strategy.short)  // Short entry on Hanging Man

// Exit after X bars
if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Long")

if strategy.position_size < 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Short")

// Visualization of signals
plotshape(hammer, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(hangingMan, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging Man")

Relacionados

Más.