Estrategia de trading intradía con diferencial de valor razonable dinámico: sistema de backtesting multitemporal basado en la teoría SMC

FVG SMC SL TP Risk-Reward Ratio
Fecha de creación: 2025-03-26 15:27:29 Última modificación: 2025-03-26 15:27:29
Copiar: 2 Número de Visitas: 601
2
Seguir
319
Seguidores

Estrategia de trading intradía con diferencial de valor razonable dinámico: sistema de backtesting multitemporal basado en la teoría SMC Estrategia de trading intradía con diferencial de valor razonable dinámico: sistema de backtesting multitemporal basado en la teoría SMC

Descripción general

La estrategia de negociación intradiaria de brecha de valor justo dinámico es un sistema de negociación cuantitativa basado en la teoría de la estructura del mercado que se centra en la identificación y negociación de brechas de valor justo en los precios (Fair Value Gap, abreviado FVG). La estrategia utiliza tres formas de hilos para detectar desequilibrios de oferta y demanda en el comportamiento de los precios y realizar operaciones de entrada en estas áreas cuando se evalúa el precio.

Principio de estrategia

El principio central de la estrategia de negociación de brecha de justo valor se basa en las “zonas sin negociar” o “brechas” que los precios dejan cuando se mueven rápidamente. Estas áreas representan un grave desequilibrio de oferta y demanda, que generalmente se “llenan” o “re-prueba” en el futuro. En concreto, la estrategia funciona de la siguiente manera:

  1. Mecanismo de detección de brechasLa estrategia utiliza un modelo de tres hilos para identificar dos tipos de FVG:

    • Observación FVG: El precio mínimo de la línea de aluminio actual es superior al precio máximo anterior de las dos líneas de aluminio, y el precio de cierre de la línea de aluminio anterior es superior al precio máximo anterior de las dos líneas de aluminio.
    • FVG bajista: el precio máximo de la línea de referencia actual es inferior al precio mínimo anterior de las dos líneas de referencia, y el precio de cierre de la línea de referencia anterior es inferior al precio mínimo anterior de las dos líneas de referencia.
  2. Logía de entrada de retroalimentaciónLa estrategia no es entrar en el mercado inmediatamente después de la formación de un FVG, sino esperar a que los precios se reafirmen en las siguientes áreas:

    • FVG: cuando el precio retroceda a la frontera superior de la zona FVG (el punto más alto), se dispara una señal múltiple.
    • Baja FVG: Cuando el precio rebota hacia el límite inferior de la zona FVG (el punto más bajo), se activa la señal de corto plazo.
  3. Gestión de riesgos

    • El stop loss se establece en el límite de la correspondiente FVG (en el punto de inflexión de la FVG o en el punto de inflexión de la FVG).
    • El objetivo de ganancias utiliza un riesgo-rendimiento de 1: 2, calculado como: precio de entrada ± (precio de entrada - stop loss) × 2 .
  4. Niveles al cierre de la jornadaEstrategia: Automatizar la liquidación de todas las posiciones y la eliminación de todas las matrices de FVG todos los días a las 3:15 p.m. (hora estándar india) para prepararse para el próximo día de negociación.

  5. Transacciones superpuestasLa estrategia permite un máximo de 5 operaciones de superposición, lo que significa que se pueden mantener varias posiciones en la misma dirección, lo que aumenta los beneficios en un mercado de fuerte tendencia.

Este método utiliza la discontinuidad en la estructura del mercado y la teoría del comportamiento de los precios para tratar de capturar el comportamiento predecible de los precios al llenar estas zonas de desequilibrio.

Ventajas estratégicas

