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
Asesores Expertos

RegimeRouter: clasificador de tendencias y rangos con un registro de la tasa de victorias por régimen - Asesor Experto para MetaTrader 5

Ali Akbar
Ali Akbar
  • MQL5 Developer & Algorithmic Trading Specialist en  Freelance
  • Pakistán
  • 1596
Hi, I'm Ali. 24 years old, trading for around 5 years, and developing MQL5/MQL4 tools. I mainly work on automating manual strategies, fixing broken EA logic, and building clean indicators. I care more about clean architecture and proper risk management than over-complicated code. Always down to talk
| Spanish English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Visualizaciones:
10
Ranking:
(2)
Publicado:
RegimeRouter1.mq5 (49.06 KB) ver
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

RegimeRouter: clasificador de tendencias y rangos con un registro de la tasa de victorias por régimen


El problema

Una regla que sigue la tendencia pierde dinero en un rango. Una regla de reversión a la media se ve aniquilada en una tendencia. La mayoría de los EA eligen una de las dos y esperan que el mercado coopere. La solución habitual es un único filtro ADX. El ADX mide una sola cosa, la fuerza direccional, y no dice nada sobre si los rendimientos son realmente persistentes o si revierten a la media.

Cómo clasifica

En cada barra cerrada, mide tres propiedades independientes de la serie de precios reciente.

  • ADX: la fuerza direccional clásica.
  • Exponente de Hurst: análisis del rango reescalado (R/S) de los rendimientos logarítmicos. Por encima de 0,5, la serie es persistente. Por debajo de 0,5, es antipersistente. En 0,5, se trata de un paseo aleatorio.
  • Autocorrelación de retardo 1: indica si un movimiento tiende a ir seguido de otro movimiento en la misma dirección o de un retroceso brusco.

Cada uno de ellos emite un voto: +1 para la tendencia, -1 para el rango y 0 para indeciso. Los votos se suman. Si la suma supera el valor de `InpMinVotes` en cualquier dirección, el régimen es «TENDENCIA» o «RANGO». De lo contrario, es «NEUTRO» y el EA no opera en absoluto. Si no se puede calcular alguno de los tres, no vota y la barra se considera NEUTRAL. La clave está en que haya consenso. Un indicador por sí solo es como lanzar una moneda al aire con pasos adicionales.

Cómo se decide

Régimen Módulo
TENDENCIA Ruptura del máximo o mínimo de la barra N, considerada únicamente en la dirección hacia la que ya apuntan la media móvil exponencial (EMA) rápida y la lenta.
RANGE Operar en contra de un z-score ampliado del precio frente a su propia media móvil. Comprar en la cola baja, vender en la cola alta.
NEUTRO Nada.

El libro mayor

Cada posición se abre con un número mágico compuesto por InpMagicBase más el identificador del régimen, de modo que el régimen que generó una operación queda registrado en la propia operación. Al iniciarse, el EA recorre el historial de operaciones, las agrupa por identificador de posición y reconstruye el registro. Este registro se conserva tras un reinicio y al trasladarse a otra terminal.

Para cada módulo, informa de la tasa de ganancias bruta, ellímite inferior del 95 % de Wilson, latasa de ganancias de equilibrio implícita en la ganancia media y la pérdida media de ese módulo, el factor de beneficio y un veredicto.

TREND 96 tr 38 W bruto 39,6 % wilson95 30,4 % umbral de rentabilidad 34,2 % PF 1,26 neto +734,84 [SIN PROBAR]

Las dos cifras del medio son las que importan. Un seguidor de tendencias de 2R es rentable a partir de aproximadamente el 34 %. Un sistema de inversión en contra de la tendencia de 1R necesita más del 50 %. Y una tasa de ganancias bruta basada en seis operaciones no prueba nada. El veredicto se reduce simplemente a si el límite inferior supera el umbral de rentabilidad, que es la única forma de afirmar que «este módulo funciona» que se sostiene con una muestra pequeña.

El conmutador A/B

InpForceRegime desactiva el enrutador y obliga a que todas las operaciones pasen por un único módulo. Ejecuta el mismo símbolo y el mismo periodo tres veces —AUTO, luego ALWAYS_TREND, luego ALWAYS_RANGE— y obtendrás una medida directa de si el clasificador aporta algo. Las tres lecturas siguen registrándose en una ejecución forzada, por lo que puedes ver cómo se comportó el módulo forzado en las barras que el enrutador habría rechazado.

Hazlo antes de confiar en él. La idea del enrutador es una hipótesis, no un resultado.

Backtest

H1 · del 1 de enero de 2026 al 20 de septiembre de 2026 · 10 000 USD · Retraso aleatorio activado · todas las entradas por defecto. Dos símbolos, ambos mostrados.

EURUSD H1

Métrica Valor
Beneficio neto total +900,42
Beneficio bruto / pérdida bruta 3 712,84 / 2 812,42
Factor de beneficio 1,32
Ganancia esperada 9,00
Factor de recuperación 1,71
Total de operaciones 100
Caída máxima del saldo 505,32 (4,56 %)
Caída máxima del capital 527,80 (4,76 %)
Módulo Operaciones Operaciones ganadoras Bruto Mínimo del 95 % de Wilson Neto
TENDENCIA 96 38 39,6 % 30,4 % +734,84
RANGO 4 4 100,0 % 51,0 % +165,58

96 + 4 = 100 operaciones y +734,84 + 165,58 = +900,42, por lo que el libro mayor concuerda exactamente con el informe del simulador.

XAUUSD H1 — mismo EA, mismos parámetros, mismo periodo

Métrica Valor
Beneficio neto total −1 554,11
Saldo final 8 445,89
Total de operaciones 85
Módulo Operaciones Operaciones ganadoras Bruto Mínimo de Wilson al 95 % Neto
TENDENCIA 78 26 33,3 % 23,9 % −1 576,33
INTERVALO 7 4 57,1 % 25,0 % +22,22

78 + 7 = 85 operaciones y −1 576,33 + 22,22 = −1 554,11. Esta operación genera pérdidas. La publico junto a la ganadora a propósito, porque una lista que solo muestra el símbolo que funcionó no dice nada sobre el EA.

Lo que muestra y lo que no muestra ese resultado

Lee esta parte antes de utilizarlo.

  • El módulo TREND no ha demostrado su eficacia en ninguno de los dos símbolos. En el EURUSD, su ganancia media fue de 93,35 y su pérdida media de 48,49, por lo que necesitaba que alrededor del 34,2 % de las operaciones fueran ganadoras solo para alcanzar el umbral de rentabilidad. Ganó el 39,6 %. Sin embargo, el límite inferior del 95 % de Wilson para esa tasa de ganancias es del 30,4 %, lo que está por debajo del umbral de rentabilidad. Con este tamaño de muestra, el resultado es coherente con la ausencia total de ventaja. En el XAUUSD, el mismo módulo registró un 33,3 % en términos brutos y un 23,9 % en el límite inferior, y perdió dinero. El veredicto es el mismo en ambos casos: aún no hay pruebas suficientes.
  • Se necesitarían aproximadamente 320 operaciones con la tasa de aciertos del EURUSD para que el límite inferior superara el umbral de rentabilidad. Un símbolo en H1 generó 100 en unos nueve meses, por lo que se trata de un problema de cartera, no de una prueba retrospectiva más larga.
  • El módulo RANGE prácticamente no se ha probado. Cuatro operaciones en el EURUSD y siete en el XAUUSD. La tasa de acierto del 100 % en el EURUSD no significa nada, y esa es precisamente la razón de ser de la columna de Wilson.
  • No hay ninguna prueba fuera de la muestra. Un período, un marco temporal, dos símbolos.
  • El modelado se realizó «por cada tick», no con ticks reales. Las salidas se dejan en manos del SL y el TP del bróker, por lo que la trayectoria intrabárica es importante. Vuelve a ejecutarlo con ticks reales antes de sacar conclusiones.

Lo publico porque lo útil es el método de medición, no porque tenga una ventaja validada que venderte. Haz la prueba A/B. Si el router no supera a sus propios dos módulos en tu símbolo, eso también merece la pena saberlo.

Notas sobre la ejecución

  • Las señales se evalúan al cierre de la barra, por lo que está diseñado para M15 y superiores.
  • Las posiciones se abren sin stops; posteriormente, los stops se fijan a partir del precio de ejecución real. Un stop calculado a partir de una instantánea previa a la operación puede haber quedado ya invalidado en el momento en que se ejecuta la orden.
  • Si falla la aplicación de los stops, la posición se cierra inmediatamente en lugar de quedar desprotegida.
  • Las distancias de los stops se limitan al nivel de stops y al nivel de congelación propios del símbolo.
  • Las salidas se rigen por los niveles de SL y TP del bróker. No hay cierre forzado manual programado.
  • Stop dinámico ATR opcional para operaciones de tendencia, aplicado como máximo una vez por barra y nunca en la barra de entrada.
  • Una posición a la vez. En una cuenta de compensación, una segunda orden sobre el mismo símbolo se fusiona con la posición existente en lugar de convertirse en una operación independiente, lo que corrompería silenciosamente el libro mayor.
  • Determinación del tamaño de lote basada en el riesgo, un límite de pérdidas diario, un límite máximo de operaciones diario, un filtro de spread, una relación mínima entre el take-profit y el spread, y un filtro de sesión opcional.

Parámetros principales

Entrada Por defecto Qué hace
InpForceRegime Automático Fuerza un módulo para realizar una prueba A/B del clasificador
InpMinVotes 2 Votos necesarios de un total de tres para confirmar un régimen
InpADXTrendLevel / InpADXRangeLevel 25 / 20 Umbrales de votación del ADX
InpHurstBars 256 Barras de rendimientos posteriores a la estimación de Hurst
InpHurstAdaptive desactivado Evalúa a Hurst en función de su propia distribución en lugar de niveles fijos
InpAutoCorrThreshold 0,05 La autocorrelación debe superar este umbral para poder votar
InpBreakoutBars 20 Módulo de tendencia: máximo/mínimo de N barras para la ruptura
InpRangeZEntry 2,0 Módulo de rango: puntuación z a partir de la cual realizar una operación de «fade»
InpRiskPercent 0,5 Riesgo por operación, % del saldo
InpMagicBase 772 000 A esto se le añade el identificador de régimen

Nota sobre el umbral de Hurst

Hay un parámetro llamado «InpHurstAdaptive» , desactivado por defecto.

La línea de tendencia/rango típica para el exponente de Hurst es 0,5. En la práctica, esa línea se encuentra en un lugar erróneo. El estimador R/S presenta un sesgo al alza en una muestra finita, por lo que una estimación de 256 barras de una serie ordinaria se sitúa muy por encima de 0,5. Medido en el EURUSD H1, los valores promediaron 0,568 y solo cayeron por debajo de 0,45 en dos ocasiones de un total de 419 observaciones. Frente a una banda fija de 0,45 / 0,55, ese indicador no mide nada. Es un voto casi permanente a favor de la TENDENCIA.

Al activar InpHurstAdaptive , se elimina la escala absoluta y, en su lugar, se plantea una pregunta relativa: ¿es la serie más persistente de lo que ha sido este símbolo recientemente? Se conservan las últimas N lecturas y el voto se emite sobre los percentiles de ese historial en lugar de sobre 0,5.

El coste de esto es real. Por su diseño, el votante vota entonces a RANGE en una proporción fija de barras, independientemente de lo que esté haciendo el mercado. Así que se trata de un conmutador, no de una reescritura. Está desactivado por defecto porque las pruebas retrospectivas anteriores se ejecutaron con él desactivado, y no quiero que el valor predeterminado de lanzamiento sea una configuración para la que no tengo resultados.

Ninguna estrategia tiene garantizada la rentabilidad. Esto te ofrece una estructura para realizar pruebas con la medición incorporada. No te proporciona ninguna ventaja.

— Ali Rajput


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

One-Click Trade Manager: tamaño de lote basado en el riesgo con punto de entrada, stop y objetivo en un solo clic One-Click Trade Manager: tamaño de lote basado en el riesgo con punto de entrada, stop y objetivo en un solo clic

Calcula el tamaño de la posición a partir de tu porcentaje de riesgo y la distancia del stop, y luego abre la operación con el stop loss y el take profit ya establecidos. Nunca opera por su cuenta.

Contract Sizer: ladder, floor and a breaker that survives a deposit Contract Sizer: ladder, floor and a breaker that survives a deposit

Tres protecciones de tamaño de posición que funcionan de forma diferente; confundirlas es la razón por la que tantas cuentas se quedan sin fondos: - escalonada: un contrato por cada X del saldo, que siempre se aplica como un límite máximo (CAP), incluso con el tamaño de lote manual; - «floor»: por debajo del capital mínimo no se opera; se necesita un nuevo ingreso; - «breaker»: se detiene al X % por debajo del máximo, independientemente del tamaño de la cuenta, y no se reactiva por sí solo. Lo que resuelve esta biblioteca y que casi ninguna otra hace: un ingreso no es un beneficio, y una retirada no es una pérdida. El «breaker» mide la caída con respecto al máximo del saldo. Si no se trata, un depósito realizado DURANTE una caída eleva tanto el saldo como el máximo, y la protección deja de detectar la caída justo cuando sería más útil. En este caso, los depósitos y las retiradas desplazan el máximo en la misma cantidad. El máximo se guarda en un archivo: un «breaker» que olvida el máximo al reiniciar la terminal no es un «breaker». La demo simula un depósito en el punto más bajo de una caída. Ejecútala con el depósito activado y desactivado y compara la columna «caída».

Accumulation/Distribution Accumulation/Distribution

El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.

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.