Discussão do artigo "Trabalhando preços na biblioteca DoEasy (Parte 63): livro de ofertas, classe de ordem abstrata do livro de ofertas"

 

Novo artigo Trabalhando preços na biblioteca DoEasy (Parte 63): livro de ofertas, classe de ordem abstrata do livro de ofertas foi publicado:

Neste artigo, começaremos a desenvolver funcionalidades para trabalhar com o livro de ofertas. Criaremos uma classe de objeto para uma ordem abstrata do livro de ofertas e dos seus herdeiros.

Com este artigo, começaremos a criar funcionalidades para trabalhar com o livro de ofertas. Conceitualmente, as classes para trabalhar com o livro de ofertas não serão diferentes de todas as classes da biblioteca previamente escritas. Paralelamente, teremos um “instantâneo” do livro de ofertas que conterá os dados das ordens do livro de ofertas obtidas pela função MarketBookGet() quando o manipulador OnBookEvent() é acionado, além disso, cada um dos seus símbolos, cuja assinatura de eventos é habilitada, desencadeia um evento quando o livro de ofertas muda.

Assim, a estrutura das classes do livro de ofertas será a seguinte:

  1. Classe do objeto-ordem do livro de ofertas: objeto que descreve os dados de uma ordem a partir de um conjunto de ordens recebidas desde o livro de ofertas quando o manipulador OnBookEvent() é acionado uma vez para um símbolo;
  2. Classe do objeto-instantâneo do livro de ofertas: objeto que descreve os dados de todas as ordens recebidas simultaneamente desde o livro de ofertas quando o manipulador OnBookEvent() é acionado uma vez para um símbolo - conjunto de objetos n1 que constituem o instantâneo atual do livro de ofertas;
  3. Classe-série temporal que consiste numa sequência de n2 objetos inseridos numa lista-série temporal quando o manipulador OnBookEvent() é acionado uma vez para um símbolo;
  4. Classe-coleção de séries temporais de dados do livro de ofertas de todos os símbolos usados no programa, cuja assinatura de eventos do livro de ofertas é ativada.

Hoje vamos criar a classe do objeto-ordem (1) e testar o recebimento dos dados do livro de ofertas quando OnBookEvent() for acionado para o símbolo atual.

Autor: Artyom Trishkin

 

Não julgue com severidade. Epigrama.


Todos nós já escrevemos um pouco,

Sobre algo e alguma coisa.

Ele é o único que já foi para a estrada,

Com uma piscadela astuta.


Há muito código nessa estrada,

E as linhas são muitas para contar.

E se não fosse pela Mãe Natureza

Eu nunca as superaria!


Minha caneta estava pedindo por isso,

Para dizer algo mais

Mas ele está sozinho na estrada

Da qual todos nós não podemos voltar atrás.

Fevereiro, 2021

 
???
 

Olá Artyom,

Primeiramente parabéns pelo artigo, simplesmente fantástico!!! Uma pergunta, pelo que pude perceber você não aborda a posição de uma ordem específica (limit order) em um nível de preço específico... Por exemplo, se minha ordem está na frente da fila (primeira) naquele nível, na metade do caminho ou realmente atrás de todas as ordens.... Estou tentando automatizar uma estratégia para um instrumento muito líquido e com custo de negociação muito baixo, em que eu poderia entrar em uma posição e, potencialmente, sair pelo mesmo preço. Para isso, eu precisaria ter acesso à posição ou à minha ordem na fila de um nível de preço específico... Parece que não encontrei essa discussão em lugar algum.

Você sabe como eu poderia recuperar essas informações, desde que a bolsa ofereça suporte a essas informações?

Com os melhores cumprimentos

André Oliveira

 
André Dias de Oliveira:

Olá, Artyom,

Primeiramente parabéns pelo artigo, simplesmente fantástico!!! Uma pergunta, pelo que pude perceber você não aborda a posição de uma ordem específica (limit order) em um nível de preço específico... Por exemplo, se minha ordem está na frente da fila (primeira) naquele nível, na metade do caminho ou realmente atrás de todas as ordens.... Estou tentando automatizar uma estratégia para um instrumento muito líquido e com custo de negociação muito baixo, em que eu poderia entrar em uma posição e potencialmente sair pelo mesmo preço. Para isso, eu precisaria ter acesso à posição ou à minha ordem na fila de um nível de preço específico... Parece que não encontrei essa discussão em lugar algum.

Você sabe como eu poderia obter essas informações, desde que a bolsa ofereça suporte a essas informações?

Com os melhores cumprimentos

André Oliveira

Muito obrigado.

Não entendi um pouco a pergunta - provavelmente a barreira do idioma...

Aqui, a biblioteca lê todos os dados disponíveis que ela pode ler do Depth of Market usando os recursos fornecidos pela MQL.

Tente explicar sua pergunta com exemplos, por favor.

 
Artyom Trishkin:

Obrigado.

Eu não entendi um pouco a pergunta - provavelmente a barreira do idioma ...

Aqui, a biblioteca lê todos os dados disponíveis que pode ler do Depth of Market usando os recursos fornecidos pela MQL.

Tente explicar sua pergunta com exemplos, por favor.

Obrigado pela resposta, Artyom, claro, vou tentar explicar melhor.... Para simplificar e facilitar a compreensão, vamos imaginar um "Order Book" hipotético e muito simples com apenas um nível de profundidade de preço, ou seja, ordens de limite no lado da oferta e ordens de limite no lado da oferta... Para o exemplo, vamos imaginar um alto volume de ordens em ambos os lados (digamos, preço de compra 1,34 e preço de venda 1,35). Para este exemplo, vamos imaginar que esse "Order Book" tenha ordens somente nesses dois preços... Nada mais.

Então, eu coloco uma única ordem em ambos os lados (compra e venda) e minhas ordens serão colocadas no final da fila em cada lado (última ordem de compra no lado 1,34 e última ordem de venda no lado 1,35)

À medida que as ordens à frente das minhas forem consumidas ou canceladas, minhas ordens progredirão na fila, e outras ordens limitadas PODERÃO ser colocadas atrás das minhas ordens no mesmo nível de preço....Eu queria saber se existe uma maneira de recuperar a posição das minhas ordens na fila, a qualquer momento. Veja a imagem que anexei.

Agradeço imensamente sua atenção e seu esforço para entender minha pergunta, Artyom. Diga-me se ficou claro. Posso tentar pensar em outros exemplos, caso este não seja bom.

Atenciosamente e, mais uma vez, agradeço seus comentários sobre o assunto.


André Oliveira


André Oliveira

Arquivos anexados:
 
André Dias de Oliveira :

Obrigado pela resposta, Artyom, claro, vou tentar explicar melhor.... Para simplificar e facilitar a compreensão, vamos imaginar um "Order Book" hipotético e muito simples com apenas uma profundidade de nível de preço, ou seja, ordens de limite no lado da oferta e ordens de limite no lado da oferta... Para o exemplo, vamos imaginar um alto volume de ordens em ambos os lados (digamos, preço de compra 1,34 e preço de venda 1,35). Para esse exemplo, vamos imaginar que esse "Order Book" tenha ordens somente nesses dois preços... Nada mais.

Então, eu coloco uma única ordem em ambos os lados (compra e venda) e minhas ordens serão colocadas no final da fila em cada lado (última ordem de compra no lado 1,34 e última ordem de venda no lado 1,35)

À medida que as ordens à frente das minhas forem consumidas ou canceladas, minhas ordens progredirão na fila, e outras ordens limitadas PODERÃO ser colocadas atrás das minhas ordens no mesmo nível de preço....Eu queria saber se existe uma maneira de recuperar a posição das minhas ordens na fila, a qualquer momento. Veja a imagem que anexei.

Agradeço imensamente sua atenção e esforço para entender minha pergunta, Artyom. Diga-me se ficou claro. Posso tentar pensar em outros exemplos, caso este não seja bom.

Meus melhores cumprimentos e, mais uma vez, agradeço seus comentários sobre esta questão.


André Oliveira


André Oliveira

Receio que não possamos ver a fila de ordens no Depth of Market. Corrija-me se eu estiver errado.

 
Artyom Trishkin:

Receio que não seja possível ver a fila de ordens no Depth of Market. Corrija-me se eu estiver errado.

Mais uma vez, obrigado por examinar a pergunta, Artyom.... Veja, sou muito novo em programação mql5, mas, pelo menos em nossa bolsa brasileira, aparentemente isso é possível, pois foi implementado no "Order Book" e na "List of Orders" de uma plataforma de negociação chamada Profit e de outra chamada Tryd. Essas duas plataformas de negociação são voltadas para operadores manuais e não enfatizam a negociação automatizada.

Veja a captura de tela em anexo: elas expõem "minha ordem" em amarelo e também mostram todas as outras ordens na frente e atrás... na verdade, elas expõem todos os corretores e tamanhos de ordens... é um processo muito transparente.

Isso provavelmente não é muito comum em outras bolsas (estou supondo, pois não tenho muita experiência em outras bolsas) e, por esse motivo, talvez não seja explorado na linguagem mql5... Tentarei descobrir como isso é exportado para essas plataformas de negociação (deve haver algum tipo de API), apenas pensei que talvez isso já tenha sido explorado no mql5 também.

Artyom, muito obrigado pelos comentários que você fez, muito apreciados. Parabéns por seus artigos, eles têm conteúdo e informações de altíssima qualidade.

Abraço

André Oliveira

Arquivos anexados:
 
André Dias de Oliveira :

Mais uma vez, obrigado por examinar a pergunta, Artyom.... Veja, sou muito novo em programação mql5, mas, pelo menos em nossa Bolsa de Valores brasileira, aparentemente isso é possível, pois foi implementado no "Order Book" e na "List of Orders" de uma plataforma de negociação chamada Profit e de outra chamada Tryd. Essas duas plataformas de negociação são voltadas para operadores manuais e não enfatizam a negociação automatizada.

Veja a captura de tela em anexo, eles expõem "minha ordem" em amarelo e também mostram todas as outras ordens na frente e atrás... na verdade, eles expõem todos os corretores e tamanhos de ordens... é um processo muito transparente.

Isso provavelmente não é muito comum em outras bolsas (estou supondo, pois não tenho muita experiência em outras bolsas) e, por esse motivo, talvez não seja explorado na linguagem mql5... Tentarei descobrir como isso é exportado para essas plataformas de negociação (deve haver algum tipo de API), mas pensei que talvez isso também já tenha sido explorado no mql5.

Artyom, muito obrigado pelos comentários que você fez, muito apreciados. Parabéns por seus artigos, eles têm conteúdo e informações de altíssima qualidade.

Cordiais cumprimentos

André Oliveira

Vou tentar analisar essa questão com mais detalhes. Mas assim que tiver tempo. Infelizmente, não tenho muito tempo.