OrderBook History Library
- Bibliotecas
- Stanislav Korotky
- Versión: 1.7
- Actualizado: 9 abril 2025
- Activaciones: 5
Libro de órdenes, también conocido como Libro de Mercado, profundidad de mercado, Nivel 2, - es una tabla actualizada dinámicamente con los volúmenes actuales de órdenes de compra y venta de un instrumento financiero específico a niveles de precios cercanos al Bid y Ask.
MetaTrader 5 proporciona los medios para recibir el libro de mercado de su corredor, pero sólo en tiempo real, sin acceso a su historia. La biblioteca OrderBook History Library lee el estado del libro de mercado en el pasado a partir de ficheros de archivo, creados por OrderBook Recorder. La biblioteca se puede incrustar en sus indicadores y asesores expertos (se requieren códigos fuente), y luego pueden ser probados con los datos del libro de mercado en el probador.
En particular, la biblioteca se utiliza en el indicador OrderBook Cumulative Indicator y en el asesor experto de demostración OrderBook History Playback.
He aquí un ejemplo del archivo de cabecera para incluir la biblioteca en su programa MQL:
input string OrderBook_FileFolder = "Books"; input bool OrderBook_UseCommonFiles = false; input int OrderBook_TimeZoneCorrection = 0; typedef void (*pOnBookEvent)(const string &symbol); #import "OrderBook History Library.ex5" void OrderBook_Init(pOnBookEvent ptr, const string folder, const bool common, const int offset); bool OrderBook_MarketBookAdd(string symbol); bool OrderBook_MarketBookRelease(string symbol); bool OrderBook_MarketBookGet(string symbol, MqlBookInfo &bookArray[]); long OrderBook_MarketBookPeek(string symbol, MqlBookInfo &bookArray[]); void OrderBook_OnTick(); void OrderBook_OnTimer(); bool OrderBook_CheckForEvents(datetime current); #import #ifdef ORDERBOOK_SUBSTITUTE #define MarketBookAdd OrderBook_MarketBookAdd #define MarketBookRelease OrderBook_MarketBookRelease #define MarketBookGet OrderBook_MarketBookGet #endif
Los parámetros de entrada se definen por conveniencia - deben ser pasados a la función OrderBook_Init.
- OrderBook_FileFolder - nombre de la carpeta raíz, donde se guardan las subcarpetas y archivos de los libros de mercado; por defecto - "Books"; cada subcarpeta se nombra según el símbolo de trabajo específico; por ejemplo, el ticker GAZP formará los archivos MQL5/Files/Books/GAZP/*.hob;
- OrderBook_UseCommonFiles - una opción para leer archivos de la carpeta de datos del terminal actual (false, por defecto) o de la carpeta de datos común para todos los terminales (true);
- OrderBook_TimeZoneCorrection - corrección de fecha y hora, que se requiere en caso de que los archivos se lean en un terminal con una zona horaria diferente de la zona horaria del terminal donde se crearon los archivos; se especifica en segundos; por ejemplo, si el libro de mercado se guardó con la hora del servidor en GMT+3, y luego se aplica a las cotizaciones de un servidor, donde la hora está en GMT+2, la corrección debe ser de 1 hora (-3600 segundos), porque las horas en GMT+2 se retrasan 1 hora en comparación con (es decir, son 1 hora más pequeñas que la hora en GMT+2).es decir, son 1 hora más pequeñas que) GMT+3; 15:00 en GMT+3 son 14:00 en GMT+2;
Funciones
- OrderBook_Init - inicialización de la librería, debe ser llamada desde OnInit; el primer parámetro debe ser el manejador de eventos OnBookEvent;
- OrderBook_MarketBookAdd, OrderBook_MarketBookRelease, OrderBook_MarketBookGet - funciones análogas a las funciones MQL estándar correspondientes; mientras se trabaja en línea, las funciones estándar se llaman internamente - de esta manera, emdedding la biblioteca no alterará la lógica del código fuente; mientras se trabaja en el probador, la biblioteca recupera los datos de los archivos; la suscripción para el libro de mercado sólo para el símbolo del gráfico actual está permitida;
- OrderBook_MarketBookPeek - similar a OrderBook_MarketBookGet, pero siempre leyendo datos de archivos - tanto en el tester como online; MarketBookGet nunca se llama;
- OrderBook_OnTick - ejecución opcional de la librería para el último tick desde OnTick; sólo para el tester, online no hace nada;
- OrderBook_OnTimer - ejecución opcional de la librería para la última hora conocida desde OnTimer; sólo para el tester, online no hace nada;
- OrderBook_CheckForEvents - ejecución opcional de la biblioteca desde el comprobador y en línea, ad hoc - para la fecha y hora especificadas;
Si se añade la línea #define ORDERBOOK_SUBSTITUTE en el código fuente antes de incluir el archivo de cabecera, se sustituirán implícitamente todas las llamadas de la función estándar del libro de mercado por las funciones correspondientes de la biblioteca.
Debido a un error bien conocido de MQL5 Market, todas las librerías se descargan en la carpeta MQL5/Scripts/Market, no en MQL5/Libraries, donde deberían estar. Por favor, copie manualmente el archivo ex5 de la librería en la carpeta MQL5/Libraries para que la importación funcione correctamente.

Я уже было хотел делать что-то подобное сам, но подсказали что есть библиотека в магазине для тестирования/отладки стаканных экспертов. Все установил, все работает. Спасибо, разработчику, ты сэкономил мне, возможно, месяцы работы.