Como extrair o saldo agressor

 

Pessoal, estou tentando criar um expert que fique fazendo a leitura do saldo agressor por minuto (ou do candle aberto + último fechado) e encontre agressões maiores para entrar junto. 

Exemplo (ativo WDO): saldo do último minuto era +1.000 e, de repente, em 5 segundos, pula para +6.000, isso gera um sinal para o robô. 

Pelo que vi, o pessoal recomenda extrair separadamente o volume de compra, o volume de venda e depois implementar um código que calcule a diferença. A estrutura inicial eu consegui vendo um tópico de um colega daqui:

void OnTick()
{
   MqlTick tick;
   if (SymbolInfoTick(Symbol(), tick)) 
     {
      if ((tick.flags &TICK_FLAG_BUY) == TICK_FLAG_BUY){Print("Compra");}
         
      if ((tick.flags &TICK_FLAG_SELL) == TICK_FLAG_SELL){Print("Venda");}
         
     }
}

Aqui, consigo identificar se foi agressão de compra ou venda. Mas, depois, para calcular o volume, o saldo e o tempo (candle aberto + último fechado), não tenho ideia de qual o melhor caminho. 

Alguém poderia me ajudar?  

 
Fserna:

Pessoal, estou tentando criar um expert que fique fazendo a leitura do saldo agressor por minuto.

Bom dia,

sugiro que você leia o artigo abaixo.

Escrita de indicadores de bolsa com controle de volume usando o indicador delta como exemplo
Escrita de indicadores de bolsa com controle de volume usando o indicador delta como exemplo
  • www.mql5.com
Este artigo descreve um algoritmo para construir indicadores de bolsa com base em volumes reais usando as funções CopyTicks() e CopyTicksRange(). Também apresenta as particularidades de construção desses indicadores, bem como seus aspetos de funcionamento tanto em tempo real quanto no testador de estratégias.
 
Rogerio Giannetti Torres:

Bom dia,

sugiro que você leia o artigo abaixo.

Rogerio, bem completo o artigo! 

Você considera viável obter o histórico de negociações do último minuto ou isso poderia gerar um gap no robô? Vc teria um exemplo da função COPY_TICKS para esse período de tempo?