ForexBestRobots.comComparar EAs →

ESTABILIDAD VPS Y MT4 · GUÍA 4

Cómo supervisar un EA de Forex en MT4: cotizaciones, heartbeat y alertas

Supervise un EA de Forex en MT4 con datos por símbolo, señales de actividad, órdenes actuales y alertas probadas. Distinga inactividad normal de fallos operativos.

16 min de lecturaRevisado por el equipo editorial de ForexBestRobots
Cuatro controles separados: VPS y sistema operativo, MT4 y datos de símbolos necesarios, heartbeat documentado del EA y órdenes actuales del bróker. Reúna las observaciones antes de actuar.Supervisión de EA en MT4Cuatro controles antes de intervenir

Evidencia operativa; sin garantía de disponibilidad o negociación.

Un VPS en verde y una lista de operaciones sin novedades responden a preguntas diferentes. Para supervisar un EA necesita pruebas recientes del terminal, los datos necesarios, el programa y las órdenes del bróker, además de un canal de alertas que siga funcionando cuando el terminal emisor se detenga.

Esta es la Guía 4 de la serie Estabilidad VPS y MT4. Empiece por alojamiento y continuidad, use la Guía 2 para configurar y la Guía 3 para recuperar. Aquí aprenderá a observar el funcionamiento normal y detectar incertidumbre antes de que crezca un incidente.

Defina el funcionamiento normal antes de buscar fallos

Un EA puede funcionar correctamente sin abrir operaciones. El filtro horario, el límite de spread, una cesta existente, una regla de riesgo o la ausencia de una señal válida pueden explicar la inactividad. La supervisión debe comprobar si el entorno previsto puede cumplir su función documentada, incluida la gestión de órdenes existentes, sin exigir un número mínimo de operaciones.

Registre la identidad del terminal, la cuenta y el servidor previstos, los símbolos y marcos temporales exactos, la versión del EA, los parámetros aprobados, las reglas de gestión de órdenes y las sesiones esperadas. Incluya los demás símbolos que necesite el programa. Pregunte al desarrollador qué estados, registros y comportamiento tras un reinicio ofrece realmente. Un archivo EX4 no proporciona automáticamente una señal periódica de actividad ni una explicación completa de cada decisión.

Distinga tres estados: normal, problema confirmado y desconocido. Si un panel deja de actualizarse, muestre la hora de la última observación y marque el estado actual como desconocido; no presente un indicador verde antiguo como prueba vigente.

Compruebe cuatro niveles de evidencia

NivelObservación útilLo que no demuestra por sí sola
VPS y sistema operativoDisponibilidad, reinicios, presión sobre los recursos, almacenamiento y proceso MT4 previsto.Un equipo accesible o un proceso abierto no demuestra que la lógica del EA responda.
MT4 y datos de mercadoCuenta y servidor correctos, conexión y datos recientes de todos los símbolos necesarios.Un gráfico que se actualiza no demuestra que otro símbolo necesario reciba datos.
Funcionamiento del EAInicialización correcta, estado documentado, permisos y una señal de actividad significativa, si existe.Un mensaje del temporizador no demuestra que se hayan completado los cálculos o la gestión de posiciones.
Órdenes y gestión en el brókerÓrdenes abiertas y pendientes actuales, protección aceptada, resultados de solicitudes e instancia responsable.El balance, un informe antiguo o la última operación correcta no confirman la protección actual.

Son comprobaciones distintas. Puede revisarlas manualmente o reunirlas mediante un sistema de supervisión configurado para ello; MT4 no las combina automáticamente en el panel descrito aquí.

Cuatro controles separados: VPS y sistema operativo, MT4 y datos de símbolos necesarios, heartbeat documentado del EA y órdenes actuales del bróker. Reúna las observaciones antes de actuar.
Cómo leer este esquema: los cuadros 1–4 son fuentes de evidencia distintas, no cuatro luces verdes garantizadas. Confirme qué observaciones están actualizadas y cuáles son desconocidas. La franja inferior indica que hay que investigar antes de intervenir; no autoriza un EA de respaldo automático.

Una revisión de cinco minutos sin modificar la estrategia

  1. Confirme dónde funciona el EA. Revise el terminal y la cuenta previstos, no un gráfico local que quedó abierto tras la migración.
  2. Compruebe la sesión y las cotizaciones necesarias. Determine si ahora se esperan actualizaciones y si los símbolos exactos del bróker tienen datos utilizables.
  3. Revise inicialización y permisos. Lea los mensajes recientes de Experts y Journal y el estado documentado del EA.
  4. Revise las órdenes actuales. Confirme quién las gestiona y qué protección existe realmente en el bróker.
  5. Compruebe el circuito de supervisión. Verifique la hora del último informe y que una alerta de prueba llega al dispositivo previsto.

Cinco minutos es un formato de revisión, no un diagnóstico garantizado ni un tiempo de respuesta adecuado para cualquier EA. Ante una duda, conserve las pruebas y consulte la guía de errores de EA. No relaje límites de spread o riesgo, cambie Magic Numbers ni fuerce una entrada para poner un indicador en verde.

Tener conexión no equivale a recibir cotizaciones recientes

IsConnected() informa de la conexión del terminal con el servidor. No certifica datos recientes para todos los símbolos, acceso a la negociación ni el buen funcionamiento de la estrategia. Compruebe los nombres exactos, incluidos los sufijos del bróker, y los datos que el EA necesite fuera de su propio gráfico.

MarketInfo(symbol, MODE_TIME) devuelve la hora del último tick recibido para ese símbolo, según la referencia temporal del servidor del bróker. La última cotización es evidencia histórica, no un reloj que avance sin nuevos ticks. Durante fines de semana, pausas de sesión y periodos de poca actividad, una cotización antigua puede ser normal. Compruebe el horario real del bróker antes de diagnosticar un fallo del flujo de datos.

Defina controles de antigüedad por símbolo y sesión después de observar el comportamiento normal. No existe un plazo universal seguro para todos los pares de Forex o EA. Un Bid que no cambia tampoco basta: varios ticks pueden tener el mismo precio. Cuando sea posible, registre la recepción de eventos de datos, no solo los cambios de precio.

Use el reloj adecuado para cada pregunta

Reloj o marca temporalSignificadoLímite para la supervisión
TimeCurrent()Última hora conocida del servidor. En OnTick() corresponde al tick procesado; en otros manejadores, a la última cotización de un símbolo seleccionado en Market Watch.Puede dejar de avanzar sin cotizaciones y no prueba la actualidad del símbolo concreto del EA.
MODE_TIMEHora del último tick recibido para el símbolo indicado.Use la referencia temporal correcta del servidor y el contexto de la sesión.
TimeLocal()Reloj local del equipo.El huso horario, el horario de verano y las correcciones del reloj pueden alterar las comparaciones.
Hora de recepción en un recolector independienteMomento en que un servicio de supervisión recibe realmente un informe identificado.Depende del recolector y del transporte; no demuestra que se haya completado el proceso de negociación.

No reste directamente la hora de una cotización del bróker al reloj de Windows para calcular su antigüedad sin establecer una referencia temporal común. Un desarrollador puede medir intervalos con un contador apropiado, pero debe contemplar reinicios y desbordamientos. Un recolector externo debe detectar informes ausentes con su propia lógica de tiempo transcurrido, previamente probada y separada de las marcas del mercado.

Identifique fuente, fecha y zona horaria de los registros. Normalice las fuentes antes de reconstruir un incidente; dos horas aparentemente similares en pantalla no establecen el orden de los hechos. Consulte la guía de Experts y Journal.

Determine qué demuestra una señal de actividad

Un heartbeat es un informe periódico de un componente identificado. El heartbeat del VPS informa sobre el servidor; el de un EA supervisor, sobre sus propios eventos. Ninguno demuestra automáticamente que otro EA de negociación haya evaluado una señal o gestionado una cesta.

OnTick() se ejecuta con los nuevos ticks del símbolo del gráfico donde está instalado el EA. Un heartbeat enviado solo desde allí puede desaparecer cuando no hay ticks. El programa puede utilizar EventSetTimer() con OnTimer() para solicitar eventos periódicos si el desarrollador lo implementó. Estos eventos se encolan; si uno ya está en la cola o se está procesando, no se añade otro. No es un reloj externo preciso ni una garantía de que un programa bloqueado siga informando.

Pregunte qué punto de control genera el informe: entrada al manejador, comprobación de datos terminada, ciclo de gestión terminado o envío correcto. Son útiles la identidad de la instancia, versión, número de secuencia, modo operativo, estado de los datos y horas de generación y recepción. Una secuencia creciente permite distinguir informes nuevos de los repetidos, pero tampoco demuestra una ejecución.

Con un EA de código cerrado, utilice los estados admitidos por el proveedor y observaciones externas. Un observador añadido no accede por ello a la salud interna de la estrategia. Un EA supervisor separado necesita su propio gráfico; colocarlo en el gráfico de la estrategia sustituye al EA existente. Debe observar sin enviar operaciones ni gestionar las órdenes de la estrategia.

Detecte los informes ausentes desde fuera del terminal

Un terminal detenido no puede enviar de forma fiable su propio mensaje final de caída. Un observador independiente puede detectar que dejaron de llegar los informes esperados, siempre que sigan funcionando él mismo, su conexión y su canal de alertas. Mantener el único supervisor en el mismo VPS lo expone al mismo fallo del servidor.

Separe observación e intervención. Una alerta de informe ausente significa que algo falló en el emisor, la red, el recolector o el circuito de alertas. No demuestra que el EA principal haya dejado de operar y no debe habilitar automáticamente otra copia. Investigue el servidor y las órdenes actuales antes del procedimiento de traspaso de la Guía 3.

Asigne una identidad de supervisión distinta a cada instancia prevista y detecte emisores desconocidos o duplicados. Supervise también el recolector y pruebe una vía alternativa de contacto. Transmita solo el estado necesario; contraseñas, secretos de activación y acceso ilimitado a la cuenta no son campos de un heartbeat.

Supervise los permisos sin activarlos a ciegas

En MT4 de escritorio, compruebe AutoTrading, el permiso del propio EA, el acceso de negociación de la cuenta y la licencia del proveedor. Un acceso de solo lectura puede mostrar información y, a la vez, impedir operar. Un cambio de permisos puede dejar al EA calculando sin poder modificar sus órdenes.

IsTradeAllowed() sin argumentos comprueba los permisos del EA que llama a la función y si el contexto de negociación está ocupado. Un resultado false no constituye un diagnóstico completo; true no garantiza que el bróker acepte la siguiente solicitud. El resultado de un observador separado no certifica los permisos individuales de otro EA.

Avise de un cambio inesperado respecto al modo aprobado. Registre un terminal pausado deliberadamente como pausado, sin permitir que un supervisor lo «repare». Desactivar la automatización no cierra posiciones y puede interrumpir salidas gestionadas localmente. Toda pausa requiere un plan explícito de gestión.

Supervise solicitudes fallidas y posiciones existentes

Siga la secuencia de una solicitud documentada: acción prevista, intento, resultado devuelto y conciliación con los registros del bróker. Los rechazos y las modificaciones fallidas importan aunque no aparezca ninguna posición nueva. Si el proveedor no registra intentos o motivos para omitir señales, esa información no puede reconstruirse de forma fiable a partir de la lista de operaciones.

El error 128 indica un tiempo de espera agotado en una operación. Tras una respuesta perdida o incierta, compruebe órdenes abiertas, pendientes e historial pertinente antes de decidir si repite la solicitud. La ausencia de confirmación local no demuestra rechazo. Incluya símbolo exacto, dirección, volumen, ticket si se conoce y hora del intento; no adivine qué orden corresponde a él.

Revise exposición, P/L flotante, equity y Stop Loss/Take Profit aceptados, junto con las reglas de gestión documentadas del EA. La protección alojada en el bróker difiere de un stop virtual previsto o de un futuro ajuste de trailing. Un EA detenido puede dejar posiciones abiertas y una orden pendiente puede activarse sin supervisión local. Esta guía no establece un nuevo umbral de drawdown ni una política de liquidación automática.

