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

Estrategia de negociación de impulso de ruptura de tendencia de ADX

El autor:¿ Qué pasa?, Fecha: 2024-11-28 15:44:59
Las etiquetas:ADXDMI- ¿Qué es?El ATR

img

Resumen general

Esta es una estrategia comercial cuantitativa basada en el índice direccional promedio (ADX) y las rupturas de precios. La estrategia monitoriza principalmente los valores del indicador ADX para evaluar la fuerza de la tendencia del mercado y combina las señales de ruptura de precios para capturar el impulso del mercado. La estrategia opera dentro de sesiones comerciales específicas e implementa la gestión de riesgos a través de límites de stop-loss y comerciales diarios.

Principios de estrategia

La lógica central incluye los siguientes elementos clave:

  1. ADX Monitoring: utiliza el indicador ADX para evaluar la fuerza de la tendencia, con valores de ADX por debajo de 17,5 que indican la posible formación de una nueva tendencia.
  2. Detección de ruptura de precios: rastrea el precio de cierre más alto en los últimos 34 períodos, activando señales comerciales cuando el precio actual se rompe por encima de esta resistencia.
  3. Gestión de sesiones: opera solo durante las horas de negociación especificadas (0730-1430) para evitar períodos de baja liquidez.
  4. Mecanismos de control de riesgos:
    • Pérdida fija en dólares para limitar las pérdidas de operaciones únicas
    • Límites máximos de 3 operaciones por sesión
    • Cierre automático de la posición al final de la sesión

Ventajas estratégicas

  1. Capacidad de captura de tendencias: identifica eficazmente las primeras etapas de tendencia a través del indicador ADX y la combinación de ruptura de precios.
  2. Gestión integral del riesgo: Múltiples medidas de control del riesgo, incluidos el stop-loss fijo, los límites de negociación y el mecanismo de cierre automático.
  3. Alta automatización: una lógica de estrategia clara permite una negociación totalmente automatizada sin intervención manual.
  4. Fuerte adaptabilidad: Los parámetros pueden ajustarse a las diferentes condiciones del mercado.

Riesgos estratégicos

  1. Riesgo de ruptura falsa: puede producirse una interrupción consecutiva en mercados variados.
  2. Dependencia de parámetros: la efectividad de la estrategia depende en gran medida del umbral de ADX y de la configuración del período de revisión.
  3. Restricciones de tiempo: el comercio solo durante sesiones específicas puede perder oportunidades.
  4. Configuración de Stop-Loss: Las paradas fijas en dólares pueden carecer de flexibilidad en diferentes entornos de volatilidad.

Direcciones de optimización

  1. El sistema de suspensión dinámica de pérdidas (Dynamic Stop-Loss): se recomienda la aplicación de suspensiones dinámicas basadas en ATR para diferentes condiciones de volatilidad del mercado.
  2. Filtro de entorno de mercado: añadir filtros de volatilidad para ajustar o pausar la negociación en entornos de alta volatilidad.
  3. Optimización de entrada: Considere agregar confirmación de volumen para mejorar la confiabilidad de la señal de fuga.
  4. Ajuste dinámico de parámetros: aplicar mecanismos de ajuste adaptativos para los umbrales de ADX y los períodos de retroalimentación.

Resumen de las actividades

Esta es una estrategia bien estructurada de seguimiento de tendencias con lógica clara. Captura las tendencias del mercado combinando indicadores ADX con breakouts de precios bajo un marco de gestión de riesgos efectivo. Si bien hay espacio para la optimización, la base de la estrategia es robusta y adecuada como un componente básico de un sistema de negociación cuantitativa. Se aconseja a los comerciantes que realicen pruebas de retroceso y optimización de parámetros antes del comercio en vivo, y que realicen mejoras específicas basadas en las condiciones del mercado.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HuntGatherTrade
// ========================
// NQ 30 minute, ES 30 minute

//@version=5
strategy("ADX Breakout", overlay=false, initial_capital=25000, default_qty_value=1)

// ===============================
// Input parameters
// ===============================
stopLoss = input(1000.0, title="Stop Loss ($)", group="Exits")
session = input("0730-1430:1234567", group="Trade Session")
highestLB = input(34, title="Highest lookback window", group="Indicator values")

// ===============================
// Trade Session Handling
// ===============================
t = time(timeframe.period, session)

// Reset numTrades at the start of each session
var int numTrades = 0
is_new_session = ta.change(time("D")) != 0
if is_new_session
    numTrades := 0

// ===============================
// Entry Conditions
// ===============================
[plusDI, minusDI, adxValue] = ta.dmi(50, 14)
entryCondition = (close >= ta.highest(close, highestLB)[1]) and (adxValue < 17.5) and (strategy.position_size == 0) and (numTrades < 3) and not na(t)

// ===============================
// 7. Execute Entry
// ===============================
var float stopPricePlot = na

if entryCondition
    entryPrice = close + syminfo.mintick
    strategy.entry("Long Entry", strategy.long, stop=entryPrice)
    //stopPrice = strategy.position_avg_price - (stopLoss / syminfo.pointvalue)
    //strategy.exit("Stop Loss", "Long Entry", stop=stopPrice)
    numTrades += 1

if (strategy.position_size > 0) and (strategy.position_size[1] == 0)
    stopPoints = stopLoss / syminfo.pointvalue
    stopPrice = strategy.position_avg_price - stopPoints
    stopPrice := math.round(stopPrice / syminfo.mintick) * syminfo.mintick
    strategy.exit("Stop Loss", from_entry="Long Entry", stop=stopPrice)


if ta.change(strategy.opentrades) == 1
    float entryPrice = strategy.opentrades.entry_price(0)
    stopPricePlot := entryPrice - (stopLoss / syminfo.pointvalue)

if ta.change(strategy.closedtrades) == 1
    stopPricePlot   := na

plot(stopPricePlot, "Stop-loss level", color.red, 1, plot.style_linebr)

// ===============================
// Exit at End of Session
// ===============================
if na(t) and strategy.position_size != 0
    strategy.close_all(comment="End of Day Exit")

Relacionados

Más.