Erros, bugs, perguntas - página 2491

 
Alexey Navoykov:
Reparei durante muito tempo que destacar nomes de macro personalizados num grande projecto nem sempre funciona. Muitas macros definidas noutros ficheiros não são destacadas por alguma razão. Ainda não consigo perceber o padrão. Tudo o que vejo é que todas as macros definidas num determinado ficheiro após uma determinada linha deixam de ser destacadas noutros ficheiros. Mais alguém vê isto nos seus ficheiros?
Sim
 
Alexey Navoykov:
Há muito tempo que reparo que destacar nomes de macro personalizados num grande projecto nem sempre funciona. Muitas macros definidas noutros ficheiros não são destacadas por alguma razão. Ainda não consigo perceber o padrão. Tudo o que vejo é que todas as macros definidas num determinado ficheiro deixam de ser destacadas noutros ficheiros após uma determinada linha. Mais alguém vê isto a acontecer a si próprio?

Tenho notado algo semelhante. Não posso garantir a exactidão da situação.

 
Alexey Navoykov:
Há muito tempo que reparo que os nomes de macros personalizadas num projecto nem sempre são realçados. Muitas macros definidas noutros ficheiros não são realçadas. Ainda não consigo perceber o raciocínio, mas vejo que todas as macros definidas num ficheiro deixam de ser realçadas noutros ficheiros após uma determinada linha. Mais alguém viu isto acontecer?

Sim, e por vezes a autofixação não funciona para novas variáveis ou campos de classe, normalmente pode ser corrigida recompilando o projecto

Tanto quanto sei, em ME em segundo plano funciona um processo que trata de destacar e autofixar, a dada altura, não tem tempo (ou não quer) para actualizar toda a informação

 
Agora que estamos a falar de taxas_total, deixem-me perguntar à comunidade que construção em OnCalculate é mais inteligente e mais óptima?
Eu costumava usar uma construção como esta na OnCalculate:
if (rates_total==prev_calculated) {}        // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated==1) {} // момент формирования нового бара 
else {}                                     // пересчитываем последние(rates_total-prev_calculated) бар


Mas depois de ter percebido que pode haver situações em que se prev_calculou>rates_total, percebi que não compreendo nada, desisti e, se o recálculo de todas as barras não demorar mais do que alguns segundos, comecei a usar tal construção:

if (rates_total==prev_calculated) {}        // новый тик, перерисовываем последний бар, все бары на своих местах
else if (rates_total-prev_calculated==1) {} // момент формирования нового бара 
else {}                                     // пересчитываем все бары

Como o faço e como o faço correctamente?

 
Nikolai Semko:
Uma vez que estamos a falar de taxas_total, deixe-me perguntar à comunidade que construção na OnCalculate é mais elegante e óptima?
Eu costumava usar uma construção como esta na OnCalculate:


Mas depois de ter percebido que pode haver situações em que se prev_calculou>rates_total, percebi que não compreendo nada, desisti e, se o recálculo de todas as barras não demorar mais do que alguns segundos, comecei a usar tal construção:

como é que alguém o faz e como é, em geral, competente?

É alfabetizado porque compreende o que se passa. Nota sobre a sua construção: Em vez de ===1 eu escreveria >=1 ou apenas se(rates_total > prev_calculated) para que se as barras falhadas forem bombeadas para cima, sejam recalculadas.

Além disso, em mql5 e com directiva rigorosa em mql4, de modo a não exagerar o conjunto, devemos considerar quantas barras podem estar envolvidas no cálculo a partir da barra mais à esquerda. Assim, acontece que eu pessoalmente não tenho um modelo para todas as ocasiões.

 
Nikolai Semko:
Agora que estamos a falar de taxas_total, quero perguntar à comunidade que construção em OnCalculate é mais elegante e óptima?
Eu costumava usar uma construção como esta na OnCalculate:


Mas quando compreendi que pode haver situações em que se prev_calculou>rates_total, apercebi-me de que não compreendo nada e abanei a cabeça e, se o recálculo de todas as barras não levar mais do que alguns segundos, decidi usar esta construção:

como é que alguém o faz e como é feito correctamente em geral?

Calculo limite = taxas_total - pré_calculadas.
Então, se limite > 1, então limite = taxas_total - 1 (ou o número necessário de barras-1 para o primeiro cálculo) e inicialização.
E depois um laço do limite até >=0.
Não posso fazer o código do meu telemóvel ...
 
Nikolai Semko:
Uma vez que estamos a falar de taxas_total, deixe-me perguntar à comunidade que construção na OnCalculate é mais elegante e óptima?
Eu costumava usar uma construção como esta na OnCalculate:


Quando compreendi que pode haver situações em que se prev_calculou>rates_total, percebi que não compreendo nada, por isso desisti e utilizei esta construção, se o recálculo de todas as barras não demorar mais do que alguns segundos:

como é que alguém o faz e como, em geral, de forma competente?

Em princípio, a questão é relevante, nos exemplos dos desenvolvedores (entrega de MT) diferentes formas de cálculo, mesmo BarsCalculated() é utilizado em Bears.mql5

discuti recentemente no âmbito do MT4, até agora tenho-me estabelecido com o seguinte padrão:https://www.mql5.com/ru/forum/314931/page2#comment_11946579

ainda tenho de o verificar no MT5, mas os gráficos comportam-se de forma diferente (MT4 / MT5), no MT5 se rolar com a roda do rato até ao início da história, parece que o cálculo prévio será reposto a zero - no ano passado escrevi um indicador no MT5 e fiquei surpreendido ao ver tal comportamento

ZZY: fazer gráfico personalizado e por temporizador percorrer o histórico - é necessário um chamado banco de ensaio para rastrear o comportamento de taxas_total e pré-cálculo - escrevi aqui há algumas páginas sobre taxas_total e descoordenação iBars() - também deve ser tido em conta

Gostei da sua forma de escrever indicadores - tudo é cuidadosamente feito. O único problema com os seus códigos é um estilo muito peculiar de formatação do código fonte.

 
Igor Makanu:

...........................

um estilo muito peculiar de formatação da fonte


 
Сергей Таболин:


Sei como usar o modelador, mas o modelador não funciona se se colocar vários operadores numa só linha

;)

exemplohttps://www.mql5.com/ru/code/22766
 

Apenas uma pergunta.

ulong tem um valor máximo de 18.........

Recebi um valor de 61........

E aIntegerToString() deste valor dá 90............. de todo

Demorei algum tempo a encontrar o problema.

Existe alguma forma de a localizar?