Ferramenta similar a Times & Trades - página 3

 

Verdade o MT5 esta caminhando aos poucos aqui no brasil...

 

Por necessidade eu desenvolvi meu próprio Times and Sales(Times & Trades no Brasil) e um book de ofertas com uma profundidade maior. Mas o problema que você não consegue saber a origem da ordem, de qual corretora. mas da para quebrar um galho

Times & Trades

 
Alguma novidade sobre o Times and trades? Sanderson, esta ferramenta que você desenvolveu, você disponibiliza de alguma forma?
 
klebis:
Alguma novidade sobre o Times and trades? Sanderson, esta ferramenta que você desenvolveu, você disponibiliza de alguma forma?

Olá klebis, acredito que a principal limitação seja a de certificação do MT5 em uma plataforma de market data compatível com esses dados.

Fazendo uma pesquisa no site da BM&FBovespa, é possível ver abaixo todas soluções certificadas, para comparação das plataformas utilizadas. 

http://www.bmfbovespa.com.br/pt-br/servicos/certificacao/solucoes-certificadas.aspx?idioma=pt-br

O documento abaixo especifica melhor cada plataforma:

http://www.bmfbovespa.com.br/en-us/services/download/Market-Data-Commercial-Policy-CURRENT.pdf 

Na minha opinião o MT5 necessita de uma certificação em uma plataforma com dados mais completos de nível 2, como acontece hoje com outros concorrentes nacionais, para poder liberar o acesso a esse conteúdo no mesmo padrão.

Soluções certificadas | BM&FBOVESPA
  • www.bmfbovespa.com.br
Empresa Software Sinal de Difusão
 
Rogerio Figurelli:

Olá Leonardo, bem observado, embora eu acredite que o foco de evolução da plataforma nessa área ainda tem que melhorar e muito, como destaquei no começo desse tópico.

Por exemplo (como imagem abaixo), ainda não é possível ver no book algo tão simples quanto a origem com o nome das corretoras que estão agredindo. Muito menos ainda recursos de Times & Trades, apresentando a corretora compradora e a vendedora.

 

Por outro lado, vemos as plataformas nacionais evoluindo muito nesse ponto, principalmente na análise de fluxo de ordens e tape reading, até porque talvez seja a única vantagem competitiva em relação ao MT5, que é sem dúvida cada vez mais líder no segmento de plataformas de algoritmos, tanto no Brasil como no mercado internacional.

A única solução que vejo para endereçar essa lacuna é a inteligência através de acesso por WebRequest, o que sem dúvida pode ser feito de forma eficaz, mas o ideal seria ter todos esses recursos e informações de mercado disponíveis em outras plataformas nacionais já nativos no MT5, como comentei desde o início, e já a um bom tempo atrás. 

Olá,

Alguém sabe me dizer como aplicar esse "Profundidade de Mercado" na prática?

Melhor dizendo, como entender momentos de entrada e saída de negociação? 

 
caredan:

Olá,

Alguém sabe me dizer como aplicar esse "Profundidade de Mercado" na prática?

Melhor dizendo, como entender momentos de entrada e saída de negociação? 

Olá caredan, em tese a 'Profundidade de Mercado' ou 'Depth of Market' (DOM), nada mais é que do que a visualização em tempo real do livro de ofertas do ativo selecionado.

A construção de estratégias a partir daí dependerá basicamente do 'entendimento' pessoal de cada trader, e do que ele considera melhor ou pior.

Alguns traders, por exemplo, acreditam que seja possível detectar padrões de comportamento no livro.

Uma evolução dessa análise é, conforme comentado nesse tópico, o recurso de Times & Trades (não presente no MT5), que exibe detalhes sobre cada negócio realizado, muito utilizado para TapeReading ou leitura do fluxo de ordens, com melhor identificação de quem de fato está agredindo o mercado, já que no DOM você visualiza apenas as ordens pendentes.

O grande problema das estratégias baseadas em DOM e Times & Trades, e portanto de análise do Livro de Ofertas ou do próprio fluxo, como o TapeReading, é que os robôs, principalmente de alta frequência (HFT), criam 'armadilhas' com movimentos de formação de mercado e especulativos, visando iludir os traders que operam baseados nas análises desses dados.

Isso, em tese, é muito fácil de fazer com ordens pendentes, com uma estrutura de baixa latência, evidentemente.

Mas mesmo com o fluxo de ordens, basta um player ter volume suficiente para isso para estabelecer padrões e falsos movimentos para induzir a falsa análise do Times & Trades. Como esses robôs conhecem a fundo e estatisticamente os padrões de leitura de TapeReading (até porque essa técnica é muito antiga), podem construir o cenário ideal para sua atuação, desde que tenham volume operacional para isso, o que implica muitas vezes em sincronismo de algoritmos para operação em mais de um ativo e corretora.

