Estrategia de trading de impulso en zona de desequilibrio de precios de alta frecuencia basada en promedio móvil exponencial y stop-profit y stop-loss dinámicos ATR

FVG EMA ATR SMA TP SL
Fecha de creación: 2025-02-20 15:18:11 Última modificación: 2025-02-20 15:18:11
Copiar: 0 Número de Visitas: 548
2
Seguir
319
Seguidores

Estrategia de trading de impulso en zona de desequilibrio de precios de alta frecuencia basada en promedio móvil exponencial y stop-profit y stop-loss dinámicos ATR Estrategia de trading de impulso en zona de desequilibrio de precios de alta frecuencia basada en promedio móvil exponencial y stop-profit y stop-loss dinámicos ATR

Descripción general

Esta estrategia es una estrategia de comercio de alta frecuencia basada en la zona de desequilibrio de precios (Fair Value Gap, FVG). Confirma la dirección de la tendencia mediante la combinación de 50 ciclos y 200 ciclos del índice de promedios móviles (EMA), mientras que utiliza múltiples indicadores de filtración como el volumen de transacciones y las fluctuaciones de precios para mejorar la fiabilidad de la señal de comercio.

Principio de estrategia

El núcleo de la estrategia es capturar oportunidades potenciales de negociación mediante la identificación de las zonas de desequilibrio en el movimiento de los precios (FVG). Cuando los precios tienen un salto significativo en el corto plazo y la dirección del salto está en consonancia con la tendencia principal, la estrategia considera que este desequilibrio de precios indica que las cosas seguirán en esa dirección. En concreto:

  1. Juzga la tendencia general por la relación de posición entre EMA50 y EMA200
  2. Buscar áreas donde el volumen de transacciones aumenta significativamente (más de 1,5 veces el promedio de 20 ciclos)
  3. Confirmación de fluctuaciones de precios por encima de los niveles normales, indicando una fuerte voluntad de compra y venta en el mercado
  4. Cuando se cumplen al mismo tiempo las condiciones anteriores, se abre una posición si aparece un FVG que coincide con la dirección de la tendencia
  5. Utilizando 2 veces el ATR como punto de parada y 1.2 veces el ATR como punto de parada, logrando un riesgo-beneficio de aproximadamente 1.67

Ventajas estratégicas

  1. El mecanismo de filtración de múltiples señales mejora significativamente la precisión de las transacciones
  2. Configuraciones dinámicas de stop-profit y stop-loss para adaptarse a diferentes entornos de mercado
  3. Combinando las características de seguimiento de tendencias y inversiones de operaciones, permite obtener ganancias en diferentes estados de mercado
  4. Las características de la microestructura del mercado, como el volumen de transacciones y las fluctuaciones de precios, se tienen en cuenta.
  5. Aplicable para varios pares de divisas principales y diferentes períodos de tiempo

Riesgo estratégico

  1. Es posible que se produzca un pequeño stop loss en un mercado muy volátil
  2. Hay un cierto retraso en el juicio de los puntos de inflexión del mercado
  3. Las señales falsas pueden producirse con frecuencia en la fase de ordenamiento horizontal
  4. Necesidad de monitoreo en tiempo real de los cambios en el volumen de transacciones y mayores exigencias de calidad de los datos Se recomienda controlar el riesgo de las siguientes maneras:
  • Ajuste adecuado de los coeficientes ATR para adaptarse a las características de fluctuación de los diferentes mercados
  • Aumentar las condiciones de filtración de tendencias para evitar el comercio en mercados horizontales
  • Monitoreo en tiempo real de los cambios en la liquidez del mercado

Dirección de optimización de la estrategia

  1. Introducir más indicadores de la microestructura del mercado, como datos de flujo de pedidos
  2. Optimización de la filtración de volumen de transacción, se puede considerar el uso de la filtración de ajuste
  3. Mejora de los mecanismos de detención de pérdidas, introducción de pérdidas móviles
  4. Aumentar el reconocimiento de estados de mercado, usando diferentes configuraciones de parámetros en diferentes estados
  5. Considere agregar filtros de tiempo para evitar comerciar en horas inactivas

Resumir

La estrategia construye un sistema de negociación más completo a través de la aplicación integrada de análisis técnico y métodos de análisis de la microestructura del mercado. La estrategia tiene una ventaja central en el mecanismo de confirmación de múltiples señales y el control de riesgo dinámico, pero en la aplicación real aún se necesita la optimización de los parámetros según las condiciones específicas del mercado. A través de la mejora y optimización continuas, la estrategia espera mantener un rendimiento estable en diferentes entornos de mercado.

Código Fuente de la Estrategia
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-01 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Effective FVG Strategy - Forex", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === Exponential Moving Averages for Faster Trend Detection ===
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
bullishTrend = ema50 > ema200
bearishTrend = ema50 < ema200

// === Volume & Imbalance Filters ===
highVolume = volume > ta.sma(volume, 20) * 1.5  // 1.5x higher than average volume
strongImbalance = math.abs(close - open) > ta.sma(math.abs(close - open), 20)  // Large price movement

// === Fair Value Gap (FVG) Detection ===
fvgUp = low[2] > high[0]  // Bullish FVG
fvgDown = high[2] < low[0]  // Bearish FVG

// Effective FVGs with trend confirmation
validBullFVG = fvgUp and highVolume and strongImbalance and bullishTrend
validBearFVG = fvgDown and highVolume and strongImbalance and bearishTrend

// === ATR-based Take Profit & Stop Loss (Optimized for Forex) ===
atr = ta.atr(14)
longTP = close + (2 * atr)  // TP = 2x ATR
longSL = close - (1.2 * atr)  // SL = 1.2x ATR
shortTP = close - (2 * atr)
shortSL = close + (1.2 * atr)

// === Execute Trades ===
if validBullFVG
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", from_entry="Long", limit=longTP, stop=longSL)

if validBearFVG
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", from_entry="Short", limit=shortTP, stop=shortSL)

// === Plot Buy/Sell Signals ===
plotshape(series=validBullFVG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", title="BUY Signal")
plotshape(series=validBearFVG, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", title="SELL Signal")

// Highlight Significant FVGs
bgcolor(validBullFVG ? color.new(color.green, 85) : na)
bgcolor(validBearFVG ? color.new(color.red, 85) : na)