FIFO de la cuenta y FIFO de tu análisis

Un rechazo FIFO al cerrar en MT5 requiere comprobar el orden permitido en esa cuenta. First in, first out significa aquí que se cierra primero la posición más antigua del mismo símbolo. Puede ser una restricción del servidor, distinta de tu método para repartir resultados en el diario. No repitas automáticamente el cierre ni sustituyas el ticket por otro anterior sin comprobar el efecto sobre tu plan.

La propiedad ACCOUNT_FIFO_CLOSE identifica esa regla. Si es true, las posiciones de cada símbolo se cierran en orden de apertura; fuera del modo hedging la referencia indica false. El idioma de la interfaz no determina su valor ni una jurisdicción. Comprueba proveedor y condiciones reales, sin afirmar que todos los usuarios de MT5 están sujetos a la misma regla.

También puedes usar FIFO como convención analítica para asignar una reducción a entradas anteriores de una posición netting compartida. La hoja de cálculo no modifica qué instrucción acepta el servidor. Conserva hechos de ejecución y método de atribución por separado; una columna llamada FIFO no demuestra que la cuenta tenga activada esa restricción técnica.

Identifica el rechazo y construye la cola correcta

El código 10045, TRADE_RETCODE_FIFO_CLOSE, corresponde al rechazo por la opción de cierre FIFO. No lo confundas con prohibición de posiciones opuestas, modo close-only o errores de precio, volumen y conexión. Conserva la respuesta completa y su origen. La palabra genérica «error» no identifica qué condición falló.

Registra servidor, alias de cuenta, símbolo exacto, ticket, apertura y volumen actual. Ordena solo las posiciones de ese instrumento por hora, sin utilizar beneficio ni la disposición visual de filas. Si las horas visibles coinciden por resolución limitada, guarda identificadores y consulta la prioridad al proveedor; no inventes una regla basada en el número de ticket.

Tres posiciones: primero la más antigua

Modelo ficticio de cuenta hedging con FIFO=true y contrato EUR/USD de 100.000 EUR por lote. Todas son compras del mismo símbolo. P1 abre a las 08:00, 0,10 lote a 1,1000; P2 a las 08:05, 0,20 a 1,1010; P3 a las 08:10, 0,10 a 1,1020. Usamos Bid fijo 1,1030 y excluimos costes, deslizamiento y otros eventos. Las horas pertenecen a un mismo reloj del modelo; Europe/Madrid puede emplearse como presentación identificada, sin suponer que sea la hora del servidor.

PosiciónAperturaVolumenPrecioResultado asignado
P108:000,10 lote1,100030 USD
P208:050,20 lote1,101040 USD
P308:100,10 lote1,102010 USD

En este ejemplo de cierres completos, pedir P3 antes de P1 incumple el orden. Tras confirmar el cierre completo de P1, sigue P2. Su beneficio de 40 USD es el mayor, pero no la hacía primera al inicio. El volumen menor tampoco selecciona la siguiente. Relee las posiciones restantes después de cada confirmación: una cola preparada es un plan, no un registro de operaciones ya completadas.

La antigüedad decide el orden, no el beneficioTarjetas del modelo FIFO=true, mismo símbolo, compras a las 08:00/08:05/08:10 y Bid 1,1030 fijo; sin costes ni otros eventos.EJEMPLO DE CÁLCULOP1 ·08:000,10 lote ·30 USDP2 ·08:050,20 lote ·40 USDP3 ·08:100,10 lote ·10 USD
La antigüedad decide el orden, no el beneficio. Tarjetas del modelo FIFO=true, mismo símbolo, compras a las 08:00/08:05/08:10 y Bid 1,1030 fijo; sin costes ni otros eventos.

Tras confirmar cada cierre completo, relee la cola P1→P2→P3.

P1 ·08:00
0,10 lote ·30 USD – Primera por apertura.
P2 ·08:05
0,20 lote ·40 USD – Mayor beneficio, pero inicialmente segunda.
P3 ·08:10
0,10 lote ·10 USD – Pedirla antes de P1 incumple este modelo.

Inicialmente hay 80 USD flotantes. Con precios fijos, cerrar P1 deja 30 realizados y 50 flotantes. Después de P2, hay 70 realizados y 10 flotantes. La suma sigue siendo 80; no se genera un beneficio adicional al cambiar de columna. Ejercicio adicional: a conversión fija asignada de 0,90 EUR por USD, los resultados individuales son 27, 36 y 9 EUR. Tras P1 se separan 27 realizados y 45 flotantes; después de P2, 63 y 9. El total 72 EUR es constante bajo nuestros supuestos, sin cargos reales de conversión.

Cerrar otra posición también cambia la decisión

Quizá querías salir de P3 porque pertenece a un EA o plan diferente. Sustituir automáticamente ese cierre por P1 puede cumplir la regla técnica y alterar la estrategia. Comprueba dirección, cantidad y efecto conjunto antes de elegir una operación permitida. Si las condiciones de cuenta impiden tu organización prevista, puede ser necesario replantear el proceso; esta guía no recomienda liquidar un ticket concreto.

No abras una posición opuesta para esquivar el rechazo. Hedging puede crear otra exposición y la cuenta puede prohibirla por separado. Tras un cierre parcial comprueba cantidad restante y orden otra vez: enviar una solicitud no demuestra desaparición completa de la posición más antigua. Si falta respuesta, utiliza la reconciliación de errores antes de continuar con tickets de una tabla antigua.

Otra operación aceptada puede cambiar la cuenta mientras preparas la siguiente. Registra quién inició cada acción: persona, EA o mecanismo del servidor, según las evidencias disponibles. El símbolo por sí solo no identifica su origen. Si un cierre falla, conserva el fallo y relee el estado; no supongas que todas las solicitudes previas se ejecutaron solo porque estaban previstas.

Protecciones y cierres colectivos necesitan su propia revisión

La ayuda de MT5 describe vinculación de SL/TP entre posiciones del mismo instrumento en cuentas FIFO, para mantener el orden. Tras colocar, modificar o borrar un nivel, inspecciona los valores aceptados de todas las posiciones relacionadas. No supongas protección completamente independiente para cada ticket.

La documentación describe también cierres FIFO secuenciales con interrupción ante error. Una orden colectiva no acredita que todas las posiciones hayan desaparecido: guarda respuestas y revisa el resto. No deduzcas de este modelo el orden de liquidación forzosa de cualquier proveedor; stop-out tiene condiciones propias que debes verificar. Close By es otra operación con permisos y tratamiento específicos, sin servir de sustituto automático de la secuencia.

Tres acciones después de un rechazo FIFO

  1. Conserva retcode completo, símbolo y valor de ACCOUNT_FIFO_CLOSE de la cuenta relevante. Distingue regla del servidor, método analítico y otras restricciones; enmascara datos de cuenta y no incluyas contraseñas.
  2. Construye una tabla desde posiciones actuales con identificadores, aperturas, dirección, volumen y niveles aceptados. Marca la más antigua del símbolo y las respuestas inciertas; reconcilia historial antes de suponer que la cola anterior sigue vigente.
  3. Recalcula el modelo sin enviar órdenes reales: verifica 30/40/10 USD y separación 30/50 tras P1. Si ensayas comportamiento, usa una demo con condiciones coincidentes y registra cada confirmación y resto; no conviertas el ejercicio en instrucción de cerrar posiciones de otro plan.