EA Ledger True Costs MT5
- Utilidades
-
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself. - Versión: 1.0
- Activaciones: 10
Un registro contable de la cuenta para MetaTrader 5 que desglosa sus resultados por número mágico, símbolo, día de la semana y hora, muestra el P/L de precio, la comisión, el swap y las tarifas en columnas separadas, y mide el spread pagado en cada ejecución y el deslizamiento respecto al precio que usted solicitó. Los totales se comprueban contra el balance de la cuenta en cada actualización. Nunca opera en un gráfico.
Qué hace
Adjúntelo a un solo gráfico. Lee el historial de transacciones de la cuenta, reconstruye cada posición a partir de sus transacciones y muestra el resultado en un panel:
- resultado neto, P/L de precio, comisión, swap y tarifas, en columnas separadas
- costo del spread y costo del deslizamiento de cada ejecución, medidos con el propio historial de ticks del terminal
- MFE y MAE de cada operación cerrada: cuánto se movió el precio a su favor y en su contra mientras estuvo abierta
- operaciones, tasa de acierto, factor de beneficio, lotes y costo total por lote
- depósitos, retiradas, crédito, bonos, correcciones y otros movimientos ajenos al trading, mostrados aparte de los resultados de trading
Se actualiza solo cuando se añade una transacción. Su cálculo se probó con historiales sintéticos de 50.000 y 200.000 transacciones; las cuentas de prueba en vivo tenían hasta 1.249 transacciones.
Totales que cuadran con el balance
Cada vez que cambia el historial, el panel suma todas las transacciones de la cuenta y compara la suma con el balance que informa el bróker. La barra bajo el resumen muestra ambas cifras y la diferencia: "OK" en verde cuando coinciden al centavo, "MISMATCH" en rojo cuando no coinciden. Para el periodo seleccionado también muestra que la variación del balance es igual al resultado de trading más los movimientos ajenos al trading.
El crédito se muestra, pero no se cuenta en el balance, igual que lo cuenta MetaTrader.
Posiciones reconstruidas a partir de las transacciones
- Cuentas de cobertura (hedging) y de compensación (netting).
- Cierres parciales, posiciones ampliadas, cierres por posición opuesta (Close By; ambas posiciones se marcan con "CB") y reversiones en cuentas de compensación (una transacción que cierra una posición y abre la opuesta). La comisión de una transacción de reversión se reparte entre la operación cerrada y la nueva según el volumen.
- La comisión registrada como transacciones separadas, y la comisión diaria o mensual, se asigna a su posición cuando el bróker la vincula a una. En caso contrario se muestra en su propia fila, "Commission not linked to a position".
- Se marcan las salidas por stop loss, take profit y stop out.
Agrupación y filtros
Vistas: por número mágico (con el comentario del EA como etiqueta cuando lo hay; el número mágico 0 es "Manual"), por símbolo, por número mágico y símbolo, por día de la semana de entrada, por hora del bróker de entrada y una lista de operaciones.
Periodos: hoy, esta semana, este mes, todo el historial o un rango personalizado en hora del servidor.
Haga clic en una fila de número mágico para ver sus símbolos, en una fila de símbolo para ver sus números mágicos y en una fila de número mágico y símbolo para ver sus operaciones. Una etiqueta en el panel muestra el filtro activo y permite quitarlo.
La página Results muestra importes en dinero; la página Costs muestra spread, deslizamiento, comisión y tarifas por grupo, el costo por lote, el MFE y el MAE medios y de dónde procede cada medición.
Cómo se miden los costos
- Spread en una ejecución: el bid/ask vigente en el momento de la transacción, tomado del historial de ticks del terminal. Si no hay tick, se usa el spread de la barra M1 y la operación se marca con "M1".
- Deslizamiento: el precio de ejecución frente al precio que se solicitó:
- una orden pendiente: su precio de orden
- un stop loss o take profit: el nivel del stop
- una orden de mercado: el bróker normalmente no guarda ningún precio solicitado para ella, así que la cotización del momento en que se colocó la orden se toma del historial de ticks (ask para una compra, bid para una venta)
Un deslizamiento positivo va en su contra; uno negativo, a su favor.
- Valor monetario de un punto: se toma del propio beneficio de la operación, así que sigue la divisa de la cuenta, incluidas las cuentas cent y en EUR, y el tamaño del contrato (oro de 1, 10 o 100 oz por lote, CFD de índices de 1, 10 o 100 unidades). Cuando una operación no tiene movimiento de precio con el que medirlo, se usa la media del símbolo y, después, el propio cálculo de beneficio del bróker.
- MFE / MAE: el precio más alto y el más bajo al que se valoró la posición (bid para una compra, ask para una venta) entre la entrada y la salida, a partir de ticks. Las operaciones de más de 3 días (un parámetro de entrada) usan barras M1 y se marcan con "M1".
El costo del spread y el costo del deslizamiento ya están incluidos en el P/L de precio, porque forman parte del precio de ejecución. Se muestran para que usted vea qué parte del resultado se llevaron. No se restan una segunda vez.
Los resultados se guardan en un pequeño archivo de caché, así que la medición se hace una sola vez por transacción. En las cuentas de prueba, la primera medición de 1.246 ejecuciones y 557 operaciones tardó 7 segundos; se ejecuta en pequeños tramos en segundo plano y el panel se puede usar mientras tanto.
Exportación a CSV
El botón "Export CSV" escribe cuatro archivos en MQL5\Files\EALedger\<account>\:
- <time>_summary.csv: totales del periodo, movimientos ajenos al trading, la comprobación del balance
- <time>_groups.csv: una fila por grupo de la vista actual
- <time>_trades.csv: una fila por operación, con entrada y salida, costos, spread y deslizamiento en la entrada y en la salida, MFE y MAE en puntos y en dinero, el origen de cada medición y notas
- <time>_deals.csv: una fila por transacción, con la operación a la que pertenece, el precio solicitado, la cotización en el momento de la orden, el deslizamiento y el spread
Con el parámetro de entrada "Write the CSV files again after every history change", los mismos archivos se mantienen actualizados con el prefijo auto_.
Parámetros de entrada
| Parámetro | Valor por defecto | Significado |
|---|---|---|
| Period shown at start | All history | Today, This week, This month, All history, Custom |
| Custom period: from / to | 2026.01.01 / 0 | Hora del servidor. 0 = ahora |
| View shown at start | By magic number | By magic number, By symbol, By magic number and symbol, By weekday of entry, By broker hour of entry, Trade list |
| Show only this magic number | -1 | -1 muestra todos |
| Measure spread and slippage at every fill | true | |
| Measure MFE / MAE of closed trades | true | |
| Trades up to this many days long use ticks | 3 | Las operaciones más largas usan barras M1 |
| Write the CSV files again after every history change | false | |
| Panel distance from the left / top edge | 8 / 22 | Píxeles |
| Panel scale in % | 0 | 0 sigue el DPI de la pantalla |
| Hide the chart's own trade arrows while the panel is open | true | MetaTrader las dibuja por encima del panel. El ajuste del gráfico se restablece cuando se contrae el panel o se quita el EA |
| Tester only: open sample positions | true | Ver más abajo |
Probador de estrategias
El probador no tiene ningún historial de transacciones que mostrar al inicio. Por eso, solo en el Probador de estrategias, el EA abre él mismo una breve serie de posiciones de muestra:
- volumen mínimo (el doble del mínimo cuando el margen lo permite), tres números mágicos ("Sample A", "Sample B", "Sample C")
- cada posición se abre, se cierra la mitad y después se cierra el resto, hasta 60 posiciones
- el margen libre se comprueba antes de cada nueva posición; con demasiado poco dinero escribe una nota y no envía nada
Ejecútelo en modo visual para ver cómo se llena el panel. Las posiciones de muestra no son una estrategia de trading y sus resultados no dicen nada sobre el beneficio. El probador no tiene precio solicitado para las órdenes de mercado y puede no tener historial de ticks, así que allí el spread y el MFE/MAE salen de barras M1 y el deslizamiento se muestra como "n/a" en la lista de operaciones y como 0,00 en el resumen.
En un gráfico real o demo, el EA nunca envía, modifica ni cierra una orden.
Limitaciones (léalas antes de comprar)
- Un solo espacio de gráfico: es un Asesor Experto, así que ocupa el espacio de EA del gráfico al que se adjunta. Adjúntelo a un gráfico libre, no al gráfico de un EA que opera.
- El historial de ticks es el del bróker: el spread, el deslizamiento de las órdenes de mercado y el MFE/MAE necesitan el historial de ticks del bróker para el momento de la operación. Los brókeres lo conservan durante un tiempo limitado y, para algunos símbolos, no lo conservan en absoluto (un CFD sobre acciones de las pruebas no tenía ninguno). En ese caso se usan barras M1 y la operación se marca con "M1", o con "n/a" cuando no hay datos. La primera medición descarga el historial de ticks desde el servidor del bróker.
- El deslizamiento de las órdenes de mercado se mide frente a la cotización del momento en que se colocó la orden. Incluye cualquier movimiento del precio durante la ejecución, que es lo que usted paga.
- Cierre por posición opuesta (Close By): MetaTrader contabiliza todo el beneficio de un cierre por posición opuesta en una de las dos posiciones. El registro contable lo muestra tal como lo contabilizó el bróker; los totales son correctos, y el reparto entre las dos posiciones es el de MetaTrader.
- Cuentas de compensación: una posición puede ser modificada por varios EA. La operación pertenece al número mágico que la abrió; las transacciones de otros números mágicos en ella se marcan con "Mix".
- El dinero se muestra en la divisa de la cuenta tal como lo informa el bróker. Una cuenta cent muestra centavos.
- El swap se muestra en su propia columna y no se cuenta en el costo total por lote, que cubre spread, deslizamiento, comisión y tarifas.
- El día de la semana y la hora son los de la entrada, en hora del servidor.
- Entorno probado:
- En vivo en cuatro cuentas demo: MetaQuotes-Demo USD de cobertura (1.249 transacciones), EUR de cobertura (900 transacciones), USD de compensación (262 transacciones) y una cuenta demo en un segundo bróker, USD de cobertura (337 transacciones, incluidos plata de 5.000 oz, contratos de índices de 10 unidades y de 100 unidades y CFD sobre acciones). En las cuatro, los totales coincidieron con el balance al centavo, y cada operación coincidió con una reconstrucción independiente del historial escrita para la prueba.
- Las cuentas cent y el oro de 1 oz están cubiertos por pruebas unitarias con transacciones sintéticas, no por cuentas en vivo. Ninguno de los dos brókeres los ofrecía en demo.
- La velocidad se probó con historiales sintéticos de 50.000 y 200.000 transacciones.
- Pruébelo primero en una cuenta demo, con la demo gratuita en el Probador de estrategias.
