Conexión, datos y permiso son hechos distintos

MT5 puede estar conectado al servidor y mostrar una cotización demasiado antigua para la decisión de tu EA. Una sesión cerrada, un símbolo equivocado o las condiciones del programa también pueden explicar su silencio. Separa estas hipótesis antes de reiniciar el terminal o repetir una orden. El objetivo es producir un registro diagnóstico del instrumento real y señalar qué evidencia falta, sin enviar una operación de prueba para ver si responde.

TERMINAL_CONNECTED describe conexión con un servidor de trading. No acredita que tu instrumento haya recibido una cotización reciente ni que tengas permiso para operar. Otros símbolos pueden actualizarse mientras el que necesitas conserva una observación anterior. Identifica servidor, cuenta, nombre completo con sufijo y terminal donde corre el programa.

Si utilizas VPS, revisa la instancia remota efectiva. La pantalla local no demuestra que el programa remoto esté activo, detenido o usando el mismo símbolo. Conserva registros antes de reiniciar y establece qué copia controla la cuenta. Desactivar una copia tampoco prueba que otra haya dejado de enviar solicitudes.

Tres lecturas de tiempo, tres preguntas

TimeCurrent dentro de OnTick devuelve la hora del tick manejado. En OnTimer y otros manejadores refleja la última cotización de cualquier símbolo seleccionado en Market Watch. Otra pareja puede actualizar ese reloj sin actualizar la que interesa. TimeTradeServer, por su parte, es un cálculo del terminal que depende de ajustes horarios del ordenador: no acredita llegada de una nueva cotización.

LecturaQué describeQué no acredita
TimeCurrent en OnTimerÚltima hora de cotización de Market Watch.Actualización del símbolo objetivo.
TimeTradeServerHora de servidor calculada por el terminal.Llegada de un precio nuevo.
SymbolInfoTick del símboloDatos y hora de su última actualización.Aceptación o ejecución de órdenes.

Solicita SymbolInfoTick para el nombre exacto, comprueba si tuvo éxito y conserva time_msc, Bid y Ask. No restes directamente un reloj local de una marca del servidor sin alinear bases temporales. Una edad negativa, una hora ausente o una lectura fallida son incertidumbre, no una cotización recién llegada. Mantén fecha y referencia original si presentas una conversión Europe/Madrid; el idioma de la página no define el reloj del proveedor.

Un segundo en el reloj general, veinticinco en la pareja

Modelo diagnóstico ficticio: todas las horas pertenecen a un mismo reloj ilustrativo de servidor. Observas a las 12:00:00 desde OnTimer. EUR/USD se actualizó a las 11:59:59 y GBP/JPY a las 11:59:35. La lectura general está un segundo por detrás de la hora del ejercicio, pero los datos de GBP/JPY tienen 25 segundos. Comprobar únicamente TimeCurrent oculta esa diferencia. No son observaciones de un proveedor ni un umbral universal de avería.

Conexión activa, dos edades de datosTarjetas del modelo a las 12:00:00 en una base de tiempo común; no muestran una medición de latencia ni un umbral de avería.EJEMPLO DE CÁLCULOEUR/USD11:59:59 ·1 segundoGBP/JPY11:59:35 ·25 segundosSegunda lectura12:00:05 ·30 segundos
Conexión activa, dos edades de datos. Tarjetas del modelo a las 12:00:00 en una base de tiempo común; no muestran una medición de latencia ni un umbral de avería.

TimeCurrent de otra pareja no sustituye la marca del símbolo objetivo.

EUR/USD
11:59:59 ·1 segundo – Puede actualizar el reloj general de OnTimer.
GBP/JPY
11:59:35 ·25 segundos – Necesita su propia consulta y horario.
Segunda lectura
12:00:05 ·30 segundos – Supuesto: misma marca GBP/JPY, sin actualización observada entre lecturas.

Como ejercicio adicional, repite la lectura a las 12:00:05 después de medir cinco segundos con un contador de tiempo transcurrido. Supón que el time_msc del símbolo sigue correspondiendo a las 11:59:35. En la base común del modelo, la edad pasa de 25 a 30 segundos. Esto muestra que esas dos lecturas no observaron una actualización posterior; no mide el retraso de transporte de un tick desde su origen. Tampoco demuestra por sí solo qué servidor o proceso causó la ausencia.

Una lectura sin actualización no determina por sí sola una pérdida monetaria. Para calcularla necesitarías posición, cantidad y precios de ejecución, que estos registros no contienen. Mantén separados el estado técnico observado y cualquier resultado financiero de la cuenta.

Sesión tranquila y programa inactivo no son equivalentes

Compara horario de cotización y de negociación, descansos y avisos de festivos del símbolo. Son comprobaciones separadas. Fuera de sesión puede ser esperable ver un precio antiguo. No apliques las horas de una pareja principal a un índice o metal de la misma lista. Una ausencia repetida durante sesión abierta merece investigación, pero ningún número de segundos sirve para todos los instrumentos y estrategias.

OnTick corresponde al símbolo del gráfico que aloja el EA. Si ya existe un evento NewTick en cola o en procesamiento, no se añade otro del mismo tipo. El número de entradas OnTick en el registro no tiene que igualar el de ticks. Un EA con varios símbolos debe distinguir su gráfico anfitrión de los instrumentos usados en la decisión.

Desactivar AutoTrading impide al EA enviar solicitudes de trading, sin detener sus cálculos. Registra por separado actividad del programa, actualización de datos, condiciones de señal y respuestas. Un mensaje periódico acredita ese mensaje, sin demostrar que hubiera señal de entrada ni permiso para ejecutarla. «Sin señal», «sin datos» y «operación no permitida» conducen a investigaciones diferentes; el silencio genérico no permite elegir entre ellas.

Un registro que permita investigar

Guarda hora de observación y base temporal, servidor y símbolo, conexión, éxito de lectura, marca del tick, Bid/Ask, sesión, estado del programa y última respuesta de trading. Por ejemplo: «12:00:00, reloj del modelo; GBP/JPY; lectura correcta; tick 11:59:35; sesión aún sin confirmar; nuevas entradas pausadas». Marca explícitamente lo desconocido y enmascara datos de cuenta; no incluyas contraseña en una consulta técnica.

Que vuelvan los precios no aclara el resultado de una solicitud anterior. Si hubo respuesta incierta, reconcilia posiciones, órdenes pendientes e historial antes de repetirla. La guía de errores de MT4 y MT5 desarrolla ese paso. Mientras investigas, comprueba por separado exposición y protección aceptada: apagar el EA no confirma SL/TP actuales ni cierra posiciones.

Tres acciones sin enviar órdenes de diagnóstico

  1. Registra el servidor, símbolo completo y horarios de cotización y negociación de la cuenta relevante. Relaciónalos con fecha y hora de la incidencia para decidir si esperar una actualización en ese momento estaba justificado.
  2. Toma en demo dos observaciones con resultado de lectura, marca del tick, Bid/Ask, conexión y estado del programa. Mide el intervalo de repetición y reproduce 25→30 segundos del ejemplo; marca campos ausentes y no sustituyas un fallo por edad cero.
  3. Antes de reanudar solicitudes, reconcilia cuenta y requisito de actualización de tu regla. Conserva registros y exposición restante; si falta evidencia, envía datos anonimizados al desarrollador o proveedor por su canal oficial, sin presentar una causa supuesta como diagnóstico confirmado.