CopyTicksRange

Obtém em uma matriz ou vetor os ticks a partir da estrutura MqlTick na faixa de datas indicada. Os elementos da posição inicial são contados do passado para o presente, ou seja, o tick com índice 0 é o mais antigo. Para analisar um tick é necessário verificar o campo flags, que notifica exatamente o que foi alterado no tick em questão.

bool  matrix::CopyTicksRange(
   string           symbol,                // nome do símbolo
   ulong            flags,                 // sinalizador que define o tipo de ticks recebidos
   ulong            from_msc,              // momento a partir do qual os ticks são solicitados
   ulong            to_msc                 // momento a partir do qual os ticks são solicitados
   );

Método vetorial

bool  vector::CopyTicksRange(
   string           symbol,                // nome do símbolo
   ulong            flags,                 // sinalizador que define o tipo de ticks recebidos
   ulong            from_msc,              // momento a partir do qual os ticks são solicitados
   ulong            to_msc                 // momento a partir do qual os ticks são solicitados
   );

Parâmetros

symbol

[in]  Símbolo.

flags

[in]  Combinação de sinalizadores a partir da enumeração ENUM_COPY_TICKS, que indica a composição dos dados solicitados. Ao copiar em um vetor, apenas um valor da enumeração pode ser especificado a partir da enumeração ENUM_COPY_TICKS, caso contrário, haverá um erro.

from_msc

[in]  momento a partir do qual os ticks são solicitados. Indicado em milissegundos a partir de 01.01.1970. Se o parâmetro from_msc não for especificado, os ticks serão fornecidos desde o início do histórico. São entregados ticks com a data >= from_msc.

to_msc

[in]  Momento a partir do qual são solicitados os ticks. Indicado em milissegundos a partir de 01.01.1970. São entregados ticks com a data <= to_msc. Se o parâmetro to_msc não é especificado, então todos os ticks são dados até o final do histórico.

Valor retornado

Retorna true se bem sucedido, caso contrário false. GetLastError() pode retornar os seguintes erros:

  • ERR_HISTORY_TIMEOUT — o tempo de espera para a sincronização dos ticks expirou, a função entregou tudo o que tinha.
  • ERR_HISTORY_SMALL_BUFFER — o buffer estático é muito pequeno, apenas entregou o que cabia na matriz.
  • ERR_NOT_ENOUGH_MEMORY — memória insuficiente para obter o histórico do intervalo especificado em uma matriz dinâmica de ticks. Falha ao alocar a quantidade necessária de memória para a matriz de ticks.

 

Para saber exatamente quais dados foram alterados com o tick atual, analise seus sinalizadores:

  • TICK_FLAG_BID — tick mudou o preço Bid
  • TICK_FLAG_ASK  — tick mudou o preço Ask
  • TICK_FLAG_LAST — tick mudou o preço da última negociação
  • TICK_FLAG_VOLUME — tick modou o volume
  • TICK_FLAG_BUY — tick surgiu como resultado de uma negociação de compra
  • TICK_FLAG_SELL — tick surgiu como resultado de uma negociação de venda

Observação

O método CopyTicksRange() é projetado para solicitar ticks de uma faixa estritamente especificada, por exemplo, para um dia em particular do histórico. Enquanto CopyTicks() permite especificar apenas uma data de início, como por exemplo receber todos os ticks desde o início do mês até a hora atual.

Ver também

Acesso a séries temporais e indicadores, CopyTicksRange