Después de analizar el código en profundidad, la estrategia mostró varias ventajas:

  1. Criterios objetivos de negociaciónLa estrategia utiliza condiciones matemáticas bien definidas para identificar los FVG y los puntos de entrada, eliminando el juicio subjetivo y aumentando la disciplina y la consistencia de las transacciones.

  2. Transacciones basadas en la estructura del mercadoA través de la negociación de brechas de justo valor, la estrategia se centra en las áreas de verdadero desequilibrio de la oferta y la demanda en el mercado, en lugar de depender de las señales de los indicadores tradicionales, que a menudo se quedan atrás en la acción de los precios.

  3. Mecanismo de control de riesgos

    • El Stop Loss predefinido define el máximo riesgo de cada operación.
    • La rentabilidad de un riesgo fijo es más razonable que la probabilidad de ganar que se necesita para asegurar ganancias a largo plazo.
    • El cierre obligatorio de la posición al final del día elimina el riesgo de la noche a la mañana.
  4. Potencial de ganancias combinadas: Al permitir la superposición de operaciones (hasta 5 posiciones), la estrategia puede aumentar significativamente los ingresos en un mercado de fuerte tendencia, mientras que controla el riesgo de cada posición mediante el stop loss.

  5. La adaptabilidadLa estrategia no depende de un nivel de precios fijo, sino que identifica dinámicamente las áreas clave en las condiciones actuales del mercado, lo que las hace adaptables en diferentes entornos y herramientas del mercado.

  6. Eficiencia de la programaciónEl código utiliza una matriz para almacenar la información de FVG y gestionar eficazmente múltiples oportunidades de transacción potenciales, asegurando que el sistema pueda rastrear y responder a varios niveles de precios.

  7. Ayuda visual: estrategia muestra las zonas de FVG de forma intuitiva en el gráfico (verde para FVG optimista, rojo para FVG bajista) para ayudar a los operadores a entender el proceso de toma de decisiones del sistema.

Riesgo estratégico

A pesar de las sólidas bases teóricas y ventajas de la estrategia, existen varios factores de riesgo a tener en cuenta:

  1. Riesgo de una falsa brechaEn el mercado de reajuste, los precios pueden tocar el límite de FVG varias veces sin formar una tendencia continua, lo que lleva a múltiples paradas de pérdidas. La solución puede incluir la adición de filtros de entorno de mercado adicionales o indicadores de confirmación de tendencia.

  2. Riesgo de las transacciones superpuestas: Permitir un máximo de 5 posiciones simultáneas puede conducir a una exposición excesiva en la dirección equivocada, especialmente cuando la tendencia se invierte repentinamente. Se recomienda la aplicación de restricciones de riesgo generales, por ejemplo, que el máximo riesgo de todas las posiciones no exceda un porcentaje específico de la cuenta.

  3. Limitaciones de las tasas fijas de riesgo-beneficioEl uso de una relación de riesgo-rentabilidad de 1:2 fija puede no ser adecuado para todas las condiciones del mercado. En mercados con baja volatilidad, tal objetivo puede ser difícil de alcanzar; en mercados con alta volatilidad, puede salir prematuramente de operaciones rentables. Considere objetivos de ganancias ajustados en función de la volatilidad del mercado.

  4. Falta de filtros en el entorno del mercado: La estrategia genera señales en todas las condiciones del mercado, sin tener en cuenta la tendencia general o el estado de fluctuación. En un entorno de fuerte tendencia, la adversidad de la FVG puede causar pérdidas continuas. La adición de filtros de tendencia puede mejorar significativamente el rendimiento.

  5. No hay confirmación de volumenLa estrategia se basa únicamente en el comportamiento del precio, sin tener en cuenta la confirmación del volumen de transacciones, lo que puede generar falsas señales en áreas de bajo volumen de transacciones. La integración del análisis del volumen de transacciones puede mejorar la calidad de la señal.

  6. Problemas potenciales con el tiempo fijo de salida: La salida en un momento determinado del día puede conducir a una salida prematura en una posición ventajosa o a perder una mejor oportunidad de salida en una posición desfavorable. Considere las condiciones de salida en combinación con la acción del precio.

  7. Se basa en la hipótesis de retroceso histórico: La estrategia asume que el comportamiento de los futuros FVG será similar a los patrones observados en el pasado. La dinámica del mercado puede cambiar y debilitar la eficacia de estos patrones. Es muy importante re-optimizar periódicamente los parámetros y verificar las hipótesis.

