El flujo señal → trade
Qué pasa entre que TradingView dispara una alerta y MT5 abre la posición — etapa por etapa.
Esta es la versión "técnica accesible" de Cómo funciona en 30 segundos. Aquí explico cada etapa con detalle: qué hace PineLink, qué validaciones aplica y qué puede salir mal.
Las 5 etapas de una señal
TradingView dispara la alerta
Tu condición de Pine Script (o tu alerta manual) se cumple. TradingView envía un HTTP POST a tu URL personal de webhook con el mensaje que escribiste en la alerta como cuerpo (texto plano).
No requiere autenticación adicional desde TradingView — la URL incluye tu
license_keyque actúa como token. Por eso no la compartas.PineLink valida y parsea
El backend hace tres comprobaciones en este orden:
- ¿La license_key existe y está activa? Si no,
HTTP 401. - ¿No has excedido el rate limit? 60 señales/min y 1000 señales/h
por licencia. Si sí,
HTTP 429. - ¿El mensaje se parsea? Si la sintaxis es inválida, la señal se
guarda como
blockedcon razónparse_errory devuelveHTTP 400con el mensaje específico.
- ¿La license_key existe y está activa? Si no,
Guardián de equity
Antes de meter la señal en cola, PineLink consulta el estado del día para tu cuenta MT5:
- ¿Has tocado tu profit target diario?
- ¿Has tocado tu loss limit diario?
- ¿Has tocado tu max drawdown acumulado?
Si cualquiera está
true: la señal se guarda comoblockedcon razóndaily_target_hit. No llega al EA. La verás en/signalscon badge rojo.Si todo OK: la señal entra en cola con estado
queued.El EA hace poll y consume
Tu EA en MT5 hace
GET /api/ea/pollcada 1-3 segundos (configurable en EA Config). Si hay señalesqueuedpara tu licencia, el backend las marca comoconsumed_at = now()y se las devuelve.El backend usa
SELECT FOR UPDATE SKIP LOCKED: si tienes el EA abierto en dos instancias por error (no recomendado), nunca se reparte la misma señal dos veces — solo la coge la primera que pregunte.MT5 ejecuta y reporta
El EA traduce la señal al formato MT5 (símbolo del broker, lot size, SL/TP en precio absoluto) y abre la posición. Luego hace
POST /api/ea/ackcon el resultado:executed(OK) ofailed(mensaje de error).Cuando la posición se cierra (por SL, TP, manual o close_all del halt), el EA hace
POST /api/ea/reportcon el P&L final. PineLink:- Suma al
daily_states.realized_pnldel día (en UNA transacción atómica, víaSELECT FOR SHAREpara evitar race conditions con webhooks concurrentes). - Re-evalúa el guardián. Si tocas un límite con esta operación,
el halt se dispara — y, si configuraste
close_and_halt, se genera una señal sintéticaclose_allque el EA ejecuta en el siguiente poll.
- Suma al
Estados de las señales
Cada señal vive su ciclo en /signals. Estos son los estados posibles:
| Estado | Significado | Causa |
|--------|-------------|-------|
| queued | Aceptada, esperando que el EA la recoja | Flujo normal |
| consumed | El EA la cogió pero aún no reportó resultado | Transitorio (segundos) |
| executed | MT5 confirmó la apertura | Flujo normal |
| failed | MT5 rechazó la orden | Margen insuficiente, símbolo cerrado, freeze level, etc. |
| blocked | Bloqueada antes de llegar al EA | Halt diario, parse error, rate limit, licencia inactiva |
| expired | El EA estaba offline más de 60s y caducó | TTL de cola superado |
Garantías que da PineLink
| Garantía | Cómo se cumple |
|----------|----------------|
| Cada señal se ejecuta como mucho una vez | consumed_at + SELECT FOR UPDATE SKIP LOCKED |
| El halt bloquea nuevas señales sin race condition | SELECT FOR SHARE en el insert + check atómico |
| Las señales expiradas no se ejecutan tarde | TTL configurable (default 60s) |
| El P&L del día es exacto y atómico | Update en BD bajo lock, idempotente |
| Tu IP en el log es anónima (GDPR) | SHA-256 con salt secret antes de persistir |
Garantías que NO da PineLink
| No-garantía | Por qué | |-------------|---------| | Latencia exacta predecible | Depende de tu red, de TradingView y del polling del EA. Típico 1-3s, peor caso 5s. | | Que MT5 acepte la orden | El broker puede rechazar por margen, freeze level, símbolo cerrado, etc. PineLink solo enseña el error. | | Que el SL/TP se respete tras enviar | Es responsabilidad del broker. Si tu broker tiene "shadow SL", actívalo en EA Config. | | Reordering en condiciones extremas | Si llegan 100 señales en 1 segundo a la misma licencia, se procesan en orden de recepción server-side, pero el EA puede agruparlas. |
Próximos pasos
- Halt y targets diarios — el guardián explicado en profundidad.
- Modos de riesgo — qué cantidad opera cada señal.
- Errores comunes del EA — qué significa
cada código
failed.