Eita, essa eu não esperava, na imagem abaixo apresento a tabela de negociações, contas reais, de duas corretoras, não tenho a menor ideia do que pode ser esta divergência. Alguém se habilita a dar uma explicação?
Olá Giannetti,
A diferença parece estar somente na determinação de quem foi a parte agressora do trade, ou seja, quem enviou a ordem a mercado (o comprador ou o vendedor).
Essa informação é lida do campo "flags" da estrutura MqlTick.
Eu já tinha percebido que alguns registros vinham com TICK_FLAG_BUY e TICK_FLAG_SELL ativados simultaneamente.
Inicialmente achei que isso significasse "negócio direto", que é quando a própria corretora casa uma ordem de compra de um cliente com uma ordem de venda de outro cliente e registra o "negócio direto" na B3, sem enviar nenhuma ordem a mercado (nesse caso não faria sentido marcar nem "buy" e nem "sell" no registro, pois não houve agressão ao book).
Só que depois eu reparei que esses registros com TICK_FLAG_BUY e TICK_FLAG_SELL ativados simultaneamente variavam de corretora pra corretora, mas nunca tinha conseguido flagrar uma diferença dessas "ao vivo" como vc conseguiu.
Quando a B3 liberar o log de transações do pregão de hoje, poderemos verificar o que realmente foram esses 2 negócios que a Modal marcou em verde e a XP indicou agressão (uma de compra e outra de venda).
Mas fica a dúvida: como são preenchidos os tick flags (campo "flags" da estrutura MqlTick) ? Até hoje eu não entendi isso.
Eu estou migrando um EA que roda na XP para Modal, este EA se baseia na aceleração da razão: (BUY-SELL) / (BUY+SELL) . Como estava apresentando valores diferentes entre as corretoras, resolvi montar a tela mostrada acima, filtrando a tabela de negócios para apresentar as ordens acima de 100 contratos.
Não esperava essa surpresa de divergência de dados e meu entendimento era que as ordens diretas ficavam marcadas na tabela de negociação do MT5 como N/A.
Eu trato as flags de operação da seguinte forma:
( bit 5 = 1 ) = 32 a tick is a result of a buy deal
(bit 6 = 1 ) = 64 a tick is a result of a sell deal
O teste abaixo verifica se esses bits estão ligados.
if(( tick.flags&TICK_FLAG_BUY)==TICK_FLAG_BUY) somaBuy+=(long)tick.volume;
if(( tick.flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) somaSell+=(long)tick.volume;
Por favor, se for possível, me passe o link para acesso ao Log da B3.
At.te
Rogério
Eu estou migrando um EA que roda na XP para Modal, este EA se baseia na aceleração da razão: (BUY-SELL) / (BUY+SELL) . Como estava apresentando valores diferentes entre as corretoras, resolvi montar a tela mostrada acima, filtrando a tabela de negócios para apresentar as ordens acima de 100 contratos.
Não esperava essa surpresa de divergência de dados e meu entendimento era que as ordens diretas ficavam marcadas na tabela de negociação do MT5 como N/A.
Eu trato as flags de operação da seguinte forma:
( bit 5 = 1 ) = 32 a tick is a result of a buy deal
(bit 6 = 1 ) = 64 a tick is a result of a sell deal
O teste abaixo verifica se esses bits estão ligados.
if(( tick.flags&TICK_FLAG_BUY)==TICK_FLAG_BUY) somaBuy+=(long)tick.volume;
if(( tick.flags&TICK_FLAG_SELL)==TICK_FLAG_SELL) somaSell+=(long)tick.volume;
Por favor, se for possível, me passe o link para acesso ao Log da B3.
At.te
Rogério
Rogerio, estou tentando fazer isso mas nao esta dando certo. Onde tem a teoria por traz dessas operações com tick.flags ? No Mqlticks nao encontrei. Sabe de algum artigo?
Douglas,
tem dezenas de artigos, códigos, postagens ... sobre esse assunto, vai lá em cima na lupinha entre palavras chaves para fazer sua busca.
Não esqueçam o diacho do RLP... Deve ser ele zoando tudo... (chute total)
Eu já desencanei de medir BUY/SELL, e vai ser cada vez pior daqui pra frente...
:(
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Eita, essa eu não esperava, na imagem abaixo apresento a tabela de negociações, contas reais, de duas corretoras, não tenho a menor ideia do que pode ser esta divergência. Alguém se habilita a dar uma explicação?