Una posición compartida no reparte resultados por robot

En una cuenta netting, dos EA y órdenes manuales pueden cambiar la misma posición del símbolo. Su resultado conjunto no identifica automáticamente cuánto corresponde a cada robot. Reconstruye las ejecuciones y después declara un método de atribución analítica. Dos convenciones pueden dar resultados diferentes por EA manteniendo el mismo total de cuenta; esa hoja no reemplaza el historial ni establece tratamiento fiscal.

MT5 distingue orden, ejecución y posición. Una orden puede producir varias ejecuciones y netting reúne su efecto actual por símbolo. Nombres distintos de programas no crean subcarteras independientes. Una salida manual puede reducir exposición construida por A y B, sin que su etiqueta diga qué compra anterior debes considerar cerrada en tu análisis.

Identificadores y origen antes de interpretar beneficios

DEAL_MAGIC recoge el magic de la ejecución y DEAL_REASON su origen o motivo: son propiedades diferentes. Magic cero por sí solo no acredita decisión manual. Conserva la correspondencia acordada entre programas e identificadores, sin inferirla de un comentario de salida. La guía de Expert Advisors aborda selección de posiciones; aquí reconstruimos el historial compartido.

Trata los números de tickets como identificadores, sin sumarlos como cantidades. Relaciona DEAL_ORDER con la orden y DEAL_POSITION_ID con el ciclo. POSITION_IDENTIFIER enlaza historia; POSITION_TICKET puede cambiar por operaciones de servicio del servidor. Guarda símbolo, dirección, cantidad, precio efectivamente ejecutado y marca temporal. Una solicitud de volumen no sustituye la cantidad realmente realizada.

HistorySelectByPosition recupera órdenes y operaciones mediante identificador de posición. Comprueba éxito y cobertura del resultado; una lista visible no acredita todos los registros necesarios. Conserva el original antes de añadir interpretación. Separa operaciones de balance y cargos, incorporando comisión, tarifas, financiación y resultado en la divisa correspondiente. Si exportas horas a Europe/Madrid, conserva fecha y reloj originales para no alterar la secuencia.

Cuatro ejecuciones completas en un ciclo ficticio

Contrato lineal EUR/USD supuesto de 100.000 EUR por lote, cuenta USD y ninguna posición inicial. Las compras se ejecutan al Ask asignado y las ventas al Bid asignado. Cuatro ejecuciones ocurren íntegramente en el orden indicado; cada una tiene comisión 1 USD y financiación y otras tarifas cero. Los precios ya contienen la diferencia de lados: no restes spread otra vez.

Operación/ordenOrigenEjecuciónPosición posterior
7001/5001EA ACompra 0,10 a 1,1000Larga 0,10
7002/5002EA BCompra 0,10 a 1,1020Larga 0,20
7003/5003Salida manualVenta 0,10 a 1,1010Larga 0,10
7004/5004Salida manualVenta 0,10 a 1,1030Sin posición

Todo pertenece al ciclo POSITION_IDENTIFIER=5001. Tras la segunda compra, entrada media 1,1010. La primera reducción a ese precio realiza 0 USD de precio; la segunda realiza 20 USD. Con cuatro comisiones, el ciclo cerrado suma 20−4=16 USD netos. Son supuestos educativos, no extracto de una cuenta real.

FIFO y LIFO analíticos mantienen el total

En FIFO asignamos la primera salida a la cantidad más antigua, A: 10.000×(1,1010−1,1000)=10 USD. La segunda se asigna a B: 10.000×(1,1030−1,1020)=10 USD. Reparte a cada EA su comisión de entrada y la de salida de su cantidad: A obtiene 8 USD y B 8 USD.

En LIFO asignamos primero la cantidad más reciente: B pierde 10 USD de precio en 7003 y A gana 30 USD en 7004. Después de dos cargos por cada asignación, B obtiene −12 USD y A +28 USD. La suma sigue siendo 16 USD. No son dos métodos alternativos del servidor ni una norma fiscal universal. Define criterio antes de evaluar y no lo cambies silenciosamente cuando un reparto favorezca a tu robot.

Mismo total de cuenta, atribuciones diferentesTarjetas del ciclo ficticio cerrado de cuatro ejecuciones completas de EUR/USD, 20 USD de precio y 4 USD de comisiones; sin otros costes.EJEMPLO DE CÁLCULOTotal de cuenta16 USD netosFIFO analíticoA: +8 · B: +8 USDLIFO analíticoA: +28 · B: −12 USDConversión adicional14,40 EUR conjuntos
Mismo total de cuenta, atribuciones diferentes. Tarjetas del ciclo ficticio cerrado de cuatro ejecuciones completas de EUR/USD, 20 USD de precio y 4 USD de comisiones; sin otros costes.

FIFO 8+8 y LIFO 28−12 concuerdan con 16 USD; son convenciones de análisis, no dos historias del servidor.

Total de cuenta
16 USD netos – 20 USD de precio menos cuatro cargos de 1 USD.
FIFO analítico
A: +8 · B: +8 USD – Cantidad más antigua primero.
LIFO analítico
A: +28 · B: −12 USD – Cantidad más reciente primero.
Conversión adicional
14,40 EUR conjuntos – Tipo fijo ficticio de 0,90 EUR por USD para traducir importes.

Ejercicio adicional a conversión fija asignada de 0,90 EUR por USD: el ciclo neto equivale a 14,40 EUR. FIFO reparte 7,20 y 7,20; LIFO, 25,20 para A y −10,80 para B. Ambos suman 14,40. La conversión uniforme no selecciona un método ni demuestra mejor estrategia; tampoco modela cargos reales de cambio. La diferencia entre resultados por robot proviene de la convención, no de una nueva ejecución.

Mientras queda exposición, compara realizado y flotante

Después de 7003 asigna Bid actual 1,1010. La posición neta compartida muestra 0 USD realizados y 0 flotantes de precio. FIFO analítico muestra +10 USD realizados para A y −10 flotantes de la cantidad restante de B. Su suma es 0, coincidiendo con la vista conjunta. Comparar solo lo realizado analítico con el campo del servidor mientras sigue abierto el ciclo produciría una discrepancia aparente.

Tras tres ejecuciones hay 3 USD de comisión. Ambas representaciones tienen resultado conjunto −3 USD a ese precio, o −2,70 EUR en el ejercicio de conversión fijo. Después de 7004 ya no queda valoración abierta y el reparto completo suma 16 USD. La guía de resultado flotante y realizado explica esas medidas. Coincidir en el total no acredita que cualquier convención sea apropiada para cualquier finalidad.

En historia real pueden aparecer parciales, inversiones, correcciones y cargos separados. Si falta una entrada, deja sin resolver la asignación afectada y explica qué falta. No inventes precio u origen para forzar el cuadre. Mantén método consistente entre ciclos y etiqueta cambios de metodología. Los límites de cuenta y robots siguen actuando sobre exposición compartida real, con independencia del reparto elegido en la hoja.

Tres acciones antes de evaluar varios EA

  1. Selecciona un ciclo cerrado del mismo símbolo ya disponible y conserva su exportación original. Relaciona operaciones, órdenes e identificador, cantidades y cargos; no abras operaciones reales para fabricar un ejemplo ni confundas pendientes actuales con historia.
  2. Declara asignación de cantidades y costes antes de calcular. Usa columnas separadas para origen de la instrucción y propietario analítico; reproduce FIFO 8/8 y LIFO 28/−12 con las cuatro ejecuciones, marcando toda ausencia sin completarla por comentarios.
  3. Reconcilia total cerrado con historial y cargos. Si el ciclo sigue abierto, compara realizado más flotante a la misma valoración: 10−10−3=−3 USD tras 7003. Conserva ambas vistas en el diario y trata la atribución como análisis, sin promesa de rentabilidad ni sustitución de registros oficiales.