Por que os indicadores (linhas, setas, histogramas) estão cintilando no terminal MT5? - página 9

 
Andrey Khatimlianskii: A cintilação é facilmente reproduzida quando o processador está muito carregado. Executar a otimização em todos os núcleos locais e tentar remover/criar uma dúzia de objetos e fazer ChartRedrow. O efeito "swag" é garantido.

Sim, mas eu gostaria exatamente o contrário, não de reproduzir a cintilação, mas de pará-la, de fazer algo para não ver mais essa cintilação.
E em boas condições, quando o processador não é carregado, poderíamos dizer ocioso, a otimização não está funcionando, ou seja, os núcleos locais também não são carregados, os objetos não são criados e o ChartRedraw() não é chamado. E neste estado tranquilo do computador, as "guirlandas" continuam piscando!

Os desenvolvedores nem sequer responderam, esta piscada é irrecuperável e será eliminada apenas em versões futuras do MT5 ou talvez os desenvolvedores de indicadores tenham mãos erradas e não entendam algo durante o desenvolvimento de indicadores para o MT5...

 

Não apenas os indicadores personalizados cintilam, mas também as ferramentas embutidas, por exemplo, "Canal de Regressão".

 

Aleksey Vyazmikin: Мерцают не только пользовательские индикаторы, но и встроенные инструменты, к примеру "Канал регрессии".

Se assim for, então não há nada a adivinhar, isso significa que este problema ainda não pode ser resolvido em princípio e será resolvido em algumas versões futuras do MT5. Os desenvolvedores devem ser honestos sobre isso e não fazer com que os programadores se intrometam sobre o que estão fazendo de errado e como lidar com isso...

 

Eu tenho lutado com isto por alguns dias.

Experimentei tudo o que foi aconselhado acima.

Não ajudou.

O indicador cintila no MT5 pela única razão:

Ao aplicar ChartGetInteger(0,CHART_VISIBLE_BARS ...

Pelo menos quando eu defino um número constante em vez desta função, ela pára de cintilar.

Posso ter aplicado a função de forma desajeitada, mas mesmo assim...
Документация по MQL5: Операции с графиками / ChartGetInteger
Документация по MQL5: Операции с графиками / ChartGetInteger
  • www.mql5.com
Возвращает значение соответствующего свойства указанного графика. Свойство графика должно быть типов datetime, int или bool. Существует 2 варианта функции. 2. Возвращает true или false в зависимости от успешности выполнения функции.  В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром...
 

Isso também não ajudou ;))))

 
Renat Akhtyamov:

Também não ajudou ;))))

" ... A função é síncrona - isto significa que ela espera até que todos os comandos que foram colocados na fila de horários sejam chamados. ... "

Isto é da documentação. Posso acrescentar que a função síncrona retarda todo o processo - até que ele termine a execução, nenhum outro processo começará a ser executado, mesmo que haja recursos disponíveis para sua execução.

 
Há uma hipótese de que a cintilação depende do redesenho dos objetos pelo motor terminal, ou seja, se os pontos do gráfico estiverem fora da tela visível, eles têm uma prioridade menor para renderização, que se manifesta sob carga computacional no gráfico (incluindo a taxa de chegada da cotação - notei que é com movimentos fortes e intensos que ocorre a cintilação).
 
Aleksey Vyazmikin:
Há uma hipótese de que a cintilação depende do redesenho dos objetos pelo motor terminal, ou seja, se os pontos do gráfico estiverem fora da tela visível, eles têm uma prioridade menor para renderização, que se manifesta durante a carga computacional no gráfico (incluindo a taxa de chegada da cotação - notei que é com movimentos fortes e intensos que ocorre a cintilação).

Eu realmente gostaria que os desenvolvedores prestassem atenção a este tópico.

A cintilação do indicador não pode ser eliminada por si só.

 

Acho que descobri.

não um fato, mas

parece ser algum tipo de teste externo da EA atual que está sendo negociada atualmente na conta real.

minhas conclusões pessoais são as seguintes:

O gráfico é construído com exatamente 10 horas de antecedência, vemos o ready-made

o resto está nos bastidores à direita e vem gradualmente até nós na tela

Gravei o vídeo, para não atacar, mas vou mostrá-lo não aqui, mas ali, onde as pessoas se interessariam muito por ele

---

agora em fotos

Primeiro, o número de barras muda, que é fixado em 1000, mas como o cálculo começa de zero, ele acaba sendo 1001:

no momento da cintilação repentina as barras se tornam 600 a menos (e sempre quando a cintilação é a mesma - 358):

e no momento da cintilação do indicador às vezes isso acontece (consegui pegar o quadro apenas em vídeo):

e o mais interessante:às vezes, nos momentos de cintilação gráfica mostra graficamente os negócios fechados do presente para o futuro, ou seja, eles estão apenas abertos por agora, mas serão fechados em algum lugar lá fora - nos bastidores

para ver tudo com seus próprios olhos, recalcular todas as barras, não apenas a última, e em cada carrapato, limpar os amortecedores antes de cada cálculo

Ah, sim, eu esqueci.

esta coisa acontece à noite

meu amigo o investigador levou todos os materiais, ele diz que é muito legal ;)

;))))

----

e agora o debate ...

 
Aleksey Vyazmikin:
Há uma hipótese de que a cintilação depende do redesenho dos objetos pelo motor terminal, ou seja, se os pontos do gráfico estiverem fora da tela visível, eles têm uma prioridade menor para renderização, que aparece durante a carga computacional no gráfico (incluindo a taxa de cotações - notei que a cintilação ocorre durante movimentos fortes e intensos).

Era claro para o cavalo, como disse Alla Yurievna. O compositor indicou a causa, embora indiretamente. A cintilação ocorre quando o terminal está sobrecarregado - isto é um fato. A sobrecarga ocorre por uma série de razões e nem sempre significa exceder a potência de computação do terminal.