Saldo agressor por candle - página 2

 
@Maximiliano Salvatti ou @marcusmotaBoa Noite. Fiz testes do volume de agressão do modo que vocês colocaram e estou conseguindo capturar os dados. No entando quando comparo o valor calculado no metatrader 5 com o Tryd (no intervalo de 1 minuto), por exemplo, tem uma variação considerável. Você está usando desse modo ou precisou fazer alguma alteração? Sabe informar se tem como distinguir negócios diretos de não diretos? Muito Obrigado.
 
ricardo.vasconcelos:
@Maximiliano Salvatti ou @marcusmotaBoa Noite. Fiz testes do volume de agressão do modo que vocês colocaram e estou conseguindo capturar os dados. No entando quando comparo o valor calculado no metatrader 5 com o Tryd (no intervalo de 1 minuto), por exemplo, tem uma variação considerável. Você está usando desse modo ou precisou fazer alguma alteração? Sabe informar se tem como distinguir negócios diretos de não diretos? Muito Obrigado.

No MT5 você não tem como segregar os Diretos. Entra tudo.

;)

 
Minions Labs:

No MT5 você não tem como segregar os Diretos. Entra tudo.

;)

Obrigado pela informaçao!!!! 
 
Maximiliano Salvatti:

Galera consegui resolver o problema.

No simulador o retorno dos dados não continham as agressões, mas usando com o mercado aberto, mesmo na conta demo, funcionou, tanto xp, modal e rico.

Ficou assim o código.

      //---Verifica agressão

      MqlTick last_tick[];

      int received=CopyTicks(_Symbol,last_tick,COPY_TICKS_TRADE,0,1);

   

      int ticks=ArraySize(last_tick);       

      for(int i=0;i<ticks;i++) 

        { 

            bool buy_tick=((last_tick[i].flags&TICK_FLAG_BUY)==TICK_FLAG_BUY);

            bool sell_tick=((last_tick[i].flags&TICK_FLAG_SELL)==TICK_FLAG_SELL);

            

            if (buy_tick) 

               {  

                  AgressaoCompra = AgressaoCompra + last_tick[i].volume;

               }

            else if (sell_tick)

               {  

                  AgressaoVenda = AgressaoVenda + last_tick[i].volume;

               }

         }


Quando roda no Ontick, o saldo não é real visto que o evento é chamado varias vezes onde não é executado nem uma compra nem uma venda, ou seja, ele duplica (triplica...) o valor da ultima negociação até que o vetor seja de fato atualizado devido a uma real agressão de compra ou venda.   Como resolveu esse problema?
Razão: