Un filtro útil responde a una pregunta práctica: ¿puede este EA considerar una nueva posición con la información disponible? El nombre de una sesión o un calendario vacío no bastan. La regla necesita un reloj verificado, una cobertura clara de eventos y cotizaciones actuales del símbolo operado.
Empieza con una separación sencilla: gestiona la exposición existente con sus propias reglas; permite considerar nuevas entradas solo cuando se superen los controles necesarios. Esta guía concreta esa separación, presenta un breve registro de decisiones y explica cómo probarlo. No ofrece un EA terminado ni pruebas de rentabilidad.
1. Define qué controla el filtro
Distingue la regla de horario, la restricción por noticias programadas y las condiciones de entrada de la estrategia. El horario define cuándo se permite operar; las noticias excluyen determinados intervalos; las condiciones de la estrategia identifican la oportunidad. Superar los dos primeros controles no crea una oportunidad ni elimina los límites de ejecución y riesgo de la cuenta.
Usa tres resultados explícitos: PASS, BLOCK y UNKNOWN. Son etiquetas de datos definidas por el autor, no códigos de error de MT4. Un intervalo cerrado conocido puede bloquear; la información ausente no justifica un resultado favorable. En la política del ejemplo, tanto un bloqueo como un dato obligatorio desconocido mantienen en espera la consideración de nuevas entradas. La gestión aplica sus propias comprobaciones de datos y permisos.
2. Escribe las reglas de tiempo y cobertura antes de probar
Utiliza la correspondencia horaria con fechas de la guía de sesiones y las definiciones de eventos de la guía del calendario económico. Documenta una especificación con versión que otra persona pueda aplicar a los mismos datos.
- Instrumento y alcance: bróker, cuenta, símbolo, divisas relevantes y familias de eventos seleccionadas, incluidas sus fases posteriores.
- Sesión: fechas completas, zona horaria, días de la semana y extremos incluidos o excluidos con precisión.
- Correspondencia horaria: relación verificada entre UTC, cualquier regla local y la hora del servidor del bróker para cada fecha.
- Exclusión por noticias: fuente del horario, intervalos anteriores y posteriores, solapamientos y tratamiento de eventos provisionales, retrasados o modificados.
- Requisitos de datos: cobertura de fechas y divisas, estructura, versión de la fuente, estado de actualización y límites de antigüedad.
- Respuesta a fallos: qué mantiene en espera las entradas, cómo siguen la supervisión y la gestión, y qué debe conciliarse antes de reanudar.
Si una sesión local cruza la medianoche, define a qué día de trading pertenece y trata expresamente el cambio de fecha. Incluye eventos de días adyacentes cuya exclusión alcance la decisión. En cambios de horario de verano, verifica cómo se convierten las horas locales repetidas o inexistentes. No sustituyas silenciosamente una correspondencia ausente por la zona de visualización del ordenador.
3. Valida la versión del calendario, no solo la descarga
Una instantánea es una versión guardada del calendario utilizada para decidir. Una descarga correcta o una lista de eventos vacía no demuestran que esté completa. Comprueba que el proveedor cubra las divisas, fechas y tipos de evento solicitados, que se hayan recuperado todos los registros y que horarios, unidades y versiones se hayan interpretado correctamente.
Guarda por separado la información de actualización del proveedor y tu hora de recepción. Una respuesta recién recibida puede contener datos antiguos. Sustituye la instantánea activa solo después de validar toda la nueva versión: un archivo parcial o una lista a medio actualizar no deben considerarse válidos. Un refresco fallido o una nueva lectura de la caché no deben reiniciar la antigüedad de la última versión comprobada.
Una instantánea verificada y suficientemente reciente permite establecer que no hay intervalos seleccionados activos dentro de su cobertura declarada. La cobertura ausente, un cambio horario sin resolver, un evento relevante sin hora conocida o una versión caducada dejan el estado desconocido. Mantén en espera las entradas dependientes según lo previsto y continúa la gestión y el tratamiento de fallos definidos. Las noticias imprevistas quedan fuera de la protección de un calendario programado.
4. Comprueba por separado la cotización del símbolo operado
Registra la recepción y validez del Bid/Ask de ese símbolo mediante una medición del tiempo transcurrido que contemple reinicios y cambios del reloj. Una recepción reciente no demuestra que los datos de origen estén actualizados ni que haya ejecución disponible. Valida por separado el flujo de datos, el contexto horario, el spread y los permisos de trading; consulta la supervisión de EA.
En MT4, TimeCurrent() dentro de OnTick() corresponde al tick procesado; en otros manejadores puede reflejar la última cotización de cualquier símbolo de Observación del mercado. No demuestra que tu propio símbolo tenga una cotización reciente. En vivo, TimeGMT() depende de la configuración horaria del ordenador; en el probador de MT4 equivale a TimeCurrent() simulado. La diferencia entre ambos en el probador no reconstruye los desfases históricos del bróker.
5. Sigue un registro de decisiones inventado
Solo para este ejemplo, usa la sesión UTC [08:00, 17:00) del 2026-03-16. Conserva la unión hipotética de noticias A/B [12:15, 13:05) de la guía anterior. Se supone que toda la cobertura y los metadatos necesarios están verificados; la cobertura de eventos abarca el día UTC completo, suficiente para estas comprobaciones diurnas y sus márgenes. No se afirma ningún proveedor ni publicación real.
Elige una antigüedad máxima de la instantánea de 30 minutos y de la cotización del propio símbolo de 5 segundos para ilustrar el cálculo. Son parámetros elegidos por el autor, no frecuencias de actualización recomendadas ni garantías de seguridad. La primera instantánea se verificó a las 12:00:00; una versión completa y actualizada se verifica a las 13:06:00. A las 17:00:00 hay otra instantánea válida. Las antigüedades presuponen mediciones de tiempo verificadas y comparables.
| Decisión · UTC | Antigüedad del calendario | Antigüedad de la cotización | Solo resultado de tiempo/datos |
|---|---|---|---|
12:10:00 | 10 min | 1 s | Supera estos controles; siguen los demás |
12:20:00 | 20 min | 1 s | Bloqueo: intervalo de noticias activo |
13:05:00 | 65 min | 1 s | Espera: calendario antiguo |
13:06:06 | 6 s | 12 s | Espera: cotización antigua del símbolo |
13:06:07 | 7 s | 1 s | Supera estos controles; siguen los demás |
17:00:00 | 0 s | 1 s | Bloqueo: fuera de horario |
A las 13:05:00 termina el intervalo de noticias, pero la instantánea antigua tiene 65 minutos. A las 13:06:06 la nueva tiene 6 segundos, pero la última recepción del símbolo, a las 13:05:54, tiene 12 segundos. Una recepción a las 13:06:06 tiene solo 1 segundo a las 13:06:07. Esa fila supera los controles ilustrados de tiempo y datos, no los de estrategia, ejecución o riesgo. El extremo de las 17:00 queda excluido. No se simula ninguna orden, salida ni rentabilidad.
6. Mantén la gestión y concilia las órdenes del bróker
Bloquear nuevas entradas no debe omitir la supervisión y gestión previstas de las posiciones existentes. Las acciones de gestión siguen necesitando datos y permisos válidos propios; la ausencia de precios no autoriza a modificar un stop a ciegas. Define por separado cómo mantener o cancelar órdenes pendientes y verifica el estado aceptado por el bróker, sin dar por realizada una solicitud de cancelación.
El botón AutoTrading de MT4 prohíbe las solicitudes automáticas de trading, mientras el EA y OnTick() pueden seguir ejecutándose. No es una pausa exclusiva de nuevas entradas: también puede afectar a la gestión que requiera solicitudes de trading. Distingue este botón de retirar un EA o desconectar el terminal. La protección existente en el bróker y la gestión del lado del cliente son mecanismos distintos; consulta la gestión del riesgo.
7. Evita que la descarga bloquee el proceso de decisión
Usa una caché completa y validada para decidir y un proceso controlado para actualizarla. Define tiempos de espera, avisos de fallos y la activación de nuevas versiones. Ejecutar la gestión una vez antes de una solicitud lenta no la mantiene funcionando mientras esa solicitud bloquea el mismo EA.
Opcional: límites de red y eventos en MT4
En MQL4, WebRequest() es síncrona. Trasladarla de OnTick() a OnTimer() dentro del mismo EA no la convierte en asíncrona; la espera aún puede retrasar el programa. Un componente de descarga separado puede suministrar una instantánea validada, pero también deben verificarse su entrega y sus fallos. Un temporizador organiza la ejecución; no garantiza una gestión ininterrumpida.
La secuencia lógica consiste en ejecutar la gestión y supervisión previstas, evaluar los controles obligatorios para nuevas entradas y, solo al superarlos, considerar una señal actual con controles de ejecución y riesgo. Esto describe responsabilidades, no código MQL4 ejecutable ni una garantía de procesamiento puntual. Verifica la integración real, los permisos y la respuesta a fallos antes de confiar en ella.
8. Conserva un registro que sobreviva a los reinicios
Registra la hora UTC de decisión, la hora del servidor y su correspondencia verificada, la versión de reglas, el identificador de la instantánea, las horas de origen y recepción, la cobertura, la recepción y antigüedad de la cotización, las exclusiones activas y los motivos del resultado. Conserva candidatos rechazados además de controles superados. El registro debe explicar una espera sin reconstruirla después con un calendario revisado.
Tras reiniciar o reconectar, concilia con el bróker posiciones, órdenes pendientes y solicitudes sin resolver. Restaura solo el estado verificable: reiniciar no significa que la cuenta no tenga posiciones ni que la caché esté actualizada. Evita procesar repetidamente el mismo candidato. Si se desconoce un estado necesario, mantén las entradas en espera hasta conciliarlo y continúa la respuesta a fallos y la gestión definidas.
9. Prueba la corrección antes de interpretar un backtest
Antes de medir resultados de mercado, crea casos pequeños y fijos con resultados esperados. Incluye:
- Inicio de sesión incluido, final excluido e intervalos que cruzan la medianoche.
- Inicio y final de exclusiones por noticias, eventos solapados y horarios retrasados o modificados.
- Datos ausentes, parciales, mal formados o fuera de cobertura, incluida una respuesta vacía sin verificar.
- Antigüedad justo en el límite elegido y ligeramente superior, además de un tick reciente de otro símbolo mientras el operado sigue desactualizado.
- Reinicio, salto del reloj, actualización fallida y sustitución interrumpida de la instantánea sin reiniciar su antigüedad.
- Órdenes mantenidas por el bróker y gestión durante el bloqueo de entradas, incluidos el rechazo de cancelaciones y la falta de permisos de trading.
El probador de estrategias de MT4 no ejecuta WebRequest() ni procesa eventos Timer. Prueba la lógica común con datos congelados y una correspondencia horaria histórica verificada mediante una vía admitida por el probador. Reproduce cada instantánea solo cuando habría estado disponible. Una tabla histórica de eventos no reproduce por sí sola la descarga en vivo ni la programación del temporizador. Consulta la guía de backtesting en MT4 para otras limitaciones.
10. Evalúa la utilidad por separado del funcionamiento correcto
Un filtro bien implementado puede excluir operaciones ganadoras y perdedoras. Compara la regla propuesta con una referencia declarada usando la misma estrategia, datos y supuestos de costes. Conserva todos los candidatos y motivos de rechazo, reserva datos posteriores para validar e incluye costes de ejecución realistas. Explorar muchas ventanas y publicar solo la ganadora puede sobreajustar la muestra.
Después observa la integración real en demo con datos normales y fallos. Mide actualizaciones fallidas, esperas por datos antiguos, interrupciones de cotizaciones, retrasos de gestión y respuestas del bróker. Un registro claro muestra qué hizo el sistema; no demuestra rentabilidad futura. Antes de ampliar su uso, confirma:
- La especificación con versión, la correspondencia horaria y la política de selección de eventos están documentadas.
- Los controles de cobertura y antigüedad distinguen estados libres, bloqueados y desconocidos.
- Los casos de extremos y fallos producen los resultados esperados.
- Las pruebas históricas respetan cuándo estaba disponible la información y declaran los datos ausentes.
- Las pruebas demo verifican descargas, reinicios, continuidad de gestión y estado de las órdenes del bróker.
- Cualquier utilidad alegada se evalúa por separado, con costes y datos posteriores, sin inventar cifras de rendimiento.
11. Preguntas sobre filtros de EA
¿Un calendario sin restricciones significa que el EA debe entrar?
No. Un calendario verificado sin restricciones solo supera una parte de la decisión. Siguen siendo necesarios el horario, la calidad de cotizaciones, la ejecución, el riesgo de la cuenta y una señal actual de la estrategia. Las noticias inesperadas pueden llegar fuera del calendario.
¿Por qué una descarga reciente puede dejar el estado desconocido?
La respuesta puede ser antigua, incompleta, ajena a la cobertura necesaria o estar mal interpretada. La hora de recepción no valida por sí sola los datos del proveedor. Mantén las entradas en espera hasta superar los controles del dato requerido.
¿Puedo probar descargas de noticias en vivo en el probador de MT4?
El probador documentado no ejecuta WebRequest ni eventos Timer. Usa datos congelados y con versión, y una vía admitida para probar la lógica común; después verifica por separado en demo la descarga y la programación reales.
¿Debo usar AutoTrading para pausar por noticias?
No se limita a nuevas entradas: también puede prohibir solicitudes automáticas utilizadas por la gestión. Aquí se plantea un control interno de entradas con responsabilidades de gestión verificadas por separado, no un interruptor universal para eliminar exposición.
12. Referencias y alcance
La referencia oficial de MQL4 sobre WebRequest explica las solicitudes síncronas y sus restricciones. Las limitaciones del probador de estrategias de MT4 documentan la simulación temporal y las funciones externas y eventos no admitidos. Verifica qué funciones admite tu plataforma e integración exactas; no supongas que un ejemplo de otra plataforma es compatible. Referencias comprobadas el 2026-10-17.
Esta guía completa el grupo de guías de sesiones y noticias con un marco de reglas y validación. Horarios, instantáneas, antigüedades y resultados son casos didácticos inventados. Los umbrales no son recomendaciones; no se afirma haber ejecutado un EA ni obtenido resultados de trading. Los filtros no eliminan el riesgo de mercado, ejecución o cuenta.