CopyTicks - tem como especificar por período?

 

Boa tarde!

Preciso das negociações realizadas no período do tempo gráfico, por exemplo, se uma barra abre as 12:00 e tem 5 minutos de duração, preciso obter as negociações entre 12:00 e as 12:05.

Acho que se obteria pela função CopyTicks mais não consegui colocar a data de término.

Existe como especificar ou é melhor alguma outra função alternativa?

 

Abraços

Daniel 

 
Daniel Andrejczuk:

Boa tarde!

Preciso das negociações realizadas no período do tempo gráfico, por exemplo, se uma barra abre as 12:00 e tem 5 minutos de duração, preciso obter as negociações entre 12:00 e as 12:05.

Acho que se obteria pela função CopyTicks mais não consegui colocar a data de término.

Existe como especificar ou é melhor alguma outra função alternativa?

 

Abraços

Daniel 

Daniel.

Seu problema acabou: https://www.mql5.com/pt/docs/series/copyticksrange.

Atenciosamente. 

Documentação sobre MQL5: Séries Temporais e Acesso a Indicadores / CopyTicksRange
Documentação sobre MQL5: Séries Temporais e Acesso a Indicadores / CopyTicksRange
  • www.mql5.com
Séries Temporais e Acesso a Indicadores / CopyTicksRange - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
Show, eu havia contornado isso com muita programação! Agora simplificou bastante!
 
Estou tendo problemas com a função CopyTicksRange, não esta retornando flags do tipo TICK_FLAG_BUY e nem TICK_FLAG_SELL. Tentei em conta demonstração e em conta real, ambas me retornam somente TICK_FLAG_BID, TICK_FLAG_ASK, TICK_FLAG_LAST e TICK_FLAG_VOLUME. Alguém poderia me ajudar?
 
carlossene:
Estou tendo problemas com a função CopyTicksRange, não esta retornando flags do tipo TICK_FLAG_BUY e nem TICK_FLAG_SELL. Tentei em conta demonstração e em conta real, ambas me retornam somente TICK_FLAG_BID, TICK_FLAG_ASK, TICK_FLAG_LAST e TICK_FLAG_VOLUME. Alguém poderia me ajudar?

Também estou com esse problema!! Teria alguém já resolvido o problema?

O pior é que se a gente exporta pra CSV, vem mostrando se foi Buy ou Sell...kkkk

Malacarne seria o cara pra responder isso pra gente...

 
Daniel Andrejczuk:

Boa tarde!

Preciso das negociações realizadas no período do tempo gráfico, por exemplo, se uma barra abre as 12:00 e tem 5 minutos de duração, preciso obter as negociações entre 12:00 e as 12:05.

Acho que se obteria pela função CopyTicks mais não consegui colocar a data de término.

Existe como especificar ou é melhor alguma outra função alternativa?

 

Abraços

Daniel 


Eu utilizo isso e funciona muito bem , Tenho uma Classe onde armazeno todos os dados , e sempre que preciso pegar mais ticks do servidor, pego apenas a diferenca fazendo o codigo rodar mais rapidamente, pra cada tick, e testei e a velocidade é melhor. 



void CarregaArrayTicks(CVAP* VAP,datetime TDATAHORAINICIAL,datetime TDATAHORAFINAL)

{

   

  lastTime = TimeLocal();

  ulong inicio=(ulong)(StringToTime(DATAHORAINICIAL))*1000;  

  ulong fim=(ulong)(StringToTime(TDATAHORAFINAL))*1000; 

  ArrayFree(VAP.VapTickArray);

  int received=CopyTicksRange(ATIVO,VAP.VapTickArray,COPY_TICKS_ALL,inicio,fim); 

  

  VAP.ticks=ArraySize(VAP.VapTickArray); 

  Print ("Numero de Ticks: "+VAP.ticks+" INI:"+TDATAHORAINICIAL+" "+TDATAHORAFINAL);

  if (VAP.ticks > 0 ){

    Print (VAP.VapTickArray[0].time+"->"+VAP.VapTickArray[VAP.ticks-1].time);

     }



Basta usar o Array que vc quiser, substituindo o que eu utilizei ( VAP.VapTickArray --> vc usa o seu ) 



Abc

Sandrolho

Razão: