O que há de errado com CopyTicks?

 

O que há de  errado aqui? O ticks não estão sendo copiado.

 

int OnInit()
  {
//--- Initializing expert

//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   //ExtExpert.OnTick();
    MqlTick l_scTicks[];
    int l_inCopiedTicks = 0; 
    ulong l_ulCopyFrom = 0;
    
    
    Print(  TimeCurrent()  );
    l_ulCopyFrom  = TimeCurrent();
    l_ulCopyFrom *= 1000;
    l_ulCopyFrom -= 500;
    
    l_inCopiedTicks = CopyTicks("GBPUSD", l_scTicks, COPY_TICKS_ALL, l_ulCopyFrom );

    
    return;
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
   
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   
  }
//+------------------------------------------------------------------+

 A função sempre tem retornado -1; Alguém pode me ajudar??

 
Elmo de Moraes:

O que há de  errado aqui? O ticks não estão sendo copiado.

 A função sempre tem retornado -1; Alguém pode me ajudar??

Olá Elmo de Moraes,

Acredito que não haja nenhum problema.

Algumas corretoras simplesmente não disponibilizam o histórico de ticks.

Tente testar o seu código em 2 corretoras diferentes e veja se o problema persiste.

Abraços,
Malacarne 

 

Olá!

 As vezes quando chamo a função CopyTicks para recuperar ticks recentes os valores dos campos bid e ask da estrutura MqlTick vem zerados. Isso não acontece quando busco por tick mais antigos (não tão recentes), ou se eu volto a buscar pelo mesmo intervalo de ticks um pouco (alguns segundos) depois. Existe um dalay entre a chegada de um tick e o preenchimento correto dos campos?

Obs.: estou usando o build 1365.

Razão: