Discusión sobre el artículo "Trabajando con los precios en la biblioteca DoEasy (Parte 63): Profundidad del mercado, clase de orden abstracta de la Profundidad del mercado"

 

Artículo publicado Trabajando con los precios en la biblioteca DoEasy (Parte 63): Profundidad del mercado, clase de orden abstracta de la Profundidad del mercado:

En el presente artículo, empezaremos a desarrollar la funcionalidad para trabajar con la Profundidad del mercado. Crearemos la clase del objeto de una orden abstracta de la Profundidad del mercado y sus clases herederas.

A partir de este artículo, empezaremos a desarrollar la funcionalidad para trabajar con la Profundidad del mercado (en inglés Depth of Market, o DOM). Las clases para trabajar con el DOM no van a diferenciarse conceptualmente de todas las demás clases de la biblioteca desarrolladas anteriormente. Al mismo tiempo, vamos a tener una plantilla del DOM que va a contener datos sobre las ordenes en el DOM que se obtienen por la función MarketBookGet() cuando se active el manejador OnBookEvent(). Ahí, cuando el DOM se cambie, se activa un evento para cada símbolo que tenga activada la suscripción a los eventos del DOM.

De esta forma, la estructura del DOM va a ser la siguiente:

  1. La clase del objeto de orden del DOM es un objeto que describe los datos de una orden entre varias ordenes que se obtienen del DOM, durante la activación unitaria del manejador OnBookEvent() para un símbolo;
  2. La clase del objeto de plantilla del DOM es un objeto que describe los datos de todas las órdenes que se obtienen del DOM al mismo tiempo, durante una activación del manejador OnBookEvent() para un símbolo. Se trata de un conjunto de objetos del punto 1 que forman parte de la plantilla actual del DOM;
  3. La clase de serie temporal compuesta de una secuencia de objetos del punto 2 que se introducen en la lista de serie temporal durante cada activación de OnBookEvent() para un símbolo;
  4. La clase de colección de las series de datos de los DOMs de todos los símbolos utilizados en el programa que tienen activada la suscripción a los eventos del DOM.

En este artículo, vamos a crear la clase del objeto de orden (1) y hacer la prueba de la obtención de datos del DOM cuando OnBookEvent() se active en el símbolo actual.

Autor: Artyom Trishkin

 

No juzgues con dureza. Epigrama.


Todos hemos escrito un poco,

Sobre algo y algo.

Él es el único que ha seguido el camino,

Con un guiño astuto.


Hay mucho código en ese camino,

Y las líneas son demasiados para contar.

♪ Y si no fuera por la Madre Naturaleza ♪

¡Nunca las superaría!


Mi pluma lo estaba pidiendo

♪ Para decir algo más ♪

Pero está solo en el camino

Del que todos no podemos volver atrás.

Febrero, 2021

 
???
 

Hola Artyom,

En primer lugar enhorabuena por el artículo, simplemente fantástico!!! Una pregunta, por lo que he podido ver no tocas la posición de una orden concreta (orden limitada) a un nivel de precio concreto...Por ejemplo, si mi orden está delante de la cola (primera) a ese nivel, a la mitad o realmente detrás de todas las órdenes.... Estoy tratando de automatizar una estrategia para un instrumento muy líquido y de muy bajo costo de negociación en el que podría entrar en una posición y, potencialmente, salir al mismo precio, para que yo tendría que tener acceso a la posición o mi orden en la cola de un nivel de precios específicos ... No parece encontrar este discutido en cualquier lugar.

¿Sabe usted cómo podría recuperar esa información, siempre y cuando la bolsa admita esa información?

Saludos cordiales

André Oliveira

 
André Dias de Oliveira:

Hola Artyom,

En primer lugar enhorabuena por el artículo, simplemente fantástico!!! Una pregunta, por lo que he podido ver no tocas la posición de una orden concreta (orden limitada) a un nivel de precio concreto...Por ejemplo, si mi orden está delante de la cola (primera) a ese nivel, a la mitad o realmente detrás de todas las órdenes.... Estoy tratando de automatizar una estrategia para un instrumento muy líquido y de muy bajo costo de negociación en el que podría entrar en una posición y, potencialmente, salir al mismo precio, para que yo tendría que tener acceso a la posición o mi orden en la cola de un nivel de precios específicos ... No parece encontrar este discutido en cualquier lugar.

¿Sabe usted cómo podría recuperar esa información, siempre que la bolsa admita esa información?

Saludos cordiales

André Oliveira

Gracias.

No entendí un poco la pregunta - probablemente la barrera del idioma ...

Aquí, la biblioteca lee todos los datos disponibles que puede leer de la profundidad de mercado utilizando las capacidades proporcionadas por MQL.

Trate de explicar su pregunta con ejemplos, por favor.

 
Artyom Trishkin:

Gracias, señor.

No entendí la pregunta un poco - probablemente la barrera del idioma ...

Aquí, la biblioteca lee todos los datos disponibles que puede leer desde la profundidad de mercado utilizando las capacidades proporcionadas por MQL.

Trate de explicar su pregunta con ejemplos, por favor.

Gracias por la respuesta Artyom, claro, voy a tratar de explicar mejor.... Para simplificar y hacerlo más fácil de entender, imaginemos un hipotético y muy simple "Libro de órdenes" con una sola profundidad de nivel de precios, es decir, órdenes limitadas en el lado de la oferta y órdenes limitadas en el lado de la demanda ... Para el ejemplo imaginemos un alto volumen de órdenes en ambos lados (digamos precio de oferta 1,34 y precio de demanda 1,35). Para este ejemplo imaginemos que este "Libro de Ordenes" tiene ordenes solo en estos dos precios...Nada mas.

Entonces coloco una sola orden en ambos lados (oferta y demanda) y mis órdenes se colocarán al final de la cola en cada lado (última orden de compra en el lado 1,34 y última orden de venta en el lado 1,35).

A medida que las órdenes delante de las mías se consuman o cancelen, mis órdenes avanzarán en la cola, y es POSIBLE que se coloquen órdenes limitadas adicionales detrás de mis órdenes al mismo nivel de precio..... Quería saber si hay alguna forma de recuperar la posición de mis órdenes en la cola, en cualquier momento dado. Ver imagen que he adjuntado.

Realmente aprecio su atención y esfuerzo para entender mi pregunta Artyom, hágamelo saber si esto es claro, puedo tratar de pensar en ejemplos adicionales si esto no es una buena.

Saludos y una vez más, realmente aprecio sus comentarios sobre este.


André Oliveira


André Oliveira

Archivos adjuntos:
 
André Dias de Oliveira :

Gracias por la respuesta Artyom, claro, déjame intentar explicarme mejor.... Para simplificar y hacerlo más fácil de entender, vamos a imaginar un hipotético y muy simple "Libro de órdenes" con una sola profundidad de nivel de precios, es decir, órdenes limitadas en el lado de la oferta y órdenes limitadas en el lado de la demanda ... Para el ejemplo imaginemos un alto volumen de órdenes en ambos lados (digamos precio de oferta 1,34 y precio de demanda 1,35). Para este ejemplo imaginemos que este "Libro de Ordenes" tiene ordenes solo en estos dos precios...Nada mas.

Entonces coloco una sola orden en ambos lados (oferta y demanda) y mis órdenes se colocarán al final de la cola en cada lado (última orden de compra en el lado 1,34 y última orden de venta en el lado 1,35).

A medida que las órdenes delante de las mías se consuman o cancelen, mis órdenes avanzarán en la cola, y es POSIBLE que se coloquen órdenes limitadas adicionales detrás de mis órdenes al mismo nivel de precio..... Quería saber si hay alguna forma de recuperar la posición de mis órdenes en la cola, en cualquier momento dado. Ver imagen adjunta.

Realmente aprecio su atención y esfuerzo para entender mi pregunta Artyom, hágamelo saber si esto es claro, puedo tratar de pensar en ejemplos adicionales si esto no es una buena.

Saludos y una vez más, realmente aprecio sus comentarios sobre este.


André Oliveira


André Oliveira

Me temo que no podemos ver la cola de pedidos en la Profundidad de Mercado. Corrígeme si me equivoco.

 
Artyom Trishkin:

Me temo que no podemos ver la cola de órdenes en la Profundidad de Mercado. Corrígeme si me equivoco.

Una vez más gracias por mirar a la pregunta Artyom.... Mira, yo soy muy nuevo en la programación mql5, pero al menos en nuestra Bolsa de Brasil aparentemente esto es posible, ya que esto se ha implementado en el "Libro de órdenes" y "Lista de Órdenes" de una plataforma de negociación llamada Profit y por otro llamado Tryd.. Ambas plataformas de negociación están orientadas a los operadores manuales y no hacen hincapié en el comercio automatizado.

Ver captura de pantalla adjunta, exponen "mi orden" en amarillo y también muestran todas las demás órdenes delante y detrás... de hecho exponen todos los brokers y tamaños de órdenes... es un proceso muy transparente.

Esto probablemente no es muy habitual en otras bolsas (estoy suponiendo, ya que no tengo mucha experiencia en otras bolsas) y por esta razón tal vez esto no está explorado en el lenguaje mql5.... Voy a tratar de averiguar cómo se exporta a estas plataformas de negociación (debe haber algún tipo de API), sólo pensé que tal vez esto ya se exploró en mql5 también.

Artyom, muchas gracias por los comentarios que has hecho, muy apreciados. Enhorabuena por tus articulos, tienen un contenido y una informacion de gran calidad.

Saludos cordiales

André Oliveira

Archivos adjuntos:
 
André Dias de Oliveira :

Una vez más gracias por mirar la pregunta Artyom.... Mira, yo soy muy nuevo en la programación mql5, pero al menos en nuestra Bolsa de Brasil aparentemente esto es posible, ya que esto se ha implementado en el "Libro de órdenes" y "Lista de Órdenes" de una plataforma de negociación llamada Profit y por otro llamado Tryd.. Ambas plataformas de negociación están orientadas a los operadores manuales y no hacen hincapié en la negociación automatizada.

Ver captura de pantalla adjunta, exponen "mi orden" en amarillo y también muestran todas las demás órdenes delante y detrás... de hecho exponen todos los brokers y tamaños de órdenes... es un proceso muy transparente.

Esto probablemente no es muy habitual en otras bolsas (estoy suponiendo, ya que no tengo mucha experiencia en otras bolsas) y por esta razón tal vez esto no está explorado en el lenguaje mql5.... Intentaré averiguar cómo se exporta esto a estas plataformas de negociación (debe haber algún tipo de API), sólo pensé que TAL VEZ esto ya estaba explorado en mql5 también.

Artyom, muchas gracias por los comentarios que has hecho, muy apreciados. Enhorabuena por tus articulos, tienen un contenido y una informacion de gran calidad.

Saludos cordiales

André Oliveira

Intentaré estudiar esta cuestión con más detalle. Pero en cuanto tenga tiempo. Por desgracia, no tengo mucho tiempo.