MID NewsGuard
- Utilidades
- Versión: 3.13
- Activaciones: 5
Breve descripción
MID_NewsGuard_EA es un asesor experto para MT5 sin DLL que lee el calendario económico nativo de MetaTrader 5, muestra en tu gráfico las próximas noticias de impacto alto, medio y bajo, y protege automáticamente tus operaciones durante los intervalos de noticias configurables cerrando las posiciones abiertas, eliminando las órdenes pendientes y bloqueando nuevas entradas. Totalmente compatible con MQL5 Market: sin importaciones de DLL.
1. Qué es
MID_NewsGuard_EA es una utilidad de gestión de riesgos sensible a las noticias para MetaTrader 5. No genera señales ni realiza operaciones. Se trata de un asesor experto complementario que se ejecuta junto con tu estrategia actual y la protege de los picos de volatilidad que se producen en torno a las publicaciones económicas programadas.
Tres pilares:
-
Calendario nativo de MT5: lee CalendarValueHistory y CalendarEventById directamente desde los servidores de MetaQuotes. Sin scraping, sin HTTP, sin DLL. Las horas ya están en la hora del servidor del bróker.
-
Detección visual: panel de noticias en la esquina superior izquierda con cuentas atrás, líneas verticales por evento, rectángulos de zona de protección en color y panel de parámetros en la esquina inferior derecha.
-
Protección automatizada: durante un intervalo definido por el usuario en torno a cada evento de noticias seleccionado, cierra las posiciones abiertas, elimina las órdenes pendientes y bloquea nuevas entradas, filtradas por número mágico y/o símbolo.
Cada acción se registra y, opcionalmente, se notifica mediante una alerta.
2. El problema que resuelve
Las publicaciones programadas (NFP, IPC, FOMC, BCE, BoE, PIB, PMI, días festivos) provocan explosiones de los spreads (de 3 a 20 veces), deslizamientos, ampliación de los niveles de stop, riesgo de brechas, faltas de liquidez y tormentas de recotizaciones. Para cualquier operador automático (EA) u operador manual con un modelo de riesgo estricto, esto puede suponer pérdidas muy superiores al stop-loss previsto, sistemas de rejilla que se ejecutan en todos los niveles a la vez y caídas que incumplen las normas de las empresas de inversión.
Muchas empresas de trading por cuenta propia prohíbenahora mantener o abrir operaciones en los minutos previos a la publicación de noticias de gran impacto. Las infracciones pueden invalidar el pago de beneficios. Incluso cuando se permite, el coste del spread y el deslizamiento suele hacer que dichas operaciones tengan una esperanza matemática negativa.
Por qué las soluciones existentes se quedan cortas: la supervisión manual no es escalable; los sitios web de calendarios no coinciden con la hora del bróker; los EA basados en DLL o que recopilan noticias son frágiles y están prohibidos en el Market; desactivar el botón «Algo» detiene todos los EA a la vez.
Qué aporta este EA: el mismo calendario que utiliza tu bróker (sincronización horaria perfecta), selección del nivel de impacto, filtrado por divisa/símbolo, protección «per-magic», registro de operaciones cerradas/eliminadas/bloqueadas, alertas de audio y total compatibilidad con el MQL5 Market.
3. Características
Importación del calendario: llamadas por divisa, actualización cada InpRefreshMinutes (mínimo 60 s en caso de fallo), conservación de la última lista conocida en caso de error de red, sincronización con la hora del servidor.
Dos filtros de impacto independientes: InpShow* controla lo que aparece en el gráfico; InpGuard* controla lo que activa la protección.
Filtrado por divisa y símbolo: InpCurrencies (CSV, vacío = todas), InpSymbolMatch (solo se activa si la divisa de la noticia coincide con el símbolo de la posición), InpOnlyChartSymbol (solo el símbolo del gráfico actual).
Ventana de protección: [ T − InpMinutesBefore, T + InpMinutesAfter] por evento; las ventanas superpuestas se unen por símbolo.
Aplicación (desde OnTick , OnTimer , OnTradeTransaction ):
-
Posiciones abiertas antes de la ventana → cerrar si InpClosePositions .
-
Posiciones abiertas dentro de la ventana → cerrar si InpBlockNew .
-
Órdenes pendientes abiertas antes → se eliminan si InpDeletePending ; dentro → se eliminan si InpBlockNew .
-
Todo ello filtrado por InpMagics (vacío = todos los códigos mágicos), filtros de símbolos y ventana de unión.
Alertas: ventana emergente y sonido previos a las noticias (InpAlertBeforeMin ) antes de cada evento (sin duplicados); alertas opcionales posteriores a la acción en cada cierre o eliminación.
Capa visual — panel superior izquierdo (título, estado de actualización, estado de protección codificado por colores, cuenta atrás por noticia + icono de impacto + divisa + título + valores opcionales de A/F/P), noticias del día siguiente en letra más pequeña, líneas verticales coloreadas según el impacto, rectángulos de zona de protección (rojo = activo, naranja = próximo), panel de control en la esquina inferior derecha, detección automática del tema (oscuro/claro).
Robustez: fondo creado una sola vez y que solo se actualiza (corrige el error de orden z de MT5), etiquetas huérfanas eliminadas, contadores ( G_ClosedCount , G_DeletedCount ) mostrados en el estado, todo en memoria, sin archivos, sin variables globales, sin desviación del temporizador.
4. A quién va dirigido
Adecuado para: operadores de carteras de EA que desean una única capa de protección frente a las noticias como por arte de magia; operadores discrecionales que desean un calendario visual + protección para las operaciones manuales; operadores de empresas de capital propio que necesitan cumplir con las normas con pruebas registradas; EA de tipo grid, martingala o de promediado (los más vulnerables a los picos); los scalpers que evitan las ventanas ruidosas de 5 a 10 minutos; usuarios de cuentas de demostración que evalúan la exposición a las noticias sin riesgo.
No está diseñado para: generar operaciones; sustituir el conmutador global de algoritmos (la v3.13 no puede activar o desactivar el botón de la terminal —restricción de ausencia de DLL—); realizar previsiones fundamentales (actúa en función de la hora programada, no del contenido); realizar backtesting (el Probador de Estrategias no tiene calendario; el EA informa correctamente de que no está disponible y no realiza ninguna acción).
5. Decisiones arquitectónicas
Calendario nativo de MT5 — misma fuente que el bróker → sin desviaciones de zona horaria, sin fallos en la extracción de datos, API oficial, filtrable en origen.
Filtrado por «magic» y por símbolo: las carteras reales combinan estrategias y símbolos; una protección general que cierre todas las posiciones es demasiado drástica. Este EA puede proteger todas las operaciones de un EA específico, solo el símbolo actual, solo los símbolos que contengan la divisa de la noticia o cualquier combinación.
«Cerrar antes» / «bloquear durante »: los EA de estrategias reales no se pueden pausar externamente sin una DLL, y el botón «Algo» es global. El cierre y el bloqueo son el único mecanismo en MQL5 puro que ofrece una protección frente a noticias para toda la cartera, y es auditable.
Sin DLL: el Market prohíbe las DLL. La v3.12 utilizaba user32 .dll ( PostMessageW + GetAncestor ) para pulsar el botón «Algo»: solo para Windows, frágil, bloqueable, no conforme. La v3.13 lo elimina y sustituye el conmutador global por una protección por operación, una compensación deliberada: se pierde la capacidad de detener otros EA, pero se gana en portabilidad y cumplimiento normativo.
Cerrar y bloquear: «Cerrar» gestiona la exposición existente; «Bloquear» gestiona la nueva exposición durante el lanzamiento (incluidos los EA que ignoran el calendario y las órdenes pendientes activadas). Hacer solo una de las dos cosas deja un vacío.
6. Ejemplos de situaciones
A — EA de rejilla para el EURUSD (magic 20240001 ): con InpMagics= "20240001" , alto impacto, −10/+20 min, cerrar + bloquear → a las 14:20, el EA cierra todas las posiciones de la rejilla y elimina las órdenes limitadas pendientes; cualquier posición abierta a las 14:31 se cierra; la actividad normal se reanuda a las 14:50.
B — Cartera con varios EA ( 100, 200, 300 en EURUSD/GBPUSD/USDJPY): InpSymbolMatch=true , InpGuardHigh=true → Las noticias de EE. UU. protegen el GBPUSD y el USDJPY, pero no el EURUSD; las noticias del euro protegen únicamente el EURUSD.
C — Cumplimiento normativo de las empresas de inversión (±2 min en eventos de alto impacto): cada cierre o eliminación se registra con un número de ticket y la hora; el registro es tu prueba de cumplimiento.
D — Observación en cuenta demo: InpEnableGuard=false → solo panel y alertas, sin intervención, perfecto para aprender cuándo tu estrategia está expuesta.
7. Limitaciones
-
No hay un botón global para activar/desactivar los algoritmos (v3.13): no se pueden detener los EA cuyos «magics» no estén incluidos en la lista. Para congelarlo todo, hay que incluir todos los «magics» en la lista o utilizar el botón del terminal.
-
Solo noticias programadas: no reacciona ante titulares inesperados ni a crisis geopolíticas.
-
Requiere que el calendario de MT5 esté en línea: en caso de fallo del servidor, utiliza la última lista almacenada en caché y registra un error.
-
Depende del bróker: PositionClose puede fallar con los códigos 10018/10030 si los stops se amplían o se rechaza el modo de ejecución; vuelve a intentarlo en cada tick, pero no puede forzar un cierre que el servidor rechace.
-
No es compatible con el Strategy Tester: no hay calendario en el tester; utiliza la cuenta demo.
-
Combinación peligrosa: InpMagics vacío + InpSymbolMatch=false + InpOnlyChartSymbol=false = cierre de TODAS las posiciones durante las noticias.
-
Las instancias múltiples activan cada una sus propias alertas (por diseño).
8. Posicionamiento
| Enfoque | Precisión temporal | Sin DLL | Compatible con el mercado | Por «magic» | Por símbolo |
|---|---|---|---|---|---|
| Vigilancia manual | Bueno | N/A | N/A | No | No |
| Sitios web de noticias | ± minutos | N/A | N/A | No | No |
| EA basados en DLL | Bien | ❌ | ❌ | A veces | A veces |
| EA de web scraping | ± minutos | ✅ | A veces | Rara vez | Rara vez |
| Botón «Algoritmo» de la terminal | Instantáneo | ✅ | ✅ | No (global) | No (global) |
| MID_NewsGuard v3.13 | Exacto | ✅ | ✅ | ✅ | ✅ |
9. Resumen técnico
| Atributo | Valor |
|---|---|
| Plataforma | MetaTrader 5 (versión 3000+) |
| Idioma | MQL5 |
| Importaciones DLL | Ninguna |
| Dependencias externas | Calendario económico nativo de MT5 |
| Archivos / variables globales escritas | Ninguna |
| Temporizador | 1 s ( EventSetTimer(1) ) |
| Actualización del calendario | Cada InpRefreshMinutes (mín. 60 s en caso de fallo) |
| Compilación | 0 errores, 0 advertencias |
| Objetos de gráfico | OBJ_VLINE , OBJ_RECTANGLE , OBJ_RECTANGLE_LABEL , OBJ_LABEL (prefijo MIDGuard_ ) |
| Limpieza | ObjectsDeleteAll(0, G_PREFIX) en OnDeinit |
10. Resumen
MID_NewsGuard_EA v3.13 es un filtro de noticias para MT5 diseñado específicamente, sin DLL y que cumple con las normas del mercado. Combina la precisión del calendario nativo de MT5, la claridad de un panel de noticias en el gráfico y la seguridad del cierre, la eliminación y el bloqueo automáticos durante eventos de alto impacto. Protege únicamente las operaciones que tú designes (por «magic» y/o símbolo), registra cada acción y se adapta visualmente a tu gráfico. No es una estrategia, sino la capa de riesgo sobre la que debería haberse construido tu estrategia, especialmente para casos de uso como el grid, la martingala, el scalping y las empresas de trading por cuenta propia.
