Um exemplo para testar:
static datetime prev_time = 0; datetime curr_time = TimeCurrent(); if((prev_time + 12) < curr_time) { prev_time = curr_time; } else { return(rates_total); } // seu código . . .
Amigos, criei um indicador personalizado com uma cesta de símbolos para dar um sinal de alta ou baixa para um índice.
O indicador funciona bem e não congela durante horários de negociação de baixo volume.
Mas para horários de negociação de alto volume o indicador fica muito pesado com os cálculos e congela toda a minha plataforma MetaTrader 5.
Eu estaria disposto a sacrificar alguns cálculos, por exemplo, chamando a função OnCalculate apenas 5 vezes por minuto, em vez do que ela faz nativamente, que é ser chamada a cada tique.
Como posso diminuir a frequência de chamada da função OnCalculation?
Obrigado amigo, sua sugestao me deu outra ideia, parece estar funcionando, fiz o seguinte: coloquei um limitador de tempo comparando o segundo logo no inicio da onCalculate:
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- if(prev_calculated>rates_total-10) if(segundo(TimeCurrent())!=15||segundo(TimeCurrent())!=30||segundo(TimeCurrent())!=45) return rates_total;
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Amigos, criei um indicador personalizado com uma cesta de símbolos para dar um sinal de alta ou baixa para um índice.
O indicador funciona bem e não congela durante horários de negociação de baixo volume.
Mas para horários de negociação de alto volume o indicador fica muito pesado com os cálculos e congela toda a minha plataforma MetaTrader 5.
Eu estaria disposto a sacrificar alguns cálculos, por exemplo, chamando a função OnCalculate apenas 5 vezes por minuto, em vez do que ela faz nativamente, que é ser chamada a cada tique.
Como posso diminuir a frequência de chamada da função OnCalculation?