Blog · Integración
Conecta tu EA de MT5 a una API de monitorización en cinco pasos
Integración en MQL5 paso a paso: permitir WebRequest, añadir el include, enviar telemetría desde OnTimer, rellenar la cadena de lotes y resolver el error 4014 y otros fallos habituales.
Conectar un expert advisor de MT5 a un monitor externo requiere un archivo include, una llamada a una función desde un temporizador y una línea en las opciones del terminal. Esta guía recorre los cinco pasos con el código real del kit de Quantisentry y enumera los errores con los que es más probable que te encuentres.
Qué se envía y qué no se envía nunca
El EA envía por HTTPS un pequeño payload JSON a una única ruta de ingesta. Describe el estado de una estrategia en una cuenta: qué cuenta y qué número mágico, el símbolo, la familia de estrategia, las versiones, la cadena de lotes (base, solicitado, final y el multiplicador aplicado) y si el trading está permitido en ese momento. El canal es unidireccional. No existe ninguna ruta que devuelva una orden, y la plataforma responde 403 a cualquier cosa que pudiera alterar el estado de trading.
Lo que nunca se envía: tu contraseña del bróker, la contraseña de inversor ni ninguna credencial capaz de abrir una posición. El único secreto implicado es la clave de instalación que identifica a tu tenant.
Paso 1 — Permitir la URL en el terminal
MT5 bloquea todo WebRequest hacia hosts que no estén permitidos de forma explícita. Abre Herramientas → Opciones → Asesores expertos, marca Permitir WebRequest para las URL siguientes y añade:
https://api.quantisentry.com
Si te lo saltas, todas las llamadas fallan con el error 4014 en la pestaña Expertos. Es la causa de nueve de cada diez incidencias del tipo «no aparece nada en el panel».
Paso 2 — Copiar el include
Desde Archivo → Abrir carpeta de datos, coloca SentinelTelemetryV1Client.mqh en MQL5/Include. Si solo quieres ver aparecer una cuenta antes de tocar tu código, copia también SentinelTelemetryV1_ExampleEA.mq5 en MQL5/Experts, compílalo con F7 y adjúntalo a cualquier gráfico. El ejemplo nunca opera; solo reporta.
Paso 3 — Enviar desde OnTimer
En tu propio EA, incluye el cliente y arranca un temporizador. El intervalo por defecto es de treinta segundos.
#include <SentinelTelemetryV1Client.mqh>
input string InpTelemetryUrl = "https://api.quantisentry.com/api/ea-telemetry/v1/ingest";
input string InpTelemetryKey = ""; // clave de instalación del email de bienvenida
input int InpIntervalSec = 30;
int OnInit() { EventSetTimer(InpIntervalSec); return(INIT_SUCCEEDED); }
void OnDeinit(const int reason) { EventKillTimer(); }
void OnTimer()
{
string accountKey = AccountInfoString(ACCOUNT_SERVER) + "::" +
IntegerToString((int)AccountInfoInteger(ACCOUNT_LOGIN));
SentinelTelemetryV1_Send(
InpTelemetryUrl, InpTelemetryKey,
MagicNumber, _Symbol, "breakout",
"1.0.0", "1.0.0", // telemetryVersion, guardVersion
baseLot, requestedLot, finalLot, appliedMultiplier,
allowTrading,
accountKey, AccountInfoString(ACCOUNT_SERVER),
AccountInfoInteger(ACCOUNT_LOGIN), "Mi estrategia");
}
Usa el temporizador, no OnTick. Los ticks se detienen el fin de semana y en horas sin liquidez, y un heartbeat que depende de los ticks no distingue un mercado cerrado de un EA muerto.
Paso 4 — Rellenar con rigor la cadena de lotes
Los cuatro campos de lote son los que hacen útil el dato más adelante. El lote base es lo que operaría la estrategia sin ningún ajuste. El lote solicitado es lo que pidió al bróker tras su propia lógica de riesgo. El lote final es lo realmente ejecutado tras el redondeo al paso de volumen y los límites de margen. El multiplicador aplicado es el factor entre base y solicitado. Cuando el final y el esperado difieren más de un 5%, la plataforma marca la fila. Si tu EA todavía no controla estos valores, envía ceros y 1.0; la cuenta aparecerá igualmente, con la auditoría marcada como no evaluable.
Paso 5 — Verificar
La pestaña Expertos debe imprimir una línea en cada intervalo:
[SentinelTelemetryV1] sent OK (account=TuBroker::12345678)
La cuenta aparece en el panel en menos de un minuto, identificada como servidor::login. Detén el EA y observa cómo la fila pasa a obsoleta a los cinco minutos: esa transición es precisamente la función que estás instalando.
Errores que vas a ver de verdad
| Síntoma | Causa | Solución |
|---|---|---|
WebRequest failed, error 4014 | La URL no está en la lista permitida | Paso 1. La entrada debe ser solo el esquema y el host. |
| HTTP 401 / 403 | Clave de instalación vacía o incorrecta | Pega la clave de nuevo; revisa que no haya espacios al final. |
| HTTP 400 con un motivo | El payload no pasó la validación del contrato (falta un campo obligatorio, lote negativo, marca de tiempo en el futuro) | Lee el motivo y corrige el campo. Revisa el reloj del VPS. |
| Funciona en un gráfico y en otro no | Dos EAs comparten número mágico en la misma cuenta | Da a cada estrategia su propio mágico; la identidad es cuenta + mágico. |
| No sale nada en la pestaña Expertos | Algo Trading desactivado, o el temporizador nunca arrancó | Activa Algo Trading; confirma que EventSetTimer se ejecuta en OnInit. |
Mantén la clave fuera del código fuente
Pasa la clave de instalación como input, nunca como literal en un archivo que subas a un repositorio o compartas. Si distribuyes un EA compilado a clientes, cada cliente usa su propia clave. Una clave filtrada permite que alguien envíe telemetría falsa a tu tenant; no permite operar, pero sigue siendo tu rastro de evidencia.
Preguntas frecuentes
¿Por qué falla WebRequest con el error 4014?
La URL no está en la lista permitida del terminal. Añade https://api.quantisentry.com en Herramientas, Opciones, Asesores expertos, Permitir WebRequest, y vuelve a probar.
¿El EA de telemetría abre o cierra operaciones?
No. Solo envía un payload JSON que describe el estado. La plataforma es de solo observación y no tiene ninguna ruta que devuelva órdenes al terminal.
¿Cada cuánto debe enviar telemetría el EA?
Cada 30 segundos por defecto, desde OnTimer. La plataforma considera obsoleto más de cinco minutos sin reporte.
¿Tengo que compartir la contraseña de mi bróker?
No. La única credencial implicada es tu clave de instalación. Las contraseñas del bróker y de inversor nunca se piden ni se transmiten.