Diseño de logs en EA: reproducir incidentes después
Contenido (6)
- Conclusión: un EA sin logs no se puede analizar tras un incidente
- Por qué hacen falta tres tipos de log
- Valores de decisión: sin números no se distingue de la casualidad
- Motivo de omisión: el log que más se omite y el más importante
- Ejecución: registrar lo que ocurre fuera del EA
- Qué escribir en cada línea: ejemplo de formato
- Pasos de revisión para quien opera el EA
- Límites y precauciones
- Resumen
Contenido
- Conclusión: un EA sin logs no se puede analizar tras un incidente
- Por qué hacen falta tres tipos de log
- Valores de decisión: sin números no se distingue de la casualidad
- Motivo de omisión: el log que más se omite y el más importante
- Ejecución: registrar lo que ocurre fuera del EA
- Qué escribir en cada línea: ejemplo de formato
- Pasos de revisión para quien opera el EA
- Límites y precauciones
- Resumen
Conclusión: un EA sin logs no se puede analizar tras un incidente
Empiezo por la conclusión. Un EA debería registrar, como mínimo, una línea para cada una de estas tres cosas: «los valores usados en la decisión», «el motivo por el que no entró» y «el resultado de la ejecución». Con esas tres líneas se pueden reconstruir después tanto las operaciones inesperadas como los casos en los que «no pasó nada». Sin ellas, ya sea que haya pérdidas o que las operaciones sigan en 0, no se puede distinguir si la causa está en la lógica del EA, en el mercado o en el broker.
Nosotros también desarrollamos EA, y hemos vivido ambas situaciones: veces en que los logs nos salvaron y veces en que faltaron datos y nos quedamos sin saber la causa. En este artículo explico qué es un «buen log» desde el punto de vista de quien opera el EA.
Comparación de brókers recomendados →
🎁 Descargar EA gratis📧 Curso gratuito por email (8 correos) + paquete de 13 indicadores MT5 solo para suscriptores
* Privacidad estrictamente protegida. Puedes darte de baja en cualquier momento.
Por qué hacen falta tres tipos de log
Cada decisión de un EA sigue, a grandes rasgos, este flujo: «calcular valores → evaluar condiciones → enviar la orden → ejecución». Para saber en qué etapa algo se desvió de lo esperado, hace falta un registro de cada una.
| Tipo de log | Ejemplo de contenido | Pregunta que responde |
|---|---|---|
| Valores de decisión | Hora de la vela cerrada, valor del indicador, umbral, spread | «¿Por qué entró ahí?» |
| Motivo de omisión | Qué condición provocó que no entrara (fuera de horario, spread excesivo, posición ya abierta, etc.) | «¿Por qué no entró?» |
| Ejecución | Precio solicitado, precio ejecutado, slippage, código de retorno, número de ticket | «¿Se ejecutó como se pretendía?» |
Valores de decisión: sin números no se distingue de la casualidad
Un log que solo dice «señal de compra generada» sirve de poco. Si no sabes cuánto se alejaban el valor del indicador y el umbral en ese momento, no puedes saber si la condición se cumplió por poco o con claridad. Además, hay que registrar siempre en qué vela (la hora de la vela cerrada) se tomó la decisión.
Motivo de omisión: el log que más se omite y el más importante
Muchos EA solo escriben log cuando entran. Sin embargo, la consulta más frecuente durante la operación es «no entra nunca». Si el motivo de la omisión está en el log, se puede comprobar si fue una omisión conforme al diseño o si se debió a un error de configuración o a un desfase de la hora del servidor.
Nuestro MEGAMAX DONCHIAN, en el forward test con una cuenta demo de Exness, tiene 0 operaciones a fecha del 11 de noviembre de 2026. Todavía no hemos podido confirmar el motivo de las omisiones y no voy a especular aquí. Pero en casos así, que exista o no un log con el motivo de omisión cambia mucho el esfuerzo de la revisión. Tener 0 operaciones no significa que el rendimiento sea malo, pero tampoco se puede afirmar que sea una «omisión normal» hasta haber leído el log.
Ejecución: registrar lo que ocurre fuera del EA
Si una orden fue rechazada o si se ejecutó con un slippage elevado son problemas distintos de la lógica del EA. Si guardas el código de retorno y el precio de ejecución, puedes separar los problemas del EA de los del broker o de la conexión.
Qué escribir en cada línea: ejemplo de formato
Nosotros resumimos cada decisión en una sola línea, con un formato fijo que facilita la búsqueda posterior.
[EVAL] bar=2026.11.10 14:00 sig=BUY val=1.234 th=1.200 spread=18 -> ENTRY
[SKIP] bar=2026.11.10 15:00 reason=SPREAD spread=45 max=30
[FILL] ticket=123456 req=152.340 fill=152.346 slip=6 ret=10009
Los puntos clave al escribirlo son:
- Poner al principio una etiqueta de tipo (EVAL / SKIP / FILL) para poder localizarla con grep o con el buscador.
- Escribir la hora de «la vela cerrada usada en la decisión» (dando por hecho que es hora del servidor).
- Expresar el motivo con códigos fijos, no con frases (SPREAD, TIME, POSITION, etc.).
- No registrar en cada tick, solo en el momento en que se toma la decisión.
Si se escribe en cada tick, el log crece enormemente en poco tiempo, satura el disco y entierra las líneas importantes. La regla básica es «una vez, cuando la vela se cierra».
Pasos de revisión para quien opera el EA
Si usas un EA, revisar en este orden te llevará más rápido a la causa.
- En la pestaña «Expertos» de MT5, comprueba que el EA escribe sus propios logs.
- Busca la línea EVAL de la hora de la operación inesperada y mira el valor de decisión y el umbral.
- En los periodos sin entradas, revisa las líneas SKIP y cuenta qué motivo es el más frecuente.
- En la línea FILL, comprueba la diferencia entre el precio solicitado y el ejecutado, y el código de retorno.
- Contrasta las horas con la pestaña «Historial de operaciones» (el registro del lado del broker).
Para revisar la configuración, consulta la guía de configuración del EA, y para montar un entorno de funcionamiento continuo, la información sobre VPS.
Límites y precauciones
El log no es una solución universal. Lo digo con franqueza.
- Lo que no está en el log no se sabe. Los eventos que el desarrollador no previó simplemente no quedan registrados.
- El log no siempre es correcto. Si el propio código que genera el log tiene un error, se registrarán valores incorrectos.
- No dice si la decisión de mercado fue buena o mala. El log solo indica si «se comportó según el diseño», no si ese diseño es rentable.
- Registrar de más también causa problemas. Un volumen enorme de logs ocupa espacio y hace más fácil pasar por alto lo importante al leerlos.
- El significado del log difiere entre backtest, cuenta demo y cuenta real. En el tester, el slippage y los rechazos no se reproducen igual que en la realidad, así que al comparar logs de ejecución ten en cuenta la diferencia de entorno.
Resumen
- Registra una línea para cada uno de los tres tipos: «valores de decisión», «motivo de omisión» y «ejecución».
- El log que más se omite es el del motivo de omisión, y es el más útil cuando investigas por qué «no se mueve».
- Si defines etiquetas y códigos de motivo, después puedes buscar y contar.
- Escribe una vez por cada vela cerrada, no en cada tick.
- El log solo te dice si «se comportó según el diseño»; saber si es rentable requiere otra validación.
Más conocimientos prácticos sobre MT5 en Conocimientos sobre EA y MT5.
Relacionado
2026-10-02
Revisión diaria del EA en funcionamiento
2026-11-14
Notificaciones push de MT5 desde un EA: ajuste y diseño
2026-11-07
Stops Level y Freeze Level: por qué no puedes poner el SL
2026-11-06
Rechazo de órdenes en MT5: retcodes y orden de revisión
📧 Curso gratuito por email (8 correos) + paquete de 13 indicadores MT5 solo para suscriptores
* Privacidad estrictamente protegida. Puedes darte de baja en cualquier momento.
¿Tienes alguna pregunta sobre EAs o Forex?
Puedes publicarla en el foro de trading de Nattzy (registro gratuito). También son bienvenidas preguntas que vayan más allá de este artículo: configuración de EAs, elección de bróker y más.
Preguntar en Nattzy ↗