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 el contenido real de los datos.
No realiza operaciones. No introduce órdenes, no lee posiciones y no requiere permisos de cuenta. Lee el historial y genera un archivo de texto.
QUÉ INCLUYE LA EXPORTACIÓN
1. Una ficha del instrumento, incluida 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 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 altera el valor monetario de un punto. La terminal no avisa de nada cuando esto 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. Leer una en lugar de la otra lleva a construir características sobre 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 generar 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 las entradas, 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 de compás en su encabezado, y el script los verifica. Un escalador que no coincida se rechaza en lugar de utilizarse en silencio.
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. Se acepta MarketBookAdd y no devuelve ningún valor.
- Ningún tick llevaba 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. Un volumen con signo calculado a partir de la regla de los ticks es una inferencia, no una medición.
- 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 tiene almacenado en caché, y el límite trunca los datos sin generar un error.
SCRIPT COMPLEMENTARIO, PUBLICADO POR SEPARADO
Se ha publicado un segundo script, ForgeParity, como código abierto junto con este. La dirección se encuentra en el perfil del autor. Lee de nuevo las entradas exportadas y las vuelve a escribir tras aplicar un escalador que tú mismo proporcionas, de modo que una desviación en la normalización entre dos cadenas no pueda pasar desapercibida.
No forma parte de este producto, y es a propósito: necesita un archivo de escalador que genera tu propio código de entrenamiento, y sin él se niega a ejecutarse. Una herramienta que no hace nada al abrirla por primera vez no tiene cabida en la lista de productos. Se publica el código fuente completo de ambos scripts a modo de referencia.
No realiza operaciones. No introduce órdenes, no lee posiciones y no requiere permisos de cuenta. Lee el historial y genera un archivo de texto.
QUÉ INCLUYE LA EXPORTACIÓN
1. Una ficha del instrumento, incluida 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 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 altera el valor monetario de un punto. La terminal no avisa de nada cuando esto 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. Leer una en lugar de la otra lleva a construir características sobre 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 generar 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 las entradas, 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 de compás en su encabezado, y el script los verifica. Un escalador que no coincida se rechaza en lugar de utilizarse en silencio.
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. Se acepta MarketBookAdd y no devuelve ningún valor.
- Ningún tick llevaba 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. Un volumen con signo calculado a partir de la regla de los ticks es una inferencia, no una medición.
- 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 tiene almacenado en caché, y el límite trunca los datos sin generar un error.
SCRIPT COMPLEMENTARIO, PUBLICADO POR SEPARADO
Se ha publicado un segundo script, ForgeParity, como código abierto junto con este. La dirección se encuentra en el perfil del autor. Lee de nuevo las entradas exportadas y las vuelve a escribir tras aplicar un escalador que tú mismo proporcionas, de modo que una desviación en la normalización entre dos cadenas no pueda pasar desapercibida.
No forma parte de este producto, y es a propósito: necesita un archivo de escalador que genera tu propio código de entrenamiento, y sin él se niega a ejecutarse. Una herramienta que no hace nada al abrirla por primera vez no tiene cabida en la lista de productos. Se publica el código fuente completo de ambos scripts a modo de referencia.
