O indicador não carrega constantemente e tenho que ficar atualizando

 
Criei alguns indicadores que funcionam normalmente, mas a partir de certo momento eles param de atualizar sozinho e tenho que ficar atualizando para conseguir ver o resultado. Alguém consegue me explicar por que isso acontece e o que eu tenho que fazer para consertar?
 
paulomoises:
Criei alguns indicadores que funcionam normalmente, mas a partir de certo momento eles param de atualizar sozinho e tenho que ficar atualizando para conseguir ver o resultado. Alguém consegue me explicar por que isso acontece e o que eu tenho que fazer para consertar?
Bom dia paulomoises, você conseguiu resolver isso ? Estou com esse mesmo problema em um indicador Didi Index e não sei como solucioná-lo
 
Olá! Boa noite! Estou com o mesmo problema
 
dogao1987 #:
Olá! Boa noite! Estou com o mesmo problema

Se usarmos: prev_calculated == rates_total o indicador atualiza a cada barra de gráfico que aparece.

Documentation on MQL5: Integration / MetaTrader for Python / order_calc_margin
Documentation on MQL5: Integration / MetaTrader for Python / order_calc_margin
  • www.mql5.com
order_calc_margin - MetaTrader for Python - Integration - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
dogao1987 #:

Se usarmos: prev_calculated == rates_total o indicador atualiza a cada barra de gráfico que aparece.

Você não deve fazer isto. O motivo é que pode acontecer, de em algum momento, o indicador parar de atualizar os dados. O correto é você LERos dados a partir do prev_calculated até o ( rates_total - 1 ) e fazer os cálculos sobre estes valores obtidos, armazenados ou manipulando os valores conforme necessário. Por exemplo:

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[])
{
        for (int c0 = prev_calculated; c0 < rates_total; c0++)
        {

// .... calculo do indicador com atualização do buffer ....

        }

        return rates_total;
}

Este laço for irá sempre calcular os dados não calculados ainda, porém que estão sendo informados pelo MetaTrader 5. Note que iremos sempre começar no primeiro valor ainda não calculado e iremos até a última posição menos um. Depois que a função OnCalculate retornar para o controle do MetaTrader 5, ela não será chamada novamente, até que ocorra um novo evento e o MetaTrader 5 a dispare novamente. Quando isto acontecer o valor de prev_calculated já se encontrará atualizado para a última posição que tinha sido calculada. E o valor rates_total estará indicando a última nova posição. Por conta disto é que tais valores são declarados como constantes. É justamente para que você não os altere. Assim como a linha return rates_total, ela é usada justamente para que o MetaTrader 5, saiba e atualize o valor de prev_calculated.

Ao codificar as coisas da forma como mostradas acima você sempre estará executando tudo corretamente. Isto por conta que o MetaTrader 5, irá ele mesmo atualizar o valor de prev_calculated e rates_total ... VOCÊ NÃO DEVE TENTAR ATUALIZAR ESTES VALORES.

Espero ter esclarecido a duvida de vocês. 😁👍

 
paulomoises:
Criei alguns indicadores que funcionam normalmente, mas a partir de certo momento eles param de atualizar sozinho e tenho que ficar atualizando para conseguir ver o resultado. Alguém consegue me explicar por que isso acontece e o que eu tenho que fazer para consertar?
Boa tarde. Eu estava com esse mesmo problema e descobri a causa.... É o seguinte... Plataformas pagas nas corretoras brasileiras tem prioridade de ping's com baixíssimas latências. O que isso significa ???? O preço se movimenta do ponto A para o ponto B e o gráfico fica derrapando...Como resolver esse problema ???? Simples...Diminuir ao máximo a quantidade de indicadores usado no MT5.... Procurar por indicadores que são mais simples e objetivos e que não são pesados .... Indicadores danados para dá esse problema ( market profile, didi index, closters ..) Como resolver...Tente adequar sua leitura do didi index em outro indicador de preferencia nativo, ou.... atualize sua maquina ( I9,I7..) e melhore a velocidade de sua internet contratando internet com disponibilidade de baixa latência.Quantos as corretoras,procure uma corretora que disponibilize mais que um servidor para o MT5, exemplo... a clear disponibiliza 6 ao todo e mesmo assim para operar mercado nacional ( B3) dá problemas as vezes usando o MT5. Resumindo tudo... melhore sua maquina, melhore sua internet e opere mercado de fora do Brasil.
 
paulomoises:
Criei alguns indicadores que funcionam normalmente, mas a partir de certo momento eles param de atualizar sozinho e tenho que ficar atualizando para conseguir ver o resultado. Alguém consegue me explicar por que isso acontece e o que eu tenho que fazer para consertar?
Poderia mostrar o codigo de algum que "para" de responder? Tambem seria valioso se voce visse a aba expert e diario por alguma mensagem depois do problema e relata-se se houver. Não temos como adivinhar.
 
Chello Trader #:
Boa tarde. Eu estava com esse mesmo problema e descobri a causa.... É o seguinte... Plataformas pagas nas corretoras brasileiras tem prioridade de ping's com baixíssimas latências. O que isso significa ???? O preço se movimenta do ponto A para o ponto B e o gráfico fica derrapando...Como resolver esse problema ???? Simples...Diminuir ao máximo a quantidade de indicadores usado no MT5.... Procurar por indicadores que são mais simples e objetivos e que não são pesados .... Indicadores danados para dá esse problema ( market profile, didi index, closters ..) Como resolver...Tente adequar sua leitura do didi index em outro indicador de preferencia nativo, ou.... atualize sua maquina ( I9,I7..) e melhore a velocidade de sua internet contratando internet com disponibilidade de baixa latência.Quantos as corretoras,procure uma corretora que disponibilize mais que um servidor para o MT5, exemplo... a clear disponibiliza 6 ao todo e mesmo assim para operar mercado nacional ( B3) dá problemas as vezes usando o MT5. Resumindo tudo... melhore sua maquina, melhore sua internet e opere mercado de fora do Brasil.

Acredito que você está com problemas em  algum indicador, como não tem como saber tente diminuir o numero de barras que o Mt5 carrega

vá em Ferramenta/Opções/Gráficos/Máx barras no gráfico e diminua pra 50000 ou menos.

Razão: