Estrategia de negociación de futuros de Nasdaq adaptada a la volatilidad y con seguimiento de tendencias de medias móviles dinámicas

EMA VWAP ATR TP SL BE MNQ
Fecha de creación: 2025-02-24 10:25:47 Última modificación: 2025-02-27 16:44:56
Copiar: 1 Número de Visitas: 499
2
Seguir
319
Seguidores

Estrategia de negociación de futuros de Nasdaq adaptada a la volatilidad y con seguimiento de tendencias de medias móviles dinámicas Estrategia de negociación de futuros de Nasdaq adaptada a la volatilidad y con seguimiento de tendencias de medias móviles dinámicas

Descripción general

Esta es una estrategia de negociación diaria diseñada específicamente para los micro futuros del NASDAQ 100. El núcleo de la estrategia utiliza un sistema de doble equilátero combinado con el precio promedio ponderado por volumen de negocios (VWAP) como confirmación de tendencia y el ajuste dinámico de la posición de parada por la amplitud de fluctuación real (ATR). La estrategia capta las tendencias del mercado a través de un estricto control de riesgo y una gestión dinámica de la posición, mientras se mantiene la seguridad de los fondos.

Principio de estrategia

La estrategia se basa en los siguientes componentes centrales:

  1. El sistema de señales utiliza el cruce de las medias móviles indizadas de 9 y 21 períodos (EMA) para identificar la dirección de la tendencia. Cuando la media a corto plazo cruza la media a largo plazo hacia arriba, se produce una señal de multiplicación y, a la inversa, se produce una señal de brecha.
  2. Utilizando el VWAP como indicador de confirmación de tendencia, el precio necesita estar por encima del VWAP para abrir más posiciones y por debajo del VWAP para abrir posiciones vacías.
  3. El sistema de gestión de riesgos utiliza un stop loss dinámico basado en el ATR, con un stop loss de posición múltiple configurado en 2 veces el ATR y un stop loss de posición vacía en 1.5 veces el ATR.
  4. El objetivo de ganancias utiliza un diseño asimétrico, con una proporción de ganancias y riesgos de 3:1 para las posiciones múltiples y una proporción de ganancias y riesgos de 2:1 para las posiciones vacías.
  5. Se establecen paradas móviles y paradas de garantía, que se mueven al nivel de costo cuando el precio alcanza el 50% de la ganancia objetivo.

Ventajas estratégicas

  1. Adaptabilidad dinámica - La estrategia puede adaptarse automáticamente a los diferentes entornos de fluctuación del mercado mediante el ajuste de los parámetros de stop loss y stop loss móvil a través de ATR.
  2. El control de riesgo es perfecto - el riesgo por transacción está limitado a \(1,500 y se establece un límite de pérdida máxima semanal de \)7,500.
  3. Diseño de ganancias asimétricas - Teniendo en cuenta las características del mercado, las estrategias multi-espacio utilizan diferentes proporciones de ganancias y riesgos y tamaños de posiciones, más en consonancia con la realidad del mercado.
  4. Mecanismo de confirmación múltiple - Combinado con la confirmación cruzada de EMA y VWAP, reduce efectivamente las falsas señales de penetración.
  5. Sistema completo de detención de pérdidas - incluye la triple protección de detención de pérdidas fijas, móviles y garantías.

Riesgo estratégico

  1. Riesgo de mercado de oscilación - En los mercados de oscilación horizontal, las señales de cruce de línea media pueden generar más señales falsas.
  2. Riesgo de deslizamiento - En un mercado rápido, el precio de transacción real puede estar muy alejado del precio de la señal.
  3. Riesgo sistémico - el stop loss puede no ser efectivo cuando ocurren eventos importantes en el mercado.
  4. Riesgo de exceso de transacciones - las señales frecuentes pueden aumentar los costos de las transacciones.
  5. Riesgo de gestión de fondos - Si el capital inicial es pequeño, es posible que no se pueda ejecutar eficazmente un plan completo de gestión de posiciones.

Dirección de optimización de la estrategia

  1. Introducción de filtros de transacción - Se puede agregar un mecanismo de confirmación de transacción que ejecuta transacciones solo cuando se cumplen los requisitos de transacción.
  2. Optimización de filtros de tiempo - Considere agregar ventanas de tiempo de negociación específicas para evitar períodos de apertura y cierre con mucha volatilidad.
  3. Parámetros de ajuste dinámico - puede ajustar automáticamente el ciclo de la línea media y el múltiplo de ATR en función de diferentes circunstancias del mercado.
  4. Aumentar los indicadores de la emoción del mercado - Introducción de indicadores de volatilidad como VIX para ajustar la frecuencia de las operaciones y el tamaño de las posiciones.
  5. Mejorar el Stop Loss móvil - Diseñar algoritmos de Stop Loss móviles más flexibles para mejorar la capacidad de captación de tendencias.

Resumir

La estrategia establece un sólido sistema de seguimiento de tendencias mediante la combinación de un sistema de línea uniforme y VWAP, y protege la seguridad de los fondos mediante un mecanismo de control de riesgos en varios niveles. La mayor característica de la estrategia es su adaptabilidad y capacidad de gestión de riesgos, que permite ajustar los parámetros de manera dinámica a través de ATR, lo que le permite mantener un rendimiento estable en diferentes entornos de mercado. La estrategia es especialmente adecuada para el comercio de futuros micros de NASDAQ 100 en el día, pero requiere que los operadores apliquen estrictamente las reglas de control de riesgo y ajusten los parámetros a medida que los mercados cambian.

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

//@version=5
strategy("Nasdaq 100 Micro - Optimized Risk Management", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === INPUTS ===
riskPerTrade = input(1500, title="Max Risk Per Trade ($)")
profitTarget = input(3000, title="Target Profit Per Trade ($)")
maxWeeklyLoss = input(7500, title="Max Weekly Loss ($)")
emaShort = input(9, title="Short EMA Period")
emaLong = input(21, title="Long EMA Period")
vwapEnabled = input(true, title="Use VWAP?")
contractSizeMax = input(50, title="Max Micro Contracts per Trade")
atrLength = input(14, title="ATR Length")

// === INDICATORS ===
emaFast = ta.ema(close, emaShort)
emaSlow = ta.ema(close, emaLong)
vwapLine = ta.vwap(close)
atrValue = ta.atr(atrLength)

// === CONDITIONS ===
// Long Entry: EMA Crossover + Above VWAP
longCondition = ta.crossover(emaFast, emaSlow) and (not vwapEnabled or close > vwapLine)

// Short Entry: EMA Crossunder + Below VWAP
shortCondition = ta.crossunder(emaFast, emaSlow) and (not vwapEnabled or close < vwapLine)

// Position Size Calculation (Adjusted for Shorts)
riskPerPoint = 5 // MNQ Micro Futures = $5 per point per contract
stopLossPointsLong = atrValue * 2   // More room for longs
stopLossPointsShort = atrValue * 1.5 // Tighter for shorts
contractsLong = math.min(contractSizeMax, math.floor(riskPerTrade / (stopLossPointsLong * riskPerPoint)))
contractsShort = math.min(math.floor(contractsLong * 0.75), contractSizeMax) // Shorts use 75% of long size

// Stop Loss & Take Profit
longSL = close - stopLossPointsLong
longTP = close + (stopLossPointsLong * 3) // 1:3 Risk-Reward for longs
shortSL = close + stopLossPointsShort
shortTP = close - (stopLossPointsShort * 2) // 1:2 Risk-Reward for shorts

// === BREAK-EVEN STOP MECHANISM ===
longBE = close + (stopLossPointsLong * 1.5) // If price moves 50% to TP, move SL to entry
shortBE = close - (stopLossPointsShort * 1) // More aggressive on shorts

// === TRAILING STOP LOGIC ===
trailStopLong = close - (atrValue * 1.5)
trailStopShort = close + (atrValue * 1)

// === EXECUTION ===
// Check for weekly loss limit
weeklyLoss = strategy.netprofit < -maxWeeklyLoss

if (longCondition and not weeklyLoss)
    strategy.entry("Long", strategy.long, contractsLong)
    strategy.exit("TakeProfitLong", from_entry="Long", limit=longTP, stop=longSL, trail_points=atrValue * 1.5, trail_offset=atrValue * 0.5)
    strategy.exit("BreakEvenLong", from_entry="Long", stop=longBE, when=close >= longBE)

if (shortCondition and not weeklyLoss)
    strategy.entry("Short", strategy.short, contractsShort)
    strategy.exit("TakeProfitShort", from_entry="Short", limit=shortTP, stop=shortSL, trail_points=atrValue * 1, trail_offset=atrValue * 0.5)
    strategy.exit("BreakEvenShort", from_entry="Short", stop=shortBE, when=close <= shortBE)

// === STOP TRADING IF WEEKLY LOSS EXCEEDED ===
if (weeklyLoss)
    strategy.close_all()