---
id: "README"
title: "MT4 Gateway Integration"
type: "Documentation"
project: "trading-platform"
version: "0.1.0"
created_date: "2026-01-28"
updated_date: "2026-01-28"
status: "NOT_FUNCTIONAL"
progress: 15
---

# OQI-010: MT4 Gateway Integration

> **ESTADO: NO FUNCIONAL**
>
> Este modulo esta en fase inicial de desarrollo (15% completado).
> NO esta listo para uso en produccion ni desarrollo activo.
> Requiere trabajo significativo antes de ser operativo.

---

## Resumen Ejecutivo

La epica OQI-010 implementa la integracion con MetaTrader 4 (MT4) para permitir trading automatizado en mercados forex y CFDs. El objetivo es exponer las capacidades de MT4 como herramientas MCP (Model Context Protocol) para que agentes de IA puedan ejecutar operaciones de trading.

---

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | OQI-010 |
| **Nombre** | MT4 Gateway Integration |
| **Modulo** | mt4-gateway |
| **Fase** | Pre-MVP (Incubacion) |
| **Prioridad** | P2 |
| **Estado** | NO FUNCIONAL |
| **Progreso** | 15% |
| **Story Points** | 55 SP (estimado) |

---

## Estado Actual

### Componentes Existentes

| Componente | Ruta | Estado |
|------------|------|--------|
| MCP Server Skeleton | `mcp-mt4-connector/` | Parcial |
| Express Server | `mcp-mt4-connector/src/index.ts` | Funcional (sin MT4) |
| Tool Definitions | `mcp-mt4-connector/src/tools/` | Definidos |
| MT4 Client | `mcp-mt4-connector/src/services/mt4-client.ts` | Mock |

### Funcionalidad Actual

- **Servidor Express:** El servidor MCP esta implementado y puede iniciar
- **Endpoints de Health:** `/health` y `/tools` funcionan
- **Tool Schemas:** Definidos pero NO conectados a MT4 real
- **MT4 Gateway:** NO IMPLEMENTADO - requiere EA Bridge

---

## Razones del Bloqueo

### 1. Falta de MT4 Gateway (Critico)

El `mcp-mt4-connector` requiere un servicio intermedio (`mt4-gateway`) que actue como puente entre el servidor MCP y el terminal MT4. Este componente NO existe.

```
[MCP Server] --> [MT4 Gateway] --> [MT4 Terminal + EA]
                      ^
                      |
               NO IMPLEMENTADO
```

**Requisitos del MT4 Gateway:**
- Servidor HTTP/WebSocket que reciba comandos del MCP
- Expert Advisor (EA) en MQL4 para MT4
- Comunicacion bidireccional con el terminal MT4
- Manejo de sesiones y autenticacion

### 2. Expert Advisor (EA) No Desarrollado

Se necesita un Expert Advisor personalizado en MQL4 que:
- Reciba comandos via DLL o socket
- Ejecute operaciones en MT4
- Retorne resultados y estado de cuenta
- Maneje errores y reconexion

### 3. Dependencias Externas

| Dependencia | Estado | Bloqueante |
|-------------|--------|------------|
| MT4 Terminal | Requiere instalacion local | Si |
| Cuenta Demo MT4 | Requiere broker | Si |
| EA Bridge | No desarrollado | Si |
| Windows/Wine | MT4 solo corre en Windows | Si |

### 4. Infraestructura de Red

- MT4 requiere conexion persistente al broker
- El EA necesita comunicacion local con el gateway
- Configuracion de firewalls y puertos
- SSL/TLS para seguridad

---

## Arquitectura Propuesta

