---
id: "ROADMAP-MT4"
title: "Roadmap de Implementacion MT4 Gateway"
type: "Roadmap"
project: "trading-platform"
epic: "OQI-010"
version: "0.1.0"
created_date: "2026-01-28"
updated_date: "2026-01-28"
---

# ROADMAP: MT4 Gateway Implementation

> **Nota:** Este roadmap es un plan propuesto. La implementacion esta
> actualmente PAUSADA y requiere decision de prioridad antes de iniciar.

---

## Vision General

Implementar una integracion completa con MetaTrader 4 que permita:
1. Consultar informacion de cuenta y posiciones
2. Obtener cotizaciones en tiempo real
3. Ejecutar operaciones de trading (buy/sell)
4. Gestionar posiciones (modificar SL/TP, cerrar)
5. Integracion con agentes LLM via MCP

---

## Fases de Implementacion

### Fase 0: Preparacion del Ambiente (1 semana)

**Objetivo:** Establecer el ambiente de desarrollo necesario

| Tarea | Prioridad | Esfuerzo | Responsable |
|-------|-----------|----------|-------------|
| Instalar MT4 Terminal en maquina de desarrollo | P0 | 1 dia | - |
| Crear cuenta demo con broker compatible | P0 | 1 dia | - |
| Configurar MetaEditor para desarrollo MQL4 | P0 | 0.5 dias | - |
| Documentar proceso de setup | P1 | 0.5 dias | - |
| Crear Docker container para gateway (opcional) | P2 | 2 dias | - |

**Entregables:**
- [ ] MT4 instalado y conectado a cuenta demo
- [ ] MetaEditor funcional
- [ ] Credenciales de cuenta demo documentadas (seguras)

**Brokers recomendados para cuenta demo:**
- IC Markets (bajo spread, MT4 estable)
- Pepperstone
- OANDA
- FXCM

---

### Fase 1: MT4 Gateway Service (2-3 semanas)

**Objetivo:** Implementar el servicio intermediario entre MCP y MT4

#### Semana 1: Core del Gateway

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Crear proyecto Node.js/TypeScript | P0 | 0.5 dias |
| Implementar servidor HTTP/REST | P0 | 1 dia |
| Definir API endpoints | P0 | 1 dia |
| Implementar autenticacion por token | P0 | 1 dia |
| Crear estructura de comandos | P0 | 1 dia |

**API Endpoints propuestos:**
```
POST /api/v1/auth/login
GET  /api/v1/account
GET  /api/v1/positions
GET  /api/v1/quote/:symbol
POST /api/v1/orders
DELETE /api/v1/orders/:ticket
PATCH /api/v1/positions/:ticket
GET  /api/v1/history
WS   /ws/stream
```

#### Semana 2: Comunicacion con EA

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Disenar protocolo de comunicacion EA-Gateway | P0 | 1 dia |
| Implementar socket server para EA | P0 | 2 dias |
| Implementar command queue | P0 | 1 dia |
| Manejar respuestas asincronas | P0 | 1 dia |

**Protocolo propuesto (JSON sobre TCP):**
```json
// Request (Gateway -> EA)
{
  "id": "uuid",
  "command": "EXECUTE_TRADE",
  "params": {
    "symbol": "XAUUSD",
    "action": "BUY",
    "lots": 0.1,
    "sl": 2640,
    "tp": 2680
  }
}

// Response (EA -> Gateway)
{
  "id": "uuid",
  "success": true,
  "ticket": 12345678,
  "data": {
    "openPrice": 2650.50,
    "openTime": "2026-01-28T10:30:00Z"
  }
}
```

#### Semana 3: Testing y Hardening

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Unit tests para gateway | P0 | 2 dias |
| Integration tests con mocks | P0 | 1 dia |
| Error handling robusto | P0 | 1 dia |
| Logging y monitoring | P1 | 1 dia |

**Entregables Fase 1:**
- [ ] Servicio gateway funcional en puerto 8081
- [ ] API REST documentada
- [ ] Socket server para comunicacion con EA
- [ ] Tests con cobertura >70%

---

### Fase 2: Expert Advisor (EA) (2-3 semanas)

**Objetivo:** Desarrollar el Expert Advisor que ejecutara operaciones en MT4

#### Semana 1: EA Base

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Crear estructura base del EA | P0 | 1 dia |
| Implementar cliente socket | P0 | 2 dias |
| Parsear comandos JSON | P0 | 1 dia |
| Implementar heartbeat | P0 | 1 dia |

**Estructura del EA:**
```
MT4BridgeEA/
├── MT4BridgeEA.mq4       # EA principal
├── SocketLib.mqh         # Libreria de socket
├── JsonParser.mqh        # Parser JSON
├── CommandHandler.mqh    # Manejador de comandos
└── README.md             # Documentacion
```

#### Semana 2: Operaciones de Trading

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Implementar OrderSend (market) | P0 | 1 dia |
| Implementar OrderSend (pending) | P0 | 1 dia |
| Implementar OrderModify | P0 | 1 dia |
| Implementar OrderClose | P0 | 1 dia |
| Manejar errores MT4 | P0 | 1 dia |

**Codigos de error MT4 a manejar:**
- ERR_NO_ERROR (0)
- ERR_COMMON_ERROR (2)
- ERR_INVALID_TRADE_PARAMETERS (3)
- ERR_SERVER_BUSY (4)
- ERR_OLD_VERSION (5)
- ERR_NO_CONNECTION (6)
- ERR_NOT_ENOUGH_MONEY (134)
- ERR_TRADE_TOO_MANY_ORDERS (148)

#### Semana 3: Reporting y Reconexion

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Implementar AccountInfo | P0 | 0.5 dias |
| Implementar PositionList | P0 | 0.5 dias |
| Implementar QuoteStream | P1 | 1 dia |
| Implementar auto-reconexion | P0 | 1 dia |
| Testing manual en cuenta demo | P0 | 2 dias |

**Entregables Fase 2:**
- [ ] Expert Advisor instalable en MT4
- [ ] Todas las operaciones de trading funcionales
- [ ] Auto-reconexion implementada
- [ ] Documentacion de instalacion

---

### Fase 3: Integracion MCP (1-2 semanas)

**Objetivo:** Conectar el mcp-mt4-connector existente con el gateway real

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Actualizar mt4-client.ts para gateway real | P0 | 1 dia |
| Implementar manejo de errores completo | P0 | 1 dia |
| Agregar retry logic | P0 | 0.5 dias |
| Agregar timeout handling | P0 | 0.5 dias |
| Tests de integracion E2E | P0 | 2 dias |
| Documentar configuracion | P1 | 0.5 dias |

**Entregables Fase 3:**
- [ ] mcp-mt4-connector conectado a gateway real
- [ ] Todos los tools funcionales con MT4 real
- [ ] Tests E2E pasando

---

### Fase 4: Paper Trading Mode (1 semana)

**Objetivo:** Implementar modo de simulacion para pruebas seguras

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Disenar modo paper trading | P0 | 0.5 dias |
| Implementar balance virtual | P0 | 1 dia |
| Simular ejecucion de ordenes | P0 | 1 dia |
| Tracking de P&L virtual | P0 | 1 dia |
| Switch entre paper/real | P0 | 0.5 dias |

**Entregables Fase 4:**
- [ ] Modo paper trading funcional
- [ ] Flag de configuracion para activar
- [ ] Metricas de paper trading

---

### Fase 5: Productionization (1-2 semanas)

**Objetivo:** Preparar para uso en produccion

| Tarea | Prioridad | Esfuerzo |
|-------|-----------|----------|
| Implementar rate limiting | P0 | 1 dia |
| Agregar risk limits | P0 | 1 dia |
| Implementar circuit breaker | P0 | 1 dia |
| Configurar alertas | P1 | 1 dia |
| Documentacion de operaciones | P1 | 1 dia |
| Runbook para incidentes | P1 | 1 dia |

**Risk Limits propuestos:**
- Max posiciones abiertas: 5
- Max lots por orden: 1.0
- Max drawdown diario: 5%
- Cooldown entre trades: 60 segundos

**Entregables Fase 5:**
- [ ] Rate limiting configurado
- [ ] Risk limits implementados
- [ ] Circuit breaker funcional
- [ ] Documentacion de operaciones

---

## Timeline Estimado

```
Fase 0: Preparacion     |====|                                    (1 sem)
Fase 1: MT4 Gateway          |============|                       (3 sem)
Fase 2: Expert Advisor                     |============|         (3 sem)
Fase 3: Integracion MCP                                 |====|    (1.5 sem)
Fase 4: Paper Trading                                       |===| (1 sem)
Fase 5: Production                                            |===| (1.5 sem)
                        |----|----|----|----|----|----|----|----|----|----|
                        S1   S2   S3   S4   S5   S6   S7   S8   S9   S10  S11

Total estimado: 10-11 semanas
```

---

## Recursos Requeridos

### Personal
- 1 Desarrollador Senior (TypeScript + MQL4)
- 0.5 QA Engineer (testing)

### Infraestructura
- Maquina Windows para MT4 (o VM)
- Cuenta demo con broker
- CI/CD para gateway

### Dependencias Externas
- Broker MT4 (cuenta demo gratuita)
- Documentacion MQL4 (gratis)

---

## Criterios de Exito

| Metrica | Target | Medicion |
|---------|--------|----------|
| Latencia de ejecucion | <500ms | Promedio en paper trading |
| Uptime del gateway | >99% | Monitoring |
| Precision de ordenes | 100% | Ordenes ejecutadas vs solicitadas |
| Cobertura de tests | >70% | Jest/pytest coverage |

---

## Riesgos y Mitigaciones

| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Complejidad MQL4 | Alta | Alto | Documentacion, pruebas incrementales |
| Latencia alta | Media | Medio | Optimizar comunicacion, caché |
| Desconexiones | Media | Alto | Auto-reconnect, alertas |
| Errores de trading | Alta | Critico | Paper trading obligatorio primero |

---

## Decision Gates

### Gate 1: Fin de Fase 1
- [ ] Gateway responde a requests
- [ ] Socket server acepta conexiones
- [ ] Tests unitarios pasan

### Gate 2: Fin de Fase 2
- [ ] EA se conecta al gateway
- [ ] Operaciones basicas funcionan en demo
- [ ] Reconexion automatica funciona

### Gate 3: Fin de Fase 3
- [ ] MCP tools ejecutan trades reales
- [ ] E2E tests pasan
- [ ] Documentacion completa

### Gate 4: Ready for Production
- [ ] Paper trading validado
- [ ] Risk limits funcionando
- [ ] Runbook creado

---

## Proximos Pasos Inmediatos

Si se decide priorizar esta epica:

1. **Semana 1:**
   - Asignar desarrollador responsable
   - Setup ambiente de desarrollo
   - Crear cuenta demo con broker

2. **Semana 2:**
   - Iniciar desarrollo del gateway
   - Kick-off de arquitectura detallada

---

*Este roadmap sera actualizado conforme avance la implementacion.*
*Ultima actualizacion: 2026-01-28*
