REST, WebSocket, FIX y MT5 a menudo se presentan como cuatro APIs de forex en competencia. No lo son.

REST suele ser la forma más limpia de solicitar datos de cuentas, cargar historial o enviar un comando ocasional. WebSocket mantiene una conexión abierta para que los precios y las actualizaciones de órdenes puedan llegar a medida que ocurren. FIX es un estándar de mensajería financiera utilizado para el enrutamiento de órdenes, informes de ejecución y datos de mercado entre sistemas de negociación profesionales. MT5 es una plataforma de negociación con varias API para diferentes trabajos.

Un corredor puede utilizar los cuatro. Una aplicación móvil puede cargar una cuenta a través de REST, transmitir precios a través de WebSocket, enviar la orden a MetaTrader 5 y dirigir la exposición externa a un proveedor de liquidez a través de FIX. Cada interfaz pertenece a una parte diferente del comercio.

InterfazPatrón de comunicaciónMejor ajustePobre ajuste
REST APIEl cliente envía una solicitud y recibe una respuestaFlujos de inicio de sesión, cuentas, símbolos, historial, informes y comandos de baja frecuenciaTransmisión continua de precios a través de sondeos repetidos
WebSocket APIEl cliente y el servidor mantienen una conexión bidireccional abiertaCotizaciones en vivo, profundidad, estado de órdenes y eventos de cuentasConsultas históricas largas y registros administrativos simples
FIX APIDos sistemas de negociación intercambian mensajes financieros estandarizados dentro de una sesión gestionadaFlujo de órdenes de corredor a LP, lugar e institucionalUna API pública simple para una aplicación móvil de venta al por menor
MT5 APIsVarias interfaces alrededor de la plataforma MetaTrader 5Administración de corredores, extensiones de plataforma, puertas de enlace, informes y automatización de terminalesUn protocolo universal independiente de MT5

Cómo encajan estas APIs en un sistema de trading de divisas

Trato los cuatro nombres como capas diferentes.

REST y WebSocket generalmente se encuentran cerca de la aplicación orientada al trader. FIX a menudo se sitúa más profundo en la infraestructura de ejecución. MT5 puede ser la plataforma de trading en el medio, pero también puede conectarse a sitios web, herramientas internas y venues externos a través de sus propias API.

How one forex order moves through the stack

One order. Five steps. From the trader’s app to execution and back.

RESTFIXWebSocket
Trader appBUY 100K EUR/USD
Broker coreORDER #A-18427 / EUR/USD
API gatewayWaiting
Risk enginePending
Trading platform – MT5Ready
Execution routerPending
RESTWaiting for order
Liquidity providerPrice + fill
CRM / automationAccount and client data
Venue / exchangeMarket data and venues
  1. The app sends the order to the broker through REST.
  2. The liquidity provider sends prices to the broker, and WebSocket keeps the app current.
  3. The broker checks the order and passes it to the trading platform.
  4. The execution router sends the order to the liquidity provider through FIX.
  5. The fill returns to the broker, then the app receives the confirmation through WebSocket.

La ruta exacta cambia según el bróker. Algunas plataformas exponen comandos de trading a través de REST. Otras manejan tanto solicitudes como eventos a través de WebSocket o TCP sin procesar. Un bróker de MT5 puede utilizar una puerta de enlace, un puente o lógica interna de negociación en lugar de enviar cada orden directamente a un proveedor de liquidez.

Así que un diagrama debe ser leído como un patrón de arquitectura, no como una promesa de que cada corredor procesa una operación de la misma manera.

¿Qué es una API REST en el trading de divisas?

Una API REST expone recursos a través de HTTP. Un cliente envía una solicitud a un punto final, y el servidor devuelve una respuesta.

Las llamadas típicas se ven así:

  • GET /accounts/417 para cargar una cuenta;
  • GET /orders?status=open para recuperar pedidos abiertos;
  • GET /candles?symbol=EURUSD&timeframe=1h para solicitar barras históricas;
  • POST /orders para enviar un pedido;
  • DELETE /orders/8921 para solicitar una cancelación.

Las URL y métodos exactos dependen del proveedor. La idea principal es solicitud y respuesta. HTTP en sí mismo es un protocolo sin estado, lo que significa que cada solicitud puede ser entendida por sí sola. La especificación HTTP define la semántica detrás de los métodos, códigos de estado y respuestas.

Dónde funciona bien REST

REST es una opción práctica para los datos que cambian solo cuando se solicitan:

  • perfiles de cuenta y permisos;
  • instrumentos disponibles y configuraciones de contrato;
  • depósitos, retiros e informes;
  • órdenes históricas, ofertas y velas;
  • configuración de estrategia;
  • crear o cancelar pedidos cuando la API admite operaciones.

Es fácil inspeccionar, registrar, almacenar en caché e integrar con la infraestructura web ordinaria. La mayoría de los equipos de desarrollo ya saben cómo trabajar con HTTP y JSON.

Donde REST comienza a tensarse

REST no es inherentemente lento. Una API REST bien construida puede responder lo suficientemente rápido para muchos flujos de trabajo de trading. El problema aparece cuando el cliente debe hacer la misma pregunta cientos de veces:

¿Ha cambiado el EUR/USD?

¿Se ha completado mi pedido?

¿Ha cambiado mi margen?

Ese sondeo crea solicitudes repetidas, encabezados y trabajo del servidor. También puede dejar huecos entre sondeos. Si la aplicación solicita un precio una vez por segundo, no sabe qué sucedió entre esas solicitudes.

Utilizo REST para instantáneas y comandos. No utilizo sondeo como la fuente principal del estado de negociación en vivo cuando existe un flujo de eventos adecuado.

¿Qué es una API WebSocket en el trading de forex?

WebSocket crea una conexión persistente y bidireccional entre un cliente y un servidor. Después del apretón de manos inicial, cualquiera de las partes puede enviar un mensaje sin esperar una nueva solicitud HTTP. Ese comportamiento está definido en el protocolo WebSocket.

En una aplicación de trading, el cliente puede suscribirse a EURUSD una vez. El servidor luego envía cada actualización de cotización permitida a través de la conexión abierta. El mismo flujo puede llevar confirmaciones de órdenes, ejecuciones, cambios de saldo y eventos de margen.

Dónde funciona bien WebSocket

Una API WebSocket de forex se adapta a datos que cambian continuamente:

  • precios de compra y venta;
  • actualizaciones de gráficos;
  • profundidad de mercado;
  • aceptación de pedidos, rechazo y ejecuciones;
  • cambios de posición y cuenta;
  • advertencias de margen;
  • estado de la sesión de trading.

El cliente recibe cambios en lugar de pedirlos repetidamente. Esto reduce las solicitudes y hace que la interfaz se sienta viva.

Una conexión abierta no es suficiente

WebSocket no hace que una aplicación de trading sea confiable por sí misma.

Un teléfono cambia de red. Una computadora portátil entra en modo de suspensión. Un proxy cierra una conexión inactiva. El servidor se reinicia. Los mensajes pueden dejar de llegar antes de que la interfaz lo note.

Busco cinco mecanismos de recuperación:

  1. Latido. El cliente debe saber si la conexión sigue activa.
  2. Estado de datos obsoletos. La interfaz debe dejar de mostrar una cotización antigua como actual.
  3. Reconectar y volver a suscribirse. El cliente necesita restaurar cada flujo requerido.
  4. Instantánea más actualizaciones. Después de reconectar, carga una instantánea REST actual antes de aplicar nuevos eventos.
  5. Secuencia o cursor. Si la API proporciona identificadores de eventos, utilícelos para detectar vacíos y duplicados.

¿Qué es una API FIX en el comercio de divisas?

FIX significa Intercambio de Información Financiera. Define los mensajes que los sistemas financieros utilizan para comunicarse sobre órdenes, ejecuciones, cotizaciones, datos de mercado y sesiones.

Una nueva orden, por ejemplo, sigue un tipo de mensaje compartido con campos nombrados para detalles como instrumento, lado, cantidad, tipo de orden y ID de orden del cliente.

FIX es común entre:

  • corredores y proveedores de liquidez;
  • corredores y bolsas u otros lugares;
  • clientes institucionales y corredores;
  • sistemas de gestión de pedidos y sistemas de ejecución.

Por qué las empresas utilizan FIX

FIX proporciona a ambas partes un lenguaje financiero común y una forma disciplinada de gestionar la conexión. No es automáticamente la API más rápida; el motor, la red y la configuración de las contrapartes aún determinan el rendimiento.

Una sesión FIX rastrea los números de secuencia de los mensajes. Si un lado recibe el mensaje 208 después del mensaje 206, puede detectar que falta el 207 y solicitar un reenvío. Los latidos del corazón y las solicitudes de prueba ayudan a ambos lados a monitorear la sesión.

Eso importa cuando los mensajes representan pedidos y llenados. “La conexión volvió” no es suficiente. Ambos sistemas deben estar de acuerdo sobre cuáles mensajes fueron procesados.

Lo que FIX no resuelve

FIX no elimina el trabajo de integración.

Dos contrapartes aún tienen que acordar:

  • la versión FIX y los mensajes compatibles;
  • campos requeridos, opcionales y personalizados;
  • nombres de símbolos e identificadores de instrumentos;
  • tipos de orden soportados y valores de tiempo en vigor;
  • precio y precisión de cantidad;
  • sesiones de negociación y ventanas de mantenimiento;
  • restablecimientos de secuencia y reglas de reenvío;
  • casos de prueba de certificación;
  • seguridad de red y direcciones IP permitidas.

Nunca acepto “FIX soportado” como una respuesta de integración completa. Pido la especificación de la contraparte y el plan de certificación. Un estándar con diferentes reglas de campo en cada lado aún necesita mapeo y pruebas.

¿Qué significa “MT5 API”?

MetaTrader 5 es una plataforma, no un protocolo API. MetaQuotes lista varias interfaces para brokers, incluyendo Manager, Gateway, Report, Server y Web APIs. Cada uno cumple un papel diferente en el entorno MT5.

API del Administrador

La API del administrador es para herramientas de administración y gestión del lado del corredor. Un corredor puede usarla para construir utilidades internas en torno a cuentas, grupos, operaciones de trading y administración de la plataforma.

Este no es el mismo producto que la clave API de un comerciante minorista. El acceso, la licencia y las operaciones soportadas pertenecen a la configuración de MetaTrader del corredor.

API de Gateway

La API Gateway es para conectar MetaTrader 5 con sistemas de trading externos y fuentes de datos. MetaQuotes describe los gateways como complementos de plataforma que manejan la interacción con las bolsas o con otros sistemas conectados.

Esto está mucho más cerca de la conectividad del mercado que un punto final REST orientado al comerciante.

APIs de Web, Reporte y Servidor

MetaQuotes describe la API web como una interfaz para vincular la plataforma con los recursos y servicios web de un bróker. La API de informes amplía la capacidad de informes del servidor. La API del servidor permite a los operadores de la plataforma añadir funciones de servidor de operaciones y servidor de historial.

Sus nombres pueden parecer autoexplicativos, pero el alcance y la disponibilidad deben ser verificados en la licencia del corredor y la documentación técnica.

MQL5

MQL5 es el lenguaje y entorno de programación utilizado dentro de MetaTrader 5. Los traders y desarrolladores crean Asesores Expertos, indicadores, scripts y servicios que se ejecutan con el terminal.

Es la ruta nativa para una estrategia automatizada que necesita datos de gráficos, indicadores y funciones de trading dentro de MT5. No es un protocolo de corredor a proveedor de liquidez.

Integración de MetaTrader 5 con Python

El paquete oficial de MetaTrader5 para Python permite a un programa de Python leer datos y enviar solicitudes de trading a través de un terminal de MetaTrader 5. Las palabras importantes son a través del terminal.

La documentación oficial de Python dice que el paquete se comunica directamente con el terminal utilizando comunicación entre procesos. No proporciona a un servicio en la nube arbitrario una conexión directa al servidor MT5 del corredor.

Esta distinción cambia el despliegue. Una estrategia de Python necesita un entorno de terminal compatible, sesión de cuenta, monitoreo y un plan para reinicios de terminal. No debe ser diseñada como si pip install MetaTrader5 crea una API de broker del lado del servidor.

Un pedido puede pasar por varias APIs

Supongamos que un comerciante compra 100,000 unidades de EUR/USD en la aplicación móvil de un bróker.

  1. La aplicación carga la cuenta, la especificación del símbolo y los permisos a través de REST.
  2. Recibe la oferta y la demanda actuales a través de WebSocket.
  3. El comerciante toca Comprar. La aplicación envía un comando de orden con un ID de orden de cliente único.
  4. El servicio de riesgos del corredor verifica el margen, los límites y el estado del mercado.
  5. La plataforma de trading acepta o rechaza la orden. Esa plataforma puede ser MT5.
  6. Dependiendo del modelo de ejecución del corredor, la exposición externa puede enviarse a un proveedor de liquidez a través de FIX, una puerta de enlace u otro conector.
  7. Los informes de ejecución regresan a través de la pila.
  8. La aplicación recibe el pedido actualizado, la posición y el saldo a través de su flujo de eventos.

REST no compitió con FIX en esta secuencia. Trabajaron en diferentes límites.

El caso de tiempo de espera que expone una API débil

La parte difícil de una API de órdenes no es enviar la solicitud. Es saber qué ocurrió cuando la respuesta desaparece.

Supongamos que la aplicación envía esta instrucción:

Comprar EURUSD, clientOrderId = mobile-84721

La solicitud ha expirado. Hay dos posibilidades:

  • el corredor nunca lo recibió;
  • el corredor lo aceptó, pero la respuesta no llegó a la aplicación.

Enviar ciegamente la misma operación nuevamente puede crear dos posiciones.

Un flujo de trabajo más seguro es:

  1. Mantén el mismo ID de pedido del cliente.
  2. Consulta el estado de la orden autorizada o espera el evento de la orden.
  3. Permitir que el servidor rechace o deduplique un comando repetido con el mismo ID.
  4. Conciliar el pedido final y completar los registros antes de habilitar otro reintento.

Por eso pregunto a los proveedores de API sobre la idempotencia antes de preguntar sobre la tasa de solicitudes de encabezado. Un endpoint rápido que puede duplicar una acción financiera después de un tiempo de espera no es un buen endpoint de trading.

REST vs WebSocket vs FIX vs MT5 por caso de uso

RequisitoInterfaz que examinaría primeroRazón
Sitio web del corredor que muestra el historial de cuentasRESTConsultas simples, autenticación familiar y respuestas claras
Lista de seguimiento en vivo en una aplicación web o móvilWebSocketLas cotizaciones llegan como eventos sin sondeo constante
Ingreso de órdenes minoristas desde una aplicación personalizadaComando REST más estado de WebSocketFlujo de envío claro con reconocimiento en vivo y actualizaciones de llenado
Conexión del corredor a un proveedor de liquidezFIX o el conector certificado del proveedorFlujo de trabajo estándar de órdenes y ejecución entre sistemas de negociación
Administración del corredor alrededor de MT5API del administrador de MT5Construido para utilidades de gestión del lado de la plataforma
Conexión personalizada de MT5 a un lugarAPI del Gateway de MT5 o una configuración de puente/gateway probadaDiseñado para conectividad del mercado de la plataforma
Asesor experto funcionando en MT5MQL5Automatización nativa del terminal y entorno de pruebas
Análisis y ejecución en Python a través de un terminal de MT5Paquete de Python de MetaTrader 5Proporciona acceso de Python a datos del terminal y funciones de negociación
Conjunto de datos de investigación históricaREST o exportación de datos masivaPaginación más fácil, rangos de fechas y recuperación repetible

La tabla es un punto de partida. La elección final depende de la API real del proveedor, los límites de tasa, la autenticación, los tipos de orden compatibles y las garantías del servicio.

Preguntas que hago antes de elegir una API de trading de forex

Datos del mercado

  • ¿Es el feed por tick, conflado o muestreado?
  • ¿Se generan las marcas de tiempo de oferta y demanda en la fuente o en la entrega?
  • ¿Incluye la transmisión números de secuencia?
  • ¿Cómo puede un cliente recuperar datos después de una desconexión?
  • ¿Se versionan las especificaciones de símbolos cuando cambian los ajustes del contrato?

Órdenes

  • ¿Hay un ID de pedido de cliente único?
  • ¿Son idempotentes los comandos de creación y cancelación?
  • ¿Puede la API informar sobre ejecuciones parciales y múltiples informes de ejecución?
  • ¿Cuál registro es autoritativo después de un tiempo de espera?
  • ¿Cómo se representan los pedidos rechazados, expirados y reemplazados?

Operaciones

  • ¿Cuáles son los límites de solicitud, suscripción y conexión?
  • ¿Son equivalentes en comportamiento los entornos de demostración y en vivo?
  • ¿Hay una página de estado y un aviso de mantenimiento programado?
  • ¿Se pueden correlacionar los registros entre el cliente, el corredor y el lugar?
  • ¿Cómo se versionan y anuncian los cambios importantes?

Seguridad

  • ¿Qué permisos se pueden limitar por aplicación o token?
  • ¿Cómo se rotan y revocan las credenciales?
  • ¿Se admiten las listas de permitidos de IP, TLS y credenciales de producción separadas?
  • ¿Puede un servicio leer datos sin recibir permiso para operar?
  • ¿Se registra cada acción privilegiada en un registro de auditoría?

Las respuestas me dicen más que la etiqueta en la API. Dos APIs REST pueden diferir más en calidad práctica que REST y WebSocket.

Qué debe decidir un bróker antes de la integración

Un proyecto de API generalmente se vuelve difícil cuando la propiedad es vaga.

Define estos puntos antes de que comience el desarrollo:

  1. Sistema de registro. ¿Qué sistema posee pedidos, operaciones, saldos y posiciones?
  2. Orden del evento. ¿Cómo se manejan los duplicados, los mensajes tardíos y las actualizaciones fuera de orden?
  3. Recuperación. ¿Qué instantánea se carga después de una reconexión y desde qué cursor se reanudan los eventos?
  4. Límite de riesgo. ¿Qué controles se realizan antes de que un pedido llegue a la plataforma o lugar?
  5. Modelo de símbolo. ¿Quién mapea nombres, tamaños de contrato, sesiones y precisión de precios?
  6. Registro de auditoría. ¿Puede el soporte de trazabilidad seguir una acción de un cliente desde la aplicación hasta el informe de ejecución final?

Aquí es donde una decisión de plataforma se convierte en una decisión operativa. La infraestructura de corretaje de Quadcode reúne la plataforma de trading, aplicaciones para clientes, CRM, back office, riesgo e integraciones en un solo entorno. La conectividad REST, streaming, MT5 o de liquidez requerida aún debe ser escrita en el diseño de la solución y probada contra los propios flujos de órdenes del corredor.

Respuesta final

Utiliza REST para solicitudes claras, instantáneas y registros. Utiliza WebSocket cuando la aplicación deba recibir cambios en tiempo real. Utiliza FIX para la comunicación de trading estandarizada entre sistemas profesionales. Usa la interfaz MT5 relevante cuando MetaTrader 5 sea parte de la plataforma.

La mayoría de los productos de forex necesitan una combinación. Después de una falla de red, una arquitectura sólida puede responder tres preguntas: ¿Se recibió la orden? ¿Se ejecutó? ¿Cada sistema conectado ahora está de acuerdo con el resultado?