O resumo da ópera, portanto, é que não existem mágicas ou soluções que ganhem permanentemente do mercado, uma vez que ele é de complexidade e incerteza infinita, e a automação com robôs e Expert Advisors, ou ainda o tipo de dado analisado (preços, volumes, livro, fluxo de ordens, notícias, fundamentos, etc) não muda esse cenário, ou seja, em outras palavras, tenha bastante cuidado no desenvolvimento de aplicações nesse sentido.

 
Rogerio Figurelli:

Olá caredan, em tese a 'Profundidade de Mercado' ou 'Depth of Market' (DOM), nada mais é que do que a visualização em tempo real do livro de ofertas do ativo selecionado.

A construção de estratégias a partir daí dependerá basicamente do 'entendimento' pessoal de cada trader, e do que ele considera melhor ou pior.

Alguns traders, por exemplo, acreditam que seja possível detectar padrões de comportamento no livro.

Uma evolução dessa análise é, conforme comentado nesse tópico, o recurso de Times & Trades (não presente no MT5), que exibe detalhes sobre cada negócio realizado, muito utilizado para TapeReading ou leitura do fluxo de ordens, com melhor identificação de quem de fato está agredindo o mercado, já que no DOM você visualiza apenas as ordens pendentes.

O grande problema das estratégias baseadas em DOM e Times & Trades, e portanto de análise do Livro de Ofertas ou do próprio fluxo, como o TapeReading, é que os robôs, principalmente de alta frequência (HFT), criam 'armadilhas' com movimentos de formação de mercado e especulativos, visando iludir os traders que operam baseados nas análises desses dados.

Isso, em tese, é muito fácil de fazer com ordens pendentes, com uma estrutura de baixa latência, evidentemente.

Mas mesmo com o fluxo de ordens, basta um player ter volume suficiente para isso para estabelecer padrões e falsos movimentos para induzir a falsa análise do Times & Trades. Como esses robôs conhecem a fundo e estatisticamente os padrões de leitura de TapeReading (até porque essa técnica é muito antiga), podem construir o cenário ideal para sua atuação, desde que tenham volume operacional para isso, o que implica muitas vezes em sincronismo de algoritmos para operação em mais de um ativo e corretora.

O resumo da ópera, portanto, é que não existem mágicas ou soluções que ganhem permanentemente do mercado, uma vez que ele é de complexidade e incerteza infinita, e a automação com robôs e Expert Advisors, ou ainda o tipo de dado analisado (preços, volumes, livro, fluxo de ordens, notícias, fundamentos, etc) não muda esse cenário, ou seja, em outras palavras, tenha bastante cuidado no desenvolvimento de aplicações nesse sentido.

Rogério, ótima explicação que fechou as lacunas que eu necessitava sobre Times & Trades e o MT5. Eu gostei de como eles implementaram graficamente, sendo muito util quando se acompanha o mercado o tempo todo, ele pelo menos tenta dizer se o movimento é resultado de compras ou vendas ou ambos.

Obrigado 

Marcelo 

 

Pessoal,

Não estou conseguindo acessar o DOM usando uma conta demo de uma corretora da qual sou cliente (posso citar o nome?).

Também tentei MetaBrazil-Demo e não consegui.

Pelo que li, não são todos os servidores (todas as corretoras) que disponibilizam essa feature. Gostaria então de saber quais corretoras que usam MT5 disponibilizam o DOM (Depth of Market). 

O código que estou utilizando é:

 

-----------------------------------------------------

int OnInit()

  {

   EventSetTimer(60);

//--- open the DOM and subscribe for notifications 

   if(MarketBookAdd(Symbol()))

   {

      return INIT_SUCCEEDED;

   }

//---

   return INIT_FAILED;

  }

//+------------------------------------------------------------------+

//| Expert deinitialization function                                 |

//+------------------------------------------------------------------+

void OnDeinit(const int reason)

  {

//--- destroy timer

   EventKillTimer();

//--- close the DOM

   if(!MarketBookRelease(Symbol()))

      Print("Failed to close the DOM!");      

  }

//| Timer function                                                   |

//+------------------------------------------------------------------+