Pruebe las alertas hasta el dispositivo del destinatario

  1. En el terminal previsto, abra Tools → Options → Notifications, active las notificaciones push e introduzca el MetaQuotes ID del terminal móvil deseado.
  2. Pulse Test, confirme el resultado del terminal y compruebe la recepción en el dispositivo real. Revise sus permisos de notificación y la vía práctica de respuesta.
  3. Pruebe por separado la condición real del EA o supervisor. La prueba de configuración no demuestra que exista una regla de heartbeat ausente ni de solicitudes rechazadas.
  4. Anote hora, emisor, destino y resultado; repita después de migrar el VPS, cambiar de dispositivo o modificar la configuración de avisos.

Notify of trade operations incluye operaciones correctas y determinados eventos documentados de cuenta; no informa sobre operaciones fallidas. Por tanto, no es un supervisor completo de rechazos, datos antiguos o caídas del terminal.

Para SendNotification(), MetaQuotes documenta un máximo de 255 caracteres, 2 llamadas por segundo y 10 por minuto. Superar los límites de frecuencia puede desactivar la función. No funciona en Strategy Tester: compruebe la entrega en un entorno demo en ejecución apropiado. Un envío correcto no demuestra que alguien haya visto o confirmado el mensaje. Agrupe fallos repetidos e informe de cambios significativos de estado, en lugar de avisar con cada tick.

Redacte cada regla con contexto y un siguiente paso

CondiciónContexto necesarioSiguiente paso útil
Sin informe recienteEmisor e intervalo previstos, estado del recolector y mantenimiento programado.Confirme el circuito de observación y el estado del principal; no active un respaldo automáticamente.
Cotización antigua de un símbolo necesarioSímbolo exacto, sesión, comportamiento normal de actualización y referencia temporal.Compruebe otros símbolos necesarios, conexión y servicio del bróker.
Restricción inesperada o solicitud fallidaModo aprobado, EA/cuenta que llama, mensaje exacto y órdenes actuales.Investigue permisos o rechazo; concilie la ejecución incierta antes de repetir.
Gestión desconocida con órdenes abiertasExposición actual, protección aceptada por el bróker e instancia responsable.Siga el plan de incidentes y establezca quién gestiona las órdenes.

Defina persistencia, separación entre repeticiones, confirmación del aviso y condición de recuperación. Un mensaje de recuperación debe indicar qué observaciones se reanudaron; un único heartbeat no demuestra que todo se haya recuperado. Use una ventana de mantenimiento con responsable y hora de finalización, sin silenciar permanentemente una alarma ruidosa.

Determine la gravedad según la situación real de la cuenta. Un mismo problema de datos puede tener consecuencias distintas sin exposición y con posiciones que dependen de salidas locales. La supervisión identifica esa situación, pero no proporciona un periodo de espera seguro universal.

Un ejemplo de heartbeat ausente con un único reloj

Ejemplo hipotético: un recolector espera un informe identificado cada 60 segundos y avisa tras 180 segundos sin recibir uno nuevo. Son valores didácticos, no umbrales universales recomendados. Todas las horas siguientes son observaciones del recolector en UTC; no se resta de ellas ninguna hora de cotización del bróker.

Hora del recolector (UTC)ObservaciónConclusión respaldada
10:00:00Llega el último heartbeat identificado.Se recibió un informe sobre el punto de control definido.
10:01:00Una comprobación separada del servidor responde; no llega otro heartbeat del EA.Funciona la comprobación del servidor; los informes del EA siguen sin confirmarse.
10:03:00No se ha recibido un heartbeat nuevo en 180 segundos.Se cumple la condición del ejemplo; aún se desconoce el componente que falló.
10:03:20Una revisión autorizada observa cotizaciones actualizadas y una orden abierta en el bróker.Se observan datos y exposición; la gestión del EA aún necesita verificación.

Han transcurrido 180 ÷ 60 = 3 intervalos previstos sin recepción nueva. No demuestra que la negociación se detuviera a las 10:00:00, que el servidor rechazara una solicitud o que la orden carezca de gestión. Revise EA, registros y órdenes antes de intervenir. Si el propio recolector estuvo inaccesible, no puede afirmar que observó continuamente todo el intervalo.