Dirección de optimización de la estrategia

Basado en un análisis profundo del código, las siguientes son algunas posibles direcciones de optimización:

  1. El filtro de la estructura del mercado

    • Implementar un sistema de identificación de tendencias de nivel más avanzado, que permita el comercio de FVG solo en la dirección de la tendencia.
    • Se puede agregar un simple filtro de dirección de la media móvil o un análisis más complejo de la estructura del mercado.
    • Este tipo de filtro puede reducir significativamente las pérdidas de las operaciones a la inversa.
  2. Ajuste por volatilidad

    • El objetivo es lograr un stop loss y un profit dinámicos basados en la volatilidad del mercado actual, en lugar de utilizar un ratio de riesgo/retorno fijo.
    • Ampliar los objetivos en entornos de alta volatilidad y ajustar los objetivos en entornos de baja volatilidad.
    • La volatilidad se puede cuantificar con el ATR (Average True Range) o un indicador similar.
  3. Confirmación de la transacción

    • Agregar condiciones de volumen de transacciones para asegurar que el FVG tenga suficiente volumen de transacciones para apoyarlo en la formación y la retrospectiva.
    • Esto reduce las señales falsas en entornos de baja movilidad.
  4. Adaptación al tamaño de la posición

    • Escala de posición dinámica basada en las ganancias históricas, la volatilidad actual y las características específicas de FVG.
    • Se puede aumentar el tamaño de la posición para un FVG más “limpio” (un patrón de tres hilos más claro) o un FVG que se forma en una tendencia fuerte.
  5. Análisis de marcos de tiempo múltiples

    • Integrar el análisis de FVG de los marcos de tiempo más altos, dando prioridad a las señales alineadas con el FVG de los marcos de tiempo más altos
    • Este método puede mejorar la calidad de la señal y la tasa de éxito en general.
  6. Transacciones de superposición inteligente

    • Modificación de la lógica de superposición de operaciones para que se base en la fuerza de la tendencia y el éxito de las operaciones anteriores.
    • La posibilidad de superposición puede aumentar después de una operación rentable y disminuir después de una operación perdedora.
  7. Aprendizaje automático

    • Implementar algoritmos de aprendizaje automático para identificar las características de FVG que tienen más probabilidades de éxito.
    • Esto puede incluir el análisis de factores como el tamaño de la FVG, la velocidad de formación y el entorno del mercado en el que se encuentra.
  8. Marco de retroalimentación estadística

    • Desarrollar un marco de retroalimentación más completo para evaluar el rendimiento de la estrategia en diferentes condiciones de mercado.
    • Utiliza simulaciones de Montecarlo para evaluar los resultados esperados bajo diferentes combinaciones de parámetros y condiciones de mercado.

Resumir

La estrategia de trading intradiario de brecha de valor justo dinámico ofrece un método sistemático para identificar y negociar áreas de desequilibrio de oferta y demanda en el mercado. Utilizando el modelo de tres hilos de FVG y una regla de entrada de retracción clara, la estrategia tiene tanto solidez teórica como operabilidad práctica. Su robusto marco de gestión de riesgos, que incluye un stop loss predefinido, un índice de retorno de riesgo fijo y un mecanismo de posición de cierre de día, proporciona una base sólida para la disciplina de trading.

La principal ventaja de la estrategia reside en su objetividad y en su enfoque basado en la estructura del mercado, que le permite mantener la relevancia en diferentes entornos de mercado. Sin embargo, la eficacia de la estrategia puede ser mejorada significativamente mediante la implementación de la dirección de optimización de las recomendaciones, especialmente mediante la adición de filtros de entornos de mercado, ajustes basados en la volatilidad y confirmación de volúmenes de transacciones.