void OnTimer()

  {

      //--- array of the DOM structures

      MqlBookInfo last_bookArray[];



      //--- get the book

      if(MarketBookGet(Symbol(),last_bookArray))

        {

          PrintFormat("ArraySize: %d",ArraySize(last_bookArray));

         //--- process book data

         for(int idx=0;idx<ArraySize(last_bookArray);idx++)

           {

            MqlBookInfo curr_info=last_bookArray[idx];

            //--- print

            PrintFormat("Type: %s",EnumToString(curr_info.type));

            PrintFormat("Price: %0."+IntegerToString(_Digits)+"f",curr_info.price);

            PrintFormat("Volume: %d",curr_info.volume);

           }

        }

        else

        {

          PrintFormat("Não foi possível pegar o book de ofertas do ativo %s.",Symbol());

        }  

  }

//+------------------------------------------------------------------+

//| BookEvent function                                               |

//+------------------------------------------------------------------+

void OnBookEvent(const string &symbol)

  {

//---

   Print("Book event for: " + symbol);   

  }

//+------------------------------------------------------------------+

O ArraySize é sempre igual a zero!!!

Estou usando a conta demo da corretora. Se utilizar a conta real será que obtenho o book? 

Obrigado. 

 
rogerio_labanca:

Pessoal,

Não estou conseguindo acessar o DOM usando uma conta demo de uma corretora da qual sou cliente (posso citar o nome?).

Também tentei MetaBrazil-Demo e não consegui.

Pelo que li, não são todos os servidores (todas as corretoras) que disponibilizam essa feature. Gostaria então de saber quais corretoras que usam MT5 disponibilizam o DOM (Depth of Market). 

O código que estou utilizando é:

O ArraySize é sempre igual a zero!!!

Estou usando a conta demo da corretora. Se utilizar a conta real será que obtenho o book? 

Obrigado. 

Olá rogerio_labanca,

Realmente não são todas as corretoras que disponibilizam o DOM.

Nesse caso, para testar seu código, basta você tentar utilizá-lo em outra corretora que ofereça essa ferramenta.

Abraços,
Malacarne

 
Rodrigo Malacarne:

Olá rogerio_labanca,

Realmente não são todas as corretoras que disponibilizam o DOM.

Nesse caso, para testar seu código, basta você tentar utilizá-lo em outra corretora que ofereça essa ferramenta.

Abraços,
Malacarne

Malacarne,

Depois percebi meu erro. Eu testei meu código em horário em que a bolsa estava fechada. Pensei que iria obter o book de ofertas mesmo fora do horário do pregão, já que é possível enviar uma ordem (de compra ou venda) e colocar uma data de validade de vários dias. Desta forma essas ordens permaneceriam no book mesmo fora do hoário de pregão.

Mas enfim... Quando testei dentro do horário do pregão, consegui obter as ofertas.

O "problema" que verifiquei corresponde ao tamanho do array. O array retornado tem no máximo 32 posições, das quais no máximo são 16 posições do book de venda e no máximo 16 posições do book de compra.

Teria como obter o volume existente para um dado preço que esteja longe do último valor negociado? Por exemplo, suponha um papel de alta liquidez que esteja sendo negociado à R$5,00 num dado instante. Neste momento o DOM retornado terá um range aproximado de R$4,84 a R$5,16. Mas suponha que eu gostaria de saber qual o volume que esteja posicionado à R$5,30. Não consigo. Teria alguma outra função para obter esse volume no book cujo valor está mais distante do valor sendo negociado?

 

Obrigado!

 

Rogério Labanca 

 
rogerio_labanca:

Malacarne,

Depois percebi meu erro. Eu testei meu código em horário em que a bolsa estava fechada. Pensei que iria obter o book de ofertas mesmo fora do horário do pregão, já que é possível enviar uma ordem (de compra ou venda) e colocar uma data de validade de vários dias. Desta forma essas ordens permaneceriam no book mesmo fora do hoário de pregão.

Mas enfim... Quando testei dentro do horário do pregão, consegui obter as ofertas.

O "problema" que verifiquei corresponde ao tamanho do array. O array retornado tem no máximo 32 posições, das quais no máximo são 16 posições do book de venda e no máximo 16 posições do book de compra.

Teria como obter o volume existente para um dado preço que esteja longe do último valor negociado? Por exemplo, suponha um papel de alta liquidez que esteja sendo negociado à R$5,00 num dado instante. Neste momento o DOM retornado terá um range aproximado de R$4,84 a R$5,16. Mas suponha que eu gostaria de saber qual o volume que esteja posicionado à R$5,30. Não consigo. Teria alguma outra função para obter esse volume no book cujo valor está mais distante do valor sendo negociado?

Obrigado!

Rogério Labanca 

Olá rogerio_labanca,

Infelizmente essa é uma limitação do MetaTrader 5... não é possível (atualmente, build 1241) obter mais que 32 linhas de dados para o DOM.

Abraços,
Malacarne 

Razão: