DataForge Instrument Passport and Bar Exporter
- Utilidades
-
Sayed Javad Razavi Ebrahimi
🔧 Ingeniero de software y analista de datos — EAs e indicadores MQL5 de calidad profesional. - Versión: 2.0
DataForge exporta las barras de MetaTrader 5 a un archivo CSV y escribe en dicho archivo
lo que realmente contienen los datos.
No realiza operaciones. No introduce órdenes, no lee posiciones y no requiere
permisos de cuenta. Lee el historial y escribe un archivo de texto.
QUÉ ESCRIBE LA EXPORTACIÓN
1. Un «pasaporte» del instrumento, situado en el encabezado del CSV
Los dígitos, el punto, el tamaño del contrato, el valor del tick, el tamaño del tick y el lote mínimo, el paso y
el lote máximo se escriben como líneas de comentario en la parte superior del archivo. Exporta el
mismo símbolo desde dos servidores y compara los dos encabezados línea por línea.
Esto es importante porque esos campos no siempre son idénticos en todos los servidores. Un
símbolo puede tener el mismo tamaño de contrato y el mismo tamaño de tick en dos servidores
pero mostrar un valor de tick diferente, lo que cambia el valor monetario de un punto
. La terminal no te avisa de nada cuando eso ocurre.
2. Una tabla de volumen anual, extraída de las barras
Para cada año presente en el historial, el script muestra el número de barras,
cuántas tienen un volumen de tick distinto de cero y cuántas tienen un volumen real
distinto de cero. Esta tabla se lee con CopyRates, no desde el Strategy Tester.
Son dos cosas diferentes. La barra de «calidad del historial» del probador describe el
flujo de ticks que genera. No dice nada sobre el volumen real almacenado en las
propias barras. Interpretar una como la otra lleva a crear características en un
campo que está vacío, o a descartar un campo que sí está presente.
3. Columnas de características tal y como las calcula MQL5
La exportación también puede escribir un pequeño conjunto de entradas calculadas. No están ahí
para el entrenamiento: son una referencia, para que un pipeline escrito en otro
lenguaje pueda volver a calcular las mismas entradas y compararlas valor por valor.
QUÉ HACE EL SCRIPT DE PARIDAD
El segundo script lee esas entradas sin procesar del archivo de exportación y las vuelve a escribir
tras aplicar un escalador que tú proporcionas. Deliberadamente no
las vuelve a calcular.
La razón es sencilla. Si una comprobación vuelve a calcular los datos de entrada, acaba comprobando el
cálculo por segunda vez en lugar de comprobar la normalización, y cualquier
diferencia de profundidad o de momento entre las dos ejecuciones se muestra como un error con
un nombre incorrecto. Leer las mismas líneas elimina esa ambigüedad.
El archivo del escalador lleva sus propios identificadores de etapa y fotograma en su encabezado, y
el script los verifica. Un escalador que no coincida es rechazado en lugar de
utilizarse sin avisar.
TAMBIÉN SE INFORMA
- El primer y último compás leídos realmente, publicados en lugar de supuestos.
- El número de barras de calentamiento, que por diseño aparecen como «nan».
- El recuento de columnas, tomado del escalador en lugar de una constante.
- Marcas de tiempo en orden ISO, para que un analizador sintáctico no pueda confundir el día y el mes.
NOTAS Y LIMITACIONES
- Diseñado y probado en el periodo M15. No se han probado otros periodos.
- La profundidad del libro de órdenes estaba vacía en todos los brókers de CFD probados. MarketBookAdd se acepta
y no devuelve nada.
- Ningún tick presentaba un indicador de compra o venta en ninguno de los brókers probados, por lo que no se puede medir el delta del flujo de órdenes
a partir de estos datos. El volumen con signo calculado a partir de la regla de ticks
es una inferencia, no una medición.
- El script de paridad necesita un escalador generado por tu propio código de entrenamiento. No se incluye ningún modelo
.
- Antes de exportar, configura «Número máximo de barras en el gráfico» como ilimitado en las opciones de la terminal
y desplaza el gráfico hacia atrás para que se cargue el historial. Un script lee lo que
la terminal ha almacenado en caché, y el límite se trunca sin generar un error.
El código fuente se publica a modo de referencia.
lo que realmente contienen los datos.
No realiza operaciones. No introduce órdenes, no lee posiciones y no requiere
permisos de cuenta. Lee el historial y escribe un archivo de texto.
QUÉ ESCRIBE LA EXPORTACIÓN
1. Un «pasaporte» del instrumento, situado en el encabezado del CSV
Los dígitos, el punto, el tamaño del contrato, el valor del tick, el tamaño del tick y el lote mínimo, el paso y
el lote máximo se escriben como líneas de comentario en la parte superior del archivo. Exporta el
mismo símbolo desde dos servidores y compara los dos encabezados línea por línea.
Esto es importante porque esos campos no siempre son idénticos en todos los servidores. Un
símbolo puede tener el mismo tamaño de contrato y el mismo tamaño de tick en dos servidores
pero mostrar un valor de tick diferente, lo que cambia el valor monetario de un punto
. La terminal no te avisa de nada cuando eso ocurre.
2. Una tabla de volumen anual, extraída de las barras
Para cada año presente en el historial, el script muestra el número de barras,
cuántas tienen un volumen de tick distinto de cero y cuántas tienen un volumen real
distinto de cero. Esta tabla se lee con CopyRates, no desde el Strategy Tester.
Son dos cosas diferentes. La barra de «calidad del historial» del probador describe el
flujo de ticks que genera. No dice nada sobre el volumen real almacenado en las
propias barras. Interpretar una como la otra lleva a crear características en un
campo que está vacío, o a descartar un campo que sí está presente.
3. Columnas de características tal y como las calcula MQL5
La exportación también puede escribir un pequeño conjunto de entradas calculadas. No están ahí
para el entrenamiento: son una referencia, para que un pipeline escrito en otro
lenguaje pueda volver a calcular las mismas entradas y compararlas valor por valor.
QUÉ HACE EL SCRIPT DE PARIDAD
El segundo script lee esas entradas sin procesar del archivo de exportación y las vuelve a escribir
tras aplicar un escalador que tú proporcionas. Deliberadamente no
las vuelve a calcular.
La razón es sencilla. Si una comprobación vuelve a calcular los datos de entrada, acaba comprobando el
cálculo por segunda vez en lugar de comprobar la normalización, y cualquier
diferencia de profundidad o de momento entre las dos ejecuciones se muestra como un error con
un nombre incorrecto. Leer las mismas líneas elimina esa ambigüedad.
El archivo del escalador lleva sus propios identificadores de etapa y fotograma en su encabezado, y
el script los verifica. Un escalador que no coincida es rechazado en lugar de
utilizarse sin avisar.
TAMBIÉN SE INFORMA
- El primer y último compás leídos realmente, publicados en lugar de supuestos.
- El número de barras de calentamiento, que por diseño aparecen como «nan».
- El recuento de columnas, tomado del escalador en lugar de una constante.
- Marcas de tiempo en orden ISO, para que un analizador sintáctico no pueda confundir el día y el mes.
NOTAS Y LIMITACIONES
- Diseñado y probado en el periodo M15. No se han probado otros periodos.
- La profundidad del libro de órdenes estaba vacía en todos los brókers de CFD probados. MarketBookAdd se acepta
y no devuelve nada.
- Ningún tick presentaba un indicador de compra o venta en ninguno de los brókers probados, por lo que no se puede medir el delta del flujo de órdenes
a partir de estos datos. El volumen con signo calculado a partir de la regla de ticks
es una inferencia, no una medición.
- El script de paridad necesita un escalador generado por tu propio código de entrenamiento. No se incluye ningún modelo
.
- Antes de exportar, configura «Número máximo de barras en el gráfico» como ilimitado en las opciones de la terminal
y desplaza el gráfico hacia atrás para que se cargue el historial. Un script lee lo que
la terminal ha almacenado en caché, y el límite se trunca sin generar un error.
El código fuente se publica a modo de referencia.
