Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
50
Ranking:
(4)
Publicado:
Actualizado:
\MQL5\Files\
trend_detector.onnx (6444.66 KB)
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Backtest EURUSD 01/03/2025 - 20/01/2026 Timeframe M5(ONNX AI formación específica para M5-M15)

Backtest GBPUSD 01/03/2025 - 20/01/2026 Timeframe M5 (ONNX AI entrenamiento específico para M5-M15)


1. Generalidades

SidewaysMartingale es un Asesor Experto diseñado para operar en mercados laterales (rango limitado) utilizando una estrategia de recuperación de martingala, mejorada con un detector de tendencia basado en IA implementado a través de un modelo ONNX.

El EA combina:

  • Clasificación de tendencias AI (Sideway / Bullish / Bearish)

  • Indicador de envolventes para entradas basadas en rangos

  • Escalado controlado de posiciones de martingala

  • Cierre de cesta basado en beneficios

  • Parada de emergencia basada en el margen

La idea central es:

Operar sólo cuando el mercado se clasifique estadísticamente como lateral, y evitar añadir posiciones de martingala cuando se detecte una tendencia fuerte.


2. Detector de Tendencias AI (Integración ONNX)

Resultados del modelo ONNX

El modelo ONNX devuelve:

  • Una etiqueta predicha (no se utiliza directamente)

  • Un vector de probabilidad con tres probabilidades:

Variable Significado
prob_side Probabilidad de que el mercado esté lateral / oscilando
prob_bull Probabilidad de que el mercado sea alcista (tendencia alcista)
prob_bear Probabilidad de que el mercado sea bajista (tendencia bajista)

Estas probabilidades se extraen como:

float prob_side = prob_data[0].values[0]; float prob_bull = prob_data[0].values[1]; float prob_bear = prob_data[0].values[2];


3. Ingeniería de características (entradas de IA)

El EA introduce 9 características de ingeniería en el modelo ONNX:

Característica Índice Descripción
f[0] Pendiente EMA200 (dirección y fuerza de la tendencia)
f[1] Distancia del precio a la EMA200
f[2] Valor ATR (volatilidad)
f[3] Rango de velas normalizado por ATR
f[4] Presión de ruptura frente al máximo anterior
f[5] Dominancia del cuerpo de la vela
f[6] Día de la semana
f[7] Hora del día
f[8] Dirección de la vela anterior


Estas características permiten al modelo de IA detectar

  • Volatilidad del mercado

  • Fuerza de la tendencia

  • Patrones de comportamiento basados en el tiempo

  • Comportamiento de la estructura de precios


4. Lógica de detección de mercados laterales

Un mercado se considera lateral cuando:

bool is_sideway = (prob_side >= InpAISidewayThreshold);

Ejemplo:

  • Si InpAISidewayThreshold = 0.70

  • Entonces se requiere al menos un 70% de confianza para clasificar el mercado como lateral

👉 No se abren nuevas operaciones a menos que se cumpla esta condición


5. Lógica de Entrada (Scalping en Rango)

El EA utiliza Envolventes para detectar los extremos del rango.

Entrada de Compra

if(price_close <= lower[0] && is_sideway)

  • El precio toca o rompe la envolvente inferior

  • El EA confirma un mercado lateral

  • Abre una posición de COMPRA

Entrada de Venta

else if(price_close >= upper[0] && is_sideway)

  • El precio toca o rompe la envolvente superior

  • La IA confirma un mercado lateral

  • Abre una posición de VENTA

💡 Esto asegura que las operaciones se tomen sólo en los extremos del rango durante condiciones de no tendencia.


6. Lógica de recuperación de Martingala

Cuando ya existen posiciones, el EA aplica una martingala basada en la distancia:

  • Sólo se abre una nueva posición si el precio se aleja una distancia de pips definida

  • El tamaño del lote aumenta utilizando un multiplicador ( LotMultiplier )

  • El número máximo de operaciones está limitado ( MaxTradesInSeries )

Comprobación de distancia

if(dist >= reqDist)


7. Filtro de Seguridad AI para Martingala

Este es un mecanismo crítico de control de riesgo.

Antes de añadir una nueva posición de martingala, el EA comprueba:

Si la serie actual es COMPRA

if(s_seriesType == POSITION_TYPE_BUY && prob_bear >= InpAISafetyThreshold) return;

Si la serie actual es VENTA

if(s_seriesType == POSITION_TYPE_SELL && prob_bull >= InpAISafetyThreshold) return;

🔒 Significado:

  • Si el EA detecta una fuerte tendencia contraria

  • Y la confianza supera el InpAISafetyThreshold

  • Se detiene la expansión de la martingala

Esto previene:

  • Martingala durante fuertes rupturas

  • Grandes caídas causadas por la continuación de la tendencia


8. Objetivo de beneficio y cierre de la cesta

El EA controla el beneficio flotante total de todas las posiciones:

if(totalProfitUSD >= TakeProfitTargetUSD)

Una vez alcanzado:

  • Se cierran todas las posiciones

  • La serie Martingale se reinicia

  • El EA espera una nueva configuración lateral

Este enfoque trata todas las posiciones como una sola operación de cesta.


9. 9. Gestión del riesgo

Parada de emergencia basada en el margen

if(((bal - eq)/bal)*100.0 >= StopLossByMarginPercent)

Si la caída de la equidad excede un porcentaje definido:

  • Todas las posiciones se cierran inmediatamente

  • Evita situaciones de ajuste de márgenes


10. Resumen de la estrategia

Componente Propósito
Detector de tendencias AI Clasifica el régimen de mercado
Prob_side Permite operar sólo en rangos
prob_bull / prob_bear Bloquea la martingala durante tendencias fuertes
Envuelve Define los extremos de los rangos
Martingala Recuperación en mercados laterales
Cesta TP Salida rápida tras reversión a la media
Margen SL Protección a nivel de cuenta

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/68537

nModificar pedidos nModificar pedidos

Función para modificar posiciones abiertas y órdenes pendientes

nPosiciones de pérdidas y ganancias nPosiciones de pérdidas y ganancias

Calculadora de pérdidas y ganancias de posiciones (órdenes abiertas)

VR Breakdown level - Estrategia de trading basada en la ruptura del máximo o mínimo anterior VR Breakdown level - Estrategia de trading basada en la ruptura del máximo o mínimo anterior

Estrategia de trading basada en la simple ruptura de los niveles anteriores de máximo (High) o mínimo (Low)

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.