Un notebook de Python puede producir un gráfico convincente, un coeficiente estable o un ranking. Ninguno es todavía una decisión ejecutable. En vivo hay que saber qué información existía al decidir, cómo se transformó, hasta cuándo vale y qué hace MT5 si falla una parte.
Este caso compuesto reúne lecciones recurrentes del archivo anonimizado sin revelar modelo, instrumento, parámetros, proceso de cliente ni regla propietaria.
Cadena controlada de investigación a ejecución
Cada frontera produce un artefacto comprobable y rechaza estados ambiguos.
- 01CongelarGuardar corte de datos, esquema, features, versión y alcance aprobado.
- 02PublicarEmitir símbolo, dirección, hora fuente, caducidad e identidad del modelo.
- 03CalificarMT5 comprueba vigencia, esquema, símbolo, permiso, spread y exposición.
- 04ConfirmarVerificar el resultado del bróker y registrar toda la línea hasta el deal.
La salida de investigación no era la interfaz
El primer error fue tratar una fila CSV o un score como señal completa. Investigación usaba velas limpias, zona horaria elegida y límite de muestra; MT5 veía símbolos del bróker, bid/ask, historial incompleto y ticks asíncronos. La coincidencia numérica solo importaba tras compartir definiciones de símbolo, cierre, lado de precio, faltantes, normalización y tiempo.
La entrega se redujo a un contrato estrecho: investigación conservó flexibilidad y producción solo emitió campos validables.
La cronología debía sobrevivir al despliegue
Features ajustadas en toda la muestra, velas revisadas, relleno hacia delante y divisiones aleatorias pueden filtrar futuro. El pipeline guardó corte de datos, validación temporal, hora fuente y caducidad.
Proceso Python ausente, archivo retrasado, esquema incompatible o decisión caducada eran estados explícitos. La respuesta segura era no crear una acción nueva.
Paridad antes que rentabilidad
Observaciones congeladas se calcularon por separado en Python y el adaptador MT5. Valores intermedios, versión, hora y clase se compararon antes de mirar la curva.
Se probaron sufijos, horario de verano, historial ausente, duplicados, reinicio, valores inválidos, rechazos y confirmación tardía. Repetir el mismo evento no podía abrir otra posición.
La ejecución conservó autoridad
El modelo propone dirección, no posee la cuenta. MT5 mantiene validación de símbolo y volumen, exposición de cartera, ventanas operativas y confirmación del resultado.
La separación permite retirar un modelo sin cambiar el adaptador y probar un adaptador nuevo con decisiones fijas.
Lista de aceptación reutilizable
El flujo está listo si un revisor independiente puede reconstruir por qué existió una decisión y por qué fue aceptada, rechazada o ignorada.
- Versionar juntos datos, transformaciones, modelo y adaptador MT5.
- Adjuntar hora fuente, creación, caducidad y versión de esquema.
- Comparar valores intermedios entre Python y MT5.
- Definir respaldo seguro para entrada caducada, ausente, duplicada o inválida.
- Mantener permiso de cartera y verificación del bróker fuera del modelo.
Preguntas que quizá se esté haciendo
¿Debe Python permanecer abierto mientras opera MT5?
No. Puede usarse un servicio, artefacto programado o modelo exportado; vigencia y fallo siempre deben ser explícitos.
¿Un backtest parecido demuestra paridad?
No. Hay que comparar datos fuente, features intermedias, tiempos, permisos y eventos confirmados.
¿Qué hace MT5 con una señal caducada?
Rechaza la nueva acción y registra la causa; no adivina ni amplía su vigencia.