Reconcilia la pareja, no una fila aislada

Después de Close By en MT5 pueden aparecer dos operaciones de salida y quedar todo el resultado de precio en una de ellas. Un cero en la otra no demuestra que falte dinero. Relaciona orden y posiciones, suma los campos registrados y comprueba costes. La operación corresponde a posiciones opuestas del mismo símbolo en una cuenta hedging donde esté permitida; no equivale a cerrar por separado ambas posiciones al mercado.

En netting existe una posición por símbolo: una operación opuesta reduce, cierra o invierte esa posición, sin crear la pareja independiente que requiere Close By. También debes verificar SYMBOL_ORDER_MODE y su permiso SYMBOL_ORDER_CLOSEBY. La etiqueta hedging no completa esa comprobación. No abras una posición nueva para obtener una función de cierre: alterarías exposición y costes.

Dos salidas y una atribución asimétrica

La referencia distingue DEAL_ENTRY_OUT_BY de una salida ordinaria OUT y de una inversión INOUT. Es una clasificación, no una comisión adicional. Conserva ambos identificadores de posición y la orden asociada. El AlgoBook explica que el resultado de precio se atribuye a la salida de la primera posición especificada; la segunda registra cero. Invertir los tickets puede cambiar estadísticas de largos y cortos sin mejorar el total.

Antes de calcular rendimiento, define si analizas operaciones individuales, posiciones completas o parejas compensadas. Dos registros que describen una compensación no son automáticamente dos señales independientes. Aplica el mismo criterio a pérdidas y ganancias; una estadística por dirección puede variar solo por la atribución del resultado. Conserva hechos de ejecución separados de esa convención analítica.

Modelo: diez dólares de precio, seis netos

Contrato lineal hipotético EUR/USD de 100.000 EUR por lote, cuenta USD: L es una compra de 0,10 lotes abierta a 1,1000 y S una venta de 0,10 abierta a 1,1010. Cada una representa 10.000 EUR. Las cotizaciones son sintéticas. Asignamos 4 USD de costes completos para la pareja y excluimos cambios de precio, conversión o demora entre variantes.

La diferencia de aperturas produce (1,1010−1,1000)×10.000=10 USD. Con L primero, su OUT_BY registra 10 USD y el de S, cero. Con S primero, se desplaza la atribución, manteniendo la suma 10. Tras los costes asignados quedan 6 USD en ambos casos. No sumes otros 10 al reinterpretar precios reflejados en sentido contrario: los campos registrados ya contienen el resultado de la compensación.

Dos registros no duplican el resultadoTarjetas del modelo lineal EUR/USD, 0,10 lote por lado y 4 USD de costes completos. Precios y conversión se mantienen entre variantes.EJEMPLO DE CÁLCULOOUT_BY de L10 USDOUT_BY de S0 USDCostes completos4 USDNeto conjunto6 USD
Dos registros no duplican el resultado. Tarjetas del modelo lineal EUR/USD, 0,10 lote por lado y 4 USD de costes completos. Precios y conversión se mantienen entre variantes.

Precio 10+0=10 USD; neto 6 USD, con costes incluidos una sola vez.

OUT_BY de L
10 USD – Primera posición especificada.
OUT_BY de S
0 USD – Segundo resultado de precio.
Costes completos
4 USD – Incluye aperturas y cierres.
Neto conjunto
6 USD – No reconstruir una segunda ganancia.
Orden de ticketsResultado LResultado SPrecio totalNeto del modelo
L, S10 USD0 USD10 USD6 USD
S, L0 USD10 USD10 USD6 USD

Descompón los 4 USD en 1 por cada apertura y 1 por cada cierre. Con balance inicial 1.000 USD, las aperturas dejan 998; el cierre suma 10 de precio y resta 2 nuevos de comisión, terminando en 1.006. El resultado completo sigue siendo +6. No restes otra vez los 2 ya contabilizados al abrir. La segunda salida puede tener cero de precio y −1 de comisión: no es por ello gratuita ni una señal independiente perdedora.

Ejercicio adicional: con conversión fija asignada de 0,90 EUR por USD, el precio es +9 EUR y los costes completos 3,60; neto +5,40. Inicio 900 EUR, tras aperturas 898,20 y final 905,40. La conversión uniforme conserva la reconciliación; no reproduce cargos reales de conversión ni cambios de divisa a lo largo del tiempo. Revisa el reparto efectivo del proveedor en lugar de imponer nuestra división inventada.

Por qué dos cierres separados dan otro importe

Para otra variante simultánea asigna Bid 1,1020 y Ask 1,1022. Cerrar L al Bid produce +20 USD; cerrar S al Ask, −12. La suma de precio es 8, frente a 10 del modelo Close By. La diferencia es 2 USD: spread 0,0002 por 10.000 EUR. Manteniendo los mismos costes completos, serían 4 USD netos en cierres separados y 6 con compensación.

MT5 describe el ahorro de un spread respecto al cierre separado, pero no promete el mismo ahorro final en cualquier cuenta. Comisión, financiación, cargos de conversión y diferencias temporales pueden cambiar la comparación. Un resultado OUT_BY cero no establece comisión cero. Anota la divisa de cada componente, suma resultados y cargos con su signo y comprueba qué importes ya estaban contabilizados.

Un volumen desigual deja exposición

Ahora cambia L a 0,30 lotes y conserva S en 0,10. La cantidad común compensada es 0,10 por lado y quedan 0,20 lotes largos. El registro de una compensación no acredita una cuenta sin exposición. A Bid 1,1020, esos 20.000 EUR desde 1,1000 tendrían una valoración flotante de +40 USD, sin incluir cargos. No la sumes al balance como dinero ya realizado.

Comprueba volumen actual, dirección y protección aceptada del resto. La guía de resultado realizado y flotante permite mantener separados ambos importes. Una lista actual de posiciones, el resultado de la orden y un extracto contestan preguntas diferentes. Si falta respuesta, reconcilia el estado siguiendo el diagnóstico de órdenes antes de repetir la solicitud.

Tres acciones para comprobar un Close By

  1. Localiza una operación de prueba ya disponible y relaciona su orden, ambos identificadores de posición y las dos salidas OUT_BY. Anota divisa, cantidad efectivamente compensada y campos de resultado sin deducir la pareja a partir de un cero.
  2. Reconstruye la tabla completa desde antes de las aperturas: resultados y costes con su signo, cada cargo una sola vez. Repite el modelo 1000→998→1006 y su conversión EUR; separa operaciones ajenas y valoración flotante del resto.
  3. Después de confirmar ejecución, revisa posiciones restantes y sus niveles aceptados. En el modelo 0,30 contra 0,10 identifica 0,20 largos y 40 USD flotantes; no interpretes el registro de compensación como prueba de exposición cero ni como recomendación de abrir una pareja.