CustomTicksReplace

Substitui todo o histórico de preço do instrumento personalizado pelos dados na matriz do tipo MqlTick, no intervalo de tempo definido.

int  CustomTicksReplace(
   const string     symbol,            // nome do símbolo
   datetime         from_msc,          // a partir de qual data
   datetime         to_msc,            // até qual data
   const MqlTick&   ticks[],           // matriz com dados de tick que se devem aplicar ao instrumento personalizado
   uint             count=WHOLE_ARRAY  // número de elementos a serem usados a partir da matriz ticks[]
   );

Parâmetros

symbol

[in]  Nome do instrumento personalizado.

from_msc

[in]  Tempo do primeiro tick no histórico de preço, na faixa definida a ser removida. Tempo em milissegundos desde 01.01.1970.

to_msc

[in]  Tempo do último tick no histórico de preço, na faixa definida a ser removida. Tempo em milissegundos desde 01.01.1970.

ticks[]

[in]   Matriz dos dados de tick - de tipo MqlTick - classificados segundo o tempo em ordem crescente.

count=WHOLE_ARRAY

[in]  Número de elementos da matriz ticks[] que será usado para substituir no intervalo de tempo especificado. O valor WHOLE_ARRAY indica que é necessário usar todos os elementos da matriz ticks[].

Valor de retorno

true, em caso de sucesso, caso contrário, false. Para obter informações sobre o erro, você deve chamar a função GetLastError().

Geral

Como, no canal de cotações, muitas vezes alguns ticks podem ter o mesmo tempo com uma precisão de milissegundos (a hora do tick é armazenado no campo time_msc da estrutura MqlTick), a função CustomTicksReplace não classifica automaticamente os elementos da matriz ticks[] de acordo com o tempo. Portanto, a matriz de ticks deve ser pré-ordenada por tempo ascendente.

Os ticks são substituídos sequencialmente, dia após dia, até a hora especificada em to_msc ou até que ocorra um erro. Primeiro, é processado o primeiro dia da faixa especificada, em seguida, o seguinte, e assim por diante. Assim que encontrada uma discrepância no tempo do tick quanto à ordem crescente (não decrescente), é interrompido o processo de substituição de ticks para o dia atual. Ao acontecer isto, os ticks do dia anterior são substituídos com sucesso, enquanto o dia atual (no momento do tick errado) e todos os dias restantes no intervalo definido permanecerão inalterados.

Se, na matriz ticks[], não existirem dados de tick um certo dia (de um modo geral, um intervalo de qualquer duração), após serem implementados os ticks da ticks[], no histórico do instrumento personalizado é formado um "buraco", que corresponde aos dados em falta. Em outras palavras, a chamada de CustomTicksReplace com os ticks em falta para uma determinada faixa será equivalente à remoção da parte do histórico de negociação, como se fosse chamado CustomTicksDelete com um intervalo "buracado".

Se não houver dados no banco de dados de ticks no intervalo de tempo especificado, a CustomTicksReplace simplesmente adicionará os ticks da matriz ticks[] a ele.

A função CustomTicksReplace funciona diretamente com o banco de dados de ticks.

 

Veja também

CustomRatesDelete, CustomRatesUpdate, CustomTicksDelete, CopyTicks, CopyTicksRange