```
┌────────────────────────────────────────────────────────────────────────────┐
│                         OQI-010 MT4 GATEWAY ARCHITECTURE                    │
├────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                      LLM TRADING AGENT                               │   │
│  │            (Via MCP Protocol - OQI-010-llm-trading-integration)     │   │
│  └────────────────────────────────┬────────────────────────────────────┘   │
│                                   │                                         │
│                                   ▼                                         │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    MCP MT4 CONNECTOR (:3605)                         │   │
│  │  [PARCIALMENTE IMPLEMENTADO]                                         │   │
│  │                                                                       │   │
│  │  Tools:                                                               │   │
│  │  - mt4_get_account      (definido, no funcional)                     │   │
│  │  - mt4_get_positions    (definido, no funcional)                     │   │
│  │  - mt4_get_quote        (definido, no funcional)                     │   │
│  │  - mt4_execute_trade    (definido, no funcional)                     │   │
│  │  - mt4_close_position   (definido, no funcional)                     │   │
│  │  - mt4_modify_position  (definido, no funcional)                     │   │
│  └────────────────────────────────┬────────────────────────────────────┘   │
│                                   │                                         │
│                                   ▼                                         │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    MT4 GATEWAY (:8081)                               │   │
│  │  [NO IMPLEMENTADO]                                                    │   │
│  │                                                                       │   │
│  │  - HTTP/REST API                                                      │   │
│  │  - WebSocket para streaming                                          │   │
│  │  - Autenticacion por token                                           │   │
│  │  - Queue de comandos                                                 │   │
│  │  - Persistencia de estado                                            │   │
│  └────────────────────────────────┬────────────────────────────────────┘   │
│                                   │                                         │
│                          [Comunicacion Local]                               │
│                          (DLL/Socket/Named Pipe)                            │
│                                   │                                         │
│                                   ▼                                         │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    MT4 TERMINAL (Windows)                            │   │
│  │  [REQUIERE INSTALACION]                                              │   │
│  │                                                                       │   │
│  │  ┌───────────────────────────────────────────────────────────────┐   │   │
│  │  │                    EXPERT ADVISOR (EA)                         │   │   │
│  │  │  [NO DESARROLLADO]                                             │   │   │
│  │  │                                                                 │   │   │
│  │  │  - MQL4 Script                                                  │   │   │
│  │  │  - Socket Client para Gateway                                   │   │   │
│  │  │  - Manejo de OrderSend/OrderModify/OrderClose                  │   │   │
│  │  │  - Reporting de AccountInfo                                    │   │   │
│  │  └───────────────────────────────────────────────────────────────┘   │   │
│  └────────────────────────────────┬────────────────────────────────────┘   │
│                                   │                                         │
│                                   ▼                                         │
│  ┌─────────────────────────────────────────────────────────────────────┐   │
│  │                    BROKER MT4 SERVER                                 │   │
│  │  (Externo - e.g., IC Markets, Pepperstone)                          │   │
│  └─────────────────────────────────────────────────────────────────────┘   │
│                                                                             │
└────────────────────────────────────────────────────────────────────────────┘
```

---

## Herramientas MCP Definidas

| Tool | Descripcion | Nivel de Riesgo | Estado |
|------|-------------|-----------------|--------|
| `mt4_get_account` | Obtener balance, equity, margin | Bajo | Definido |
| `mt4_get_positions` | Listar posiciones abiertas | Bajo | Definido |
| `mt4_get_quote` | Obtener precio bid/ask actual | Bajo | Definido |
| `mt4_execute_trade` | Ejecutar orden BUY/SELL | ALTO | Definido |
| `mt4_close_position` | Cerrar una posicion | ALTO | Definido |
| `mt4_modify_position` | Modificar SL/TP | Medio | Definido |

---

## Dependencias

### Esta epica depende de:

| Epica/Modulo | Estado | Bloqueante | Razon |
|--------------|--------|------------|-------|
| OQI-001 Auth | Completado | No | Autenticacion opcional |
| MT4 Gateway Service | No existe | SI | Core dependency |
| Expert Advisor | No existe | SI | Ejecucion en MT4 |

### Esta epica habilita:

| Epica/Modulo | Razon |
|--------------|-------|
| OQI-010-llm-trading-integration | Permite al LLM operar en MT4 |
| Trading automatizado | Forex/CFD via agentes |

---

## Riesgos

| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Complejidad del EA | Alta | Alto | Usar librerias existentes |
| Latencia de ejecucion | Media | Alto | Optimizar comunicacion |
| Errores de trading | Alta | Critico | Paper trading primero, limits |
| Desconexiones MT4 | Media | Alto | Reconnect logic, heartbeat |
| Cambios en API broker | Baja | Medio | Abstraccion de broker |

---

## Entregables Pendientes

| Entregable | Prioridad | Esfuerzo | Estado |
|------------|-----------|----------|--------|
| MT4 Gateway Service | P0 | 13 SP | No iniciado |
| Expert Advisor MQL4 | P0 | 13 SP | No iniciado |
| Integracion MCP-Gateway | P0 | 8 SP | Parcial |
| Tests de integracion | P1 | 5 SP | No iniciado |
| Documentacion de deploy | P1 | 3 SP | No iniciado |
| Paper trading mode | P0 | 8 SP | No iniciado |
| Monitoring/Alertas | P2 | 5 SP | No iniciado |

---

## Referencias

- [STATUS.md](./STATUS.md) - Estado detallado del modulo
- [ROADMAP-MT4.md](./ROADMAP-MT4.md) - Plan de implementacion
- [Especificaciones](./especificaciones/) - Requisitos tecnicos
- [MCP MT4 Connector README](../../../mcp-mt4-connector/README.md)
- [MCP Protocol](https://modelcontextprotocol.io)

---

*Documento creado: 2026-01-28*
*Ultima actualizacion: 2026-01-28*
*Estado: NO FUNCIONAL*