Mantenga un registro operativo breve

Incluya la hora de la última revisión correcta, datos de los símbolos necesarios, identidad del EA/terminal, responsable de órdenes abiertas, mensajes pendientes, resultado de la prueba de alertas y cambios previstos. Revise tras instalación, reinicio, migración, cambios de parámetros aprobados y mantenimiento del bróker; después, adopte una frecuencia acorde con las necesidades reales del EA.

El monitoreo público sirve para revisar resultados, pero compruebe su última actualización y retraso de publicación. Una curva de balance atractiva no es un control de funcionamiento en tiempo real. Un informe sin novedades o un balance plano no distingue la espera de una señal de una caída del terminal. Separe la evaluación de rendimiento de la supervisión operativa inmediata.

Observe el entorno que realmente opera

En un VPS Windows, las comprobaciones del servidor/proceso, las observaciones del terminal y un recolector independiente pueden cubrir fallos distintos. Revise recursos y arranque con la Guía 2; iniciar sesión en Windows no confirma que el EA funcione.

En el alojamiento virtual integrado de MetaTrader, revise el estado remoto, la sincronización y los registros solicitados del terminal y de Experts mediante sus controles. Un gráfico o heartbeat local no muestra el EA remoto. Toda señal de actividad remota debe desplegarse expresamente, ser compatible y probarse allí; no se pueden trasladar sin más servicios Windows ni herramientas basadas en DLL no admitidas.

AutoTrading local no detiene la copia alojada. Para intervenir, use los controles de alojamiento y confirme el estado remoto real. El supervisor debe identificar si observa el servidor principal de negociación, un terminal local de preparación o un respaldo.

Ensaye en demo los puntos ciegos de la supervisión

Use un entorno demo autorizado y sus propios archivos de estado. Pruebe el cierre controlado del terminal, la interrupción del circuito de informes, una pausa de sesión prevista, una pausa voluntaria y el retorno al estado normal. Distinga una alerta real de una prueba correcta de entrega. No deje una posición real sin gestión para probar un supervisor.

Instancia principal, cuenta/servidor y símbolos necesarios identificados.
Estados normal, pausado, problema y desconocido definidos.
Cotizaciones comprobadas con la sesión correcta y una referencia temporal común.
Emisor y punto de control real del heartbeat documentados.
Informes ausentes comprobados desde fuera del terminal emisor.
Entrega, confirmación y vía alternativa de contacto probadas.
Plan de respuesta para solicitudes rechazadas o inciertas y gestión de órdenes abiertas.
Una alarma no puede habilitar silenciosamente otra copia de negociación.

Registre configuración probada, observaciones y puntos ciegos restantes. Una supervisión correcta reduce la incertidumbre; no garantiza disponibilidad, ejecución ni resultados de la estrategia.

Preguntas habituales sobre supervisión de EA

¿La ausencia de nuevas operaciones significa que el EA falla?

No. Revise sesión, reglas de señal, datos, permisos y gestión de órdenes existentes. Una estrategia correcta puede permanecer inactiva.

¿Un heartbeat demuestra que todas las funciones están bien?

No. Solo demuestra la generación o recepción del informe documentado. Su valor depende de dónde se produzca y de qué campos estén actualizados.

¿Las notificaciones estándar detectan todos los fallos?

No. Los avisos de operaciones correctas omiten las fallidas y un terminal detenido no puede informar de forma fiable sobre su propia caída completa. Pruebe por separado reglas personalizadas y detección externa de informes ausentes.

¿Un heartbeat ausente debe arrancar automáticamente un VPS de respaldo?

No. Confirme primero el estado de negociación del principal, las órdenes del bróker y quién las gestiona. Un informe ausente no autoriza automatización duplicada.

Referencias oficiales y alcance práctico

Los detalles de plataforma se verificaron en documentación oficial de MetaQuotes. El formato de revisión, los umbrales del ejemplo y las reglas de incidentes son orientación operativa educativa, no un producto de supervisión suministrado ni resultados medidos de fiabilidad. Los nombres de interfaz varían por idioma; compruébelos en su instalación.