# Paquete de Python de MetaTrader 5 vs API REST: ¿cuál deberías usar?

> El paquete MetaTrader5 necesita Windows y un terminal abierto; una API REST alojada, ninguno. Comparamos instalación, hosting, lenguajes y mantenimiento.

Publicado el 2026-10-26 por ElWizard para fxapis. Canónica: https://fxapis.com/es/blog/paquete-python-metatrader5-vs-api-rest

## En resumen

- El paquete oficial MetaTrader5 es un puente hacia un terminal en la misma máquina Windows. No es un cliente de red para tu broker.
- Eso lo hace bueno para investigar y para operar tu propia cuenta en una PC con Windows, e incómodo para servidores, Linux, macOS y muchas cuentas.
- Una API REST alojada corre los terminales por ti: cualquier lenguaje, cualquier sistema operativo, muchas cuentas y un resultado registrado para cada orden.
- El paquete también te da precios, barras y ticks. fxapis da cotizaciones en vivo cuando las pides y tendrá velas después de nuestro próximo mantenimiento programado, pero no ticks ni streaming, así que una estrategia basada en datos de MT5 puede necesitar otra fuente.

Los dos llevan una orden de Python a MetaTrader 5. Se diferencian en dónde corre MetaTrader y, por lo tanto, en dónde puede correr tu código. **Usa el paquete oficial para investigar y para operar tu propia cuenta en una PC con Windows. Usa una API REST alojada para todo lo que corra en un servidor, fuera de Windows o en muchas cuentas.**

## Qué es el paquete oficial

`MetaTrader5` en PyPI es el paquete propio de MetaQuotes. Su documentación dice que obtiene los datos «via interprocessor communication directly from the MetaTrader 5 terminal»: es un puente hacia un proceso de terminal en la misma computadora. `initialize()` se conecta a ese terminal (y lo abre si hace falta), y cada llamada posterior pasa por el terminal.

De ahí salen dos consecuencias: necesitas un **terminal abierto** junto a tu script, y necesitas **Windows**, porque los archivos publicados del paquete son compilaciones para Windows.

Lo mismo vale para el asistente de IA y el soporte de MCP que MetaQuotes agregó al terminal de escritorio en la [build 6060](https://www.metaquotes.net/en/metatrader5/news/5538) (23 de julio de 2026, en inglés): corren dentro del terminal, así que también necesitan un terminal abierto en tu máquina.

## Qué es una API REST alojada

Una API alojada corre los terminales de MetaTrader 5 en sus propios servidores y acepta solicitudes HTTPS. Tu script no habla con un terminal; habla con la API, desde cualquier máquina:

```python
import os, uuid, requests

API = "https://api.fxapis.com"
s = requests.Session()
s.headers["Authorization"] = f"Bearer {os.environ['FXAPIS_KEY']}"

order = s.post(
    f"{API}/v1/accounts/{os.environ['ACCOUNT_ID']}/orders/market",
    headers={"Idempotency-Key": str(uuid.uuid4())},
    json={"symbol": "EURUSD", "side": "buy", "volume": "0.01"},
    timeout=90,
).json()["data"]
print(order["state"], order["filledPrice"])
```

La cuenta se conectó una vez antes con su login, contraseña y servidor. No hay `initialize()`, ni ruta del terminal, ni Windows.

## Lado a lado

| | Paquete MetaTrader5 | API REST alojada (fxapis) |
|---|---|---|
| Sistema operativo | Windows (o Wine) | Cualquiera |
| Necesita un terminal abierto | Sí, en la misma máquina | No: lo corre el proveedor |
| Lenguajes | Python | Cualquier lenguaje con HTTPS |
| Cuentas a la vez | Una por terminal | Muchas por espacio de trabajo, una solicitud para muchas |
| Dónde corre tu código | Junto al terminal | En cualquier lugar: servidor, contenedor, función |
| Datos de mercado (ticks, barras) | Sí | Barras después de nuestro próximo mantenimiento programado; sin ticks |
| Seguridad al reintentar | La construyes tú | Claves de idempotencia; los resultados inciertos se confirman con el broker |
| Mantenimiento | Terminal, máquina, sesiones | Tu código |
| Costo | Gratis, más la máquina | Un plan mensual |

## Cuándo el paquete es la mejor opción

- Estás **investigando** una estrategia y necesitas las barras y los ticks históricos de MT5.
- Operas **tu propia cuenta** desde una máquina con Windows que ya mantienes encendida.
- No quieres ningún tercero entre tú y tu broker.

## Cuándo una API REST es la mejor opción

- Tu backend corre en **Linux, macOS o en contenedores**, como la mayoría de los backends.
- Operas **las cuentas de otras personas**, o muchas cuentas a la vez.
- Quieres resultados que puedas **reintentar con seguridad** y **auditar**: cada orden tiene un estado registrado, y una orden con resultado incierto se confirma contra los registros del broker en lugar de adivinarse.

Muchos equipos usan los dos: el paquete, u otra fuente de datos, para investigar; la API para colocar y seguir operaciones en producción.

## Próximos pasos

- [Usa la API de MT5 en Linux y macOS](https://docs.fxapis.com/es/guides/linux-macos): los rodeos que usa la gente con el paquete, y una tabla que relaciona cada una de sus llamadas con la API.
- [Coloca órdenes de MT5 desde Python](https://docs.fxapis.com/guides/python): un programa completo con reintentos correctos (en inglés).
- [La API de MT5](https://fxapis.com/mt5-api): todo lo que cubre la API (en inglés).

## Preguntas

### ¿El paquete de Python MetaTrader5 funciona en Linux o macOS?

No directamente. Los archivos publicados del paquete en PyPI son compilaciones para Windows, y habla con un terminal de MetaTrader 5 en la misma máquina. En Linux y macOS, la gente corre el terminal y un Python de Windows bajo Wine, usa un puente o alquila un VPS con Windows.

### ¿Puedo usar Python con una API REST para MT5?

Sí. Una API REST recibe solicitudes HTTPS, así que sirve cualquier biblioteca HTTP de Python (requests, httpx o aiohttp) en cualquier sistema operativo, sin MetaTrader instalado.

### ¿fxapis da datos históricos de precios?

Todavía no. fxapis cubre cuentas, órdenes, posiciones e historial de operaciones, y da cotizaciones en vivo cuando las pides. Las velas (historial de precios) del broker de la cuenta estarán disponibles después de nuestro próximo mantenimiento programado; no hay ticks ni streaming. Si tu estrategia calcula señales a partir de ellos, necesitas una fuente de datos de mercado.

### ¿Puedo operar varias cuentas de MT5 desde un script de Python con el paquete oficial?

Un terminal tiene la sesión iniciada en una cuenta a la vez, así que operar varias cuentas a la vez con el paquete significa correr y coordinar varios terminales. Una API alojada conecta cada cuenta por separado y permite que una sola solicitud coloque una operación en muchas.
