Discusión sobre el artículo "Recetas MQL5 - Escribiendo nuestra propia profundidad de mercado"

 

Artículo publicado Recetas MQL5 - Escribiendo nuestra propia profundidad de mercado:

Este artículo enseñará a los lectores a trabajar de forma programática con la profundidad de mercado, también describirá el principio de funcionamiento de la clase CMarketBook, que ampliará de forma orgánica la biblioteca estándar de clases MQL5 y proporcionará métodos cómodos para trabajar con la profundidad del mercado.

El lenguaje MQL5 está en permanente desarrollo, y con cada año proporciona cada vez más posibilidades para trabajar con la información bursátil. Uno de esos tipos de datos bursátiles es la información sobre la profundidad de mercado en la bolsa. Se trata de un recuadro especial que muestra los niveles de precio y los volúmenes de las órdenes límite. MetaTrader 5 tiene incorporada su propia profundidad de mercado para representar las órdenes límite. En primer lugar, es necesario proporcionar a su asesor experto un acceso sencillo y cómodo a la profundidad de mercado. Por supuesto, en el lenguaje MQL5 existen varias funciones especiales para trabajar con este tipo de información, pero todas estas funciones tiene un nivel bastante bajo y necesitan de cálculos matemáticos adicionales.

No obstante, los cálculos intermedios son algo que se puede evitar. Todo lo necesario es escribir solo una vez una clase especial para trabajar con la profundidad de mercado. Todos esos cálculos complicados se realizarán dentro de ella, y la propia clase proporcionará métodos cómodos para trabajar con los precios y los niveles de la profundidad. Gracias a esta clase, será suficiente con crear simplemente un panel efectivo en forma de indicador, que representará de forma rápida el estado actual de los precios en la profundidad de mercado.


Fig. 1. Profundidad de mercado bursátil en forma de panel

La primera parte del artículo mostrará de forma clara que la profundidad de mercado reglamentaria, proporcionada por MetaTrader 5, está dotada de capacidades impresionantes. No vamos a intentar duplicar todas estas numerosas capacidades en nuestro indicador, nuestra misión es otra. Vamos a mostrar de forma práctica, tomando como ejemplo la creación de un cómodo panel comercial, que los principios de la programación orientada a objetos permiten operar con bastante facilidad con estructuras de datos complejas. Comprobaremos que con ayuda de MQL5 no supondrá problemas obtener acceso a la profundidad de mercado directamente desde su propio experto y que, como resultado, podrá visualizar su representación de la forma que le sea más cómoda.

Autor: Vasiliy Sokolov

 
¿Lo leyó detenidamente, pero no entendió de qué se trataba?
 
Михаил:
He estado leyendo durante mucho tiempo, pero no entendía por qué?

Imho, por lo menos para tener una clase lista (como Standard Library) para analizar la liquidez actual de un instrumento.

¡Vasily está bien hecho! Alto nivel de código y enfoque sistemático. ¡Así se hace!

 
Михаил:
Lectura larga, pero no entendí por qué todo esto...
Dennis Kirichenko:

Imho, al menos para tener una clase listo (como Biblioteca Estándar) para analizar la liquidez actual de un instrumento.

¡Bien hecho Vasily! Alto nivel de código y enfoque sistemático. ¡Así se hace!

Exactamente asi. La tarea de mis "Recetas MQL" es extender la Biblioteca Estándar MQL con nuevas clases no triviales, haciendo el trabajo del trader más conveniente.

En cuanto a la pila de precios, es fundamental proporcionar el mecanismo más eficiente de acceso a los datos de Nivel II. Este es el caso cuando trabajar a través de una clase intermediaria puede ser mucho más rápido (y por supuesto más conveniente) que una búsqueda completa de la pila en cada OnBookEvent. Los algoritmos incrustados en la clase price glass están escritos por una razón.

 
Vasiliy Sokolov:

Exactamente. La tarea de mis "Recetas MQL" es ampliar la biblioteca MQL estándar con nuevas clases no triviales, haciendo más cómodo el trabajo del trader.

En cuanto al libro de precios, es fundamental proporcionar el mecanismo más eficiente de acceso a los datos de Nivel II. Este es el caso cuando trabajar a través de una clase intermediaria puede ser mucho más rápido (y por supuesto más conveniente) que una búsqueda completa de la pila en cada OnBookEvent. Los algoritmos incrustados en la clase price glass están escritos por una razón.

 
información útil para operar en el cristal! es bueno que haya gente afín en este asunto )
 
Михаил:

Mikhail, todavía estamos esperando a aprender de usted en el hilo vecino lo que es la dirección de la última operación.

Creo que también prometió escribir su artículo sobre cómo utilizar el modelo de eventos en MetaTrader5. Me gustaría leerlo por fin.

 
Vasiliy Sokolov:

Mikhail, todavía estamos esperando a aprender de usted en el hilo vecino lo que es la dirección de la última operación.

Creo que también prometió escribir su artículo sobre cómo utilizar el modelo de eventos en MetaTrader5. Me gustaría leerlo por fin.

El artículo no ha sido publicado (es de tamaño pequeño, a diferencia del tuyo), pero puedes leerlo en mi Blog.

P/S En el hilo vecino y leer acerca de la dirección...

Por cierto, una observación sobre el artículo.

No se puede hacer como lo has escrito:

//+------------------------------------------------------------------+
//| Función BookEvent|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
   printf("El cristal de precio por " + symbol +  " cambiado"); 
  }

Porque el evento BookEvent se emite.

Y en cuanto te suscribas para recibirlo, recibirás todo en OnBookEvent(),

que tengas abierto en el Market Watch.

Por eso necesitas filtrar el evento para el símbolo seleccionado:

//+------------------------------------------------------------------+
//| Función BookEvent|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
    if ( symbol == _Symbol )
    { 
      printf("El cristal de precio por " + symbol +  " cambiado");
    } 
  }
 
Михаил:

El artículo no se publicó (de pequeño tamaño, a diferencia del tuyo), pero puedes leerlo en mi Blog.

P/S En el hilo vecino y leer sobre la dirección....

Por cierto, una observación sobre el artículo.

No se puede hacer como has escrito:

Porque el evento BookEvent se emite.

Y en cuanto te suscribas para recibirlo, recibirás todo en OnBookEvent(),

que tengas abierto en el Market Watch.

Por eso necesitas filtrar el evento sólo para el símbolo seleccionado:

Miguel, de la documentación:

MarketBookAdd

Proporciona la apertura del libro de precios para el instrumento especificado, y también se suscribe para recibir notificaciones sobre cambios en el libro especificado.

bool MarketBookAdd(
cadenasímbolo// símbolo
);

Es decir, los desarrolladores han introducido MarketBookAdd con el propósito de que OnBookEvent sea llamado sólo cuando cambie la pila de símbolos predefinidos en MarketBookAdd. Así, nada más que los símbolos predefinidos llegarán a OnBookEvent.

 

Leer OnBookEvent()

В отличие от других событий, событие BookEvent является широковещательным.
Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd,
все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие.
Поэтому необходимо анализировать имя символа, которое передается в обработчик в качестве параметра const string& symbol.
 

Hola,

Muchas gracias por la contribución.

Es exactamente lo que estaba buscando.

Profundidad de Mercado puede ser una gran indicación para scalpers.

Pero el problema es que nunca veo la información de volumen de profundidad de mercado en mis terminales.

¿Cómo acceder a la información de volumen que proporciona el broker?