Cabe señalar que ninguna estrategia de negociación, por perfecta que sea, garantiza el éxito. La negociación exitosa requiere no solo una estrategia sólida, sino también una estricta disciplina de ejecución, una gestión adecuada de los fondos y un profundo conocimiento del mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-03-26 00:00:00
end: 2025-03-25 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Intraday FVG", overlay=true, pyramiding=5, max_bars_back=500, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent)

// 2. FVG Detection (Three-Candle Pattern)
var bullFVGHigh = array.new_float()
var bullFVGLow = array.new_float()
var bullFVGIndex = array.new_int()
var bearFVGHigh = array.new_float()
var bearFVGLow = array.new_float()
var bearFVGIndex = array.new_int()

detectFVG() =>

    // Bullish FVG: Current low > prior high AND next high < current low
    bullCondition = low > high[2] and close[1] > high[2]
    // Bearish FVG: Current high < prior low AND next low > current high
    bearCondition = high < low[2] and close[1] < low[2]


    if bullCondition 
        // log.info("bull condition met: {0} {0} {0}", high[2], close[1], low)
        array.push(bullFVGHigh, low)
        array.push(bullFVGLow, low[2])
        array.push(bullFVGIndex, bar_index)

    
    if bearCondition
        // log.info("bear condition met: {0} {0} {0}", low[2], close[1], high)
        array.push(bearFVGHigh, high[2])
        array.push(bearFVGLow, high)
        array.push(bearFVGIndex, bar_index)

detectFVG()

// 3. Retest Execution Logic
checkRetests(arrayHigh, arrayLow, barIndex, direction) =>
    // log.info("{0} : {1}", bar_index, time)
    i = array.size(arrayHigh) - 1
    
    while i >= 0

        // log.info("barIndex : {0}" , array.get(barIndex, i))
        // log.info("bar_index : {0}" , bar_index)
        
        if array.get(barIndex, i) <  bar_index
            
            fvgHigh = array.get(arrayHigh, i)
            fvgLow = array.get(arrayLow, i)
            // log.info("visting : {0} : {1} : {2} : {3} ", array.get(barIndex, i), bar_index, fvgHigh, fvgLow)
            
            if direction == "long" and low <= fvgHigh
                // log.info("entering long")
                sl = array.get(arrayLow, i)  // Previous candle's low
                entry = close
                tp = entry + (entry - sl)*2
                strategy.entry("L"+str.tostring(array.get(barIndex, i)), strategy.long)
                strategy.exit("XL"+str.tostring(array.get(barIndex, i)), "L"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
                array.remove(arrayHigh, i)
                array.remove(arrayLow, i)
                array.remove(barIndex, i)
            
            if direction == "short" and high >= fvgLow
                // log.info("entering short")
                sl = array.get(arrayHigh, i)   // Previous candle's low
                entry = close
                tp = entry - (sl - entry)*2
                strategy.entry("S"+str.tostring(array.get(barIndex, i)), strategy.short)
                strategy.exit("XS"+str.tostring(array.get(barIndex, i)), "S"+str.tostring(array.get(barIndex, i)), stop=sl, limit=tp)
                array.remove(arrayHigh, i)
                array.remove(arrayLow, i)
                array.remove(barIndex, i)
        
        i := i - 1


checkRetests(bullFVGHigh, bullFVGLow, bullFVGIndex, "long")
checkRetests(bearFVGHigh, bearFVGLow, bearFVGIndex,"short")

// 5. Daily Exit at 3:15 PM IST
exitTime = hour == 15 and minute >= 15
if exitTime
    strategy.close_all()
    array.clear(bullFVGHigh)
    array.clear(bullFVGLow)
    array.clear(bearFVGHigh)
    array.clear(bearFVGLow)
    array.clear(bullFVGIndex)
    array.clear(bearFVGIndex)