Lentidão Extrema na formação de Candles

 

Pessoal, boa noite.

Tenho um template que uso no meu dia a dia. Quando tenho ele carregador em duas janelas, tudo funciona aparentemente bem. Mas se abro, 3 janelas para cada ativo (colocando os ativos em fractais de 5, 15 e 60), totalizando 6 janelas gráficas. Cada janela com 6 indicadores que uso no dia a dia, sendo um pra calcular a volatilidade (apenas calcula ATR e exibe na tela com Text), tem hora que os candles começam a ser desenhados em câmera lenta. Você vê a linha do último negocio lá em baixo ou lá em cima, sem acompanhar a formação do candle. Alguém já passou por isso? O metatrader é tão ruim assim de performance? Não é a máquina, porque enquanto o metatrader está aberto, funcionando em câmera lenta, consigo fazer várias outras tarefas na máquina normalmente, sem nenhum gargalo.

Será que existe alguma maneira de descobrir o que está acontecendo de errado?

Atenciosamente,

 
Aprendiz de Trader:

Pessoal, boa noite.

Tenho um template que uso no meu dia a dia. Quando tenho ele carregador em duas janelas, tudo funciona aparentemente bem. Mas se abro, 3 janelas para cada ativo (colocando os ativos em fractais de 5, 15 e 60), totalizando 6 janelas gráficas. Cada janela com 6 indicadores que uso no dia a dia, sendo um pra calcular a volatilidade (apenas calcula ATR e exibe na tela com Text), tem hora que os candles começam a ser desenhados em câmera lenta. Você vê a linha do último negocio lá em baixo ou lá em cima, sem acompanhar a formação do candle. Alguém já passou por isso? O metatrader é tão ruim assim de performance? Não é a máquina, porque enquanto o metatrader está aberto, funcionando em câmera lenta, consigo fazer várias outras tarefas na máquina normalmente, sem nenhum gargalo.

Será que existe alguma maneira de descobrir o que está acontecendo de errado?

Atenciosamente,

Bom dia, 

faça o seguinte teste, remova todos os indicadores e veja se volta ao normal, se voltar vai adicionando um por vez, até encontrar o indicador que está consumindo o desempenho da plataforma.

Desta forma que você falou que está lento, eu acredito que seja de algum indicador personalizado causando isso.

 
Aprendiz de Trader:

Pessoal, boa noite.

Tenho um template que uso no meu dia a dia. Quando tenho ele carregador em duas janelas, tudo funciona aparentemente bem. Mas se abro, 3 janelas para cada ativo (colocando os ativos em fractais de 5, 15 e 60), totalizando 6 janelas gráficas. Cada janela com 6 indicadores que uso no dia a dia, sendo um pra calcular a volatilidade (apenas calcula ATR e exibe na tela com Text), tem hora que os candles começam a ser desenhados em câmera lenta. Você vê a linha do último negocio lá em baixo ou lá em cima, sem acompanhar a formação do candle. Alguém já passou por isso? O metatrader é tão ruim assim de performance? Não é a máquina, porque enquanto o metatrader está aberto, funcionando em câmera lenta, consigo fazer várias outras tarefas na máquina normalmente, sem nenhum gargalo.

Será que existe alguma maneira de descobrir o que está acontecendo de errado?

Atenciosamente,

Não é o metatrader é seu ferramental ai que esta implementado errado. Será que esse indicador que calcula "ATR" não estaria passando por todo o histórico a cada nova informação recebida? Será que ele não estaria fazendo coisas além do previsto? O desenho em texto será que esta sendo somente um objeto texto ou será que ele vai colocando objetos na tela com nomes aleatorios (isso chega inclusive a derrubar o testador por falta de memoria)? Será que ao inves de alterar a propriedade, ele não estaria removendo e re-criando o objeto de texto?

Em suma, tem várias possibilidades que podem ocorrer para a performance estar ruim desse jeito e a principal é do que esta sendo executado. Veja no link https://www.mql5.com/en/docs/runtime/running . Coloquei o link em ingles porque fica mais claro de entender, vamos lá:

  • Serviço/Script/Expert Advisor -> Tarefas separadas e o número de tarefas corresponde ao total de serviços.
  • Indicadores -> Uma tarefa para todos os indicadores em um simbolo. O numero de tarefas é igual ao número de simbolos com indicadores.

Note que:

  • Serviço/Script/Expert Advisor -> Não podem quebrar o metatrader.
  • Expert Advisor -> PODE e, provavelmente, VAI perder TICKS se a analise for lenta.
  • Indicador -> Se tivermos um loop infinito ou lento em um num determinado grafico, TODA a renderização vai parar ou ficar lenta.
Se voce customizou seu indicador que faz isso e quiser que a gente olhe e comente para dar opinião do que alterar para otimizar, pode postar seu código também. Só lembre de fazer isso usando as tags de código.
Documentação sobre MQL5: Programas MQL5 / Execução de Programa
Documentação sobre MQL5: Programas MQL5 / Execução de Programa
  • www.mql5.com
Execução de Programa - Programas MQL5 - Referência MQL5 - Referência sobre algorítimo/automatização de negociação na linguagem para MetaTrader 5
 
Ricardo Rodrigues Lucca #:

Não é o metatrader é seu ferramental ai que esta implementado errado. Será que esse indicador que calcula "ATR" não estaria passando por todo o histórico a cada nova informação recebida? Será que ele não estaria fazendo coisas além do previsto? O desenho em texto será que esta sendo somente um objeto texto ou será que ele vai colocando objetos na tela com nomes aleatorios (isso chega inclusive a derrubar o testador por falta de memoria)? Será que ao inves de alterar a propriedade, ele não estaria removendo e re-criando o objeto de texto?

Em suma, tem várias possibilidades que podem ocorrer para a performance estar ruim desse jeito e a principal é do que esta sendo executado. Veja no link https://www.mql5.com/en/docs/runtime/running . Coloquei o link em ingles porque fica mais claro de entender, vamos lá:

  • Serviço/Script/Expert Advisor -> Tarefas separadas e o número de tarefas corresponde ao total de serviços.
  • Indicadores -> Uma tarefa para todos os indicadores em um simbolo. O numero de tarefas é igual ao número de simbolos com indicadores.

Note que:

  • Serviço/Script/Expert Advisor -> Não podem quebrar o metatrader.
  • Expert Advisor -> PODE e, provavelmente, VAI perder TICKS se a analise for lenta.
  • Indicador -> Se tivermos um loop infinito ou lento em um num determinado grafico, TODA a renderização vai parar ou ficar lenta.
Se voce customizou seu indicador que faz isso e quiser que a gente olhe e comente para dar opinião do que alterar para otimizar, pode postar seu código também. Só lembre de fazer isso usando as tags de código.

Todos os indicadores foram baixados do site do metatrader. Nenhum customizado ou personalizado.

Um dos indicadores que uso e acho muito bom é esse: https://www.mql5.com/en/code/viewcode/34953/262723/volatilty_alarm.mq5, pra dar uma noção de grandeza dos movimentos.

 
Aprendiz de Trader #:

Todos os indicadores foram baixados do site do metatrader. Nenhum customizado ou personalizado.

Um dos indicadores que uso e acho muito bom é esse: https://www.mql5.com/en/code/viewcode/34953/262723/volatilty_alarm.mq5, pra dar uma noção de grandeza dos movimentos.

faça o teste tente remove-los um a um para ver se volta a renderização ao normal

 
Gustavo Barbeiro Alonso #:

Bom dia, 

faça o seguinte teste, remova todos os indicadores e veja se volta ao normal, se voltar vai adicionando um por vez, até encontrar o indicador que está consumindo o desempenho da plataforma.

Desta forma que você falou que está lento, eu acredito que seja de algum indicador personalizado causando isso.

Eu fiz esse teste. Quando tem 3-4 janelas com 3 ativos diferentes, não tem problema. Se eu colocar o mesmo ativo com os indicadores, em tempos graficos diferentes (fractais), ai começa dar o problema. (pelo que percebi).

 
Aprendiz de Trader #:

Todos os indicadores foram baixados do site do metatrader. Nenhum customizado ou personalizado.

Um dos indicadores que uso e acho muito bom é esse: https://www.mql5.com/en/code/viewcode/34953/262723/volatilty_alarm.mq5, pra dar uma noção de grandeza dos movimentos.

Entendi, mas esse é um feito por um usuário. Eu não culparia ele, mas se olhar no OnCalculate, tu poderia restringir a copia dos dados do outro timeframe já que tu tem a parte de limit pra baixo. Mas, isso não quer dizer que seria relevante pra travar (pode ser, mas eu não acho que seria).
Aprendiz de Trader #:

Eu fiz esse teste. Quando tem 3-4 janelas com 3 ativos diferentes, não tem problema. Se eu colocar o mesmo ativo com os indicadores, em tempos graficos diferentes (fractais), ai começa dar o problema. (pelo que percebi).

O ideal seria tentar identificar qual que é o indicador com baixa performance e dai tentar substitui-lo ou otimiza-lo.


Outro ponto que pode ti ajudar, como alguns desses indicadores podem passar por todas as velas por má programação voce pode restringir em opções a quantidade de historico como 5000 ou 1000. Isso inclusive ajuda a não baixar tantas velas que a gente nem olha no EURUSD tem as vezes que o historico vai ate antes de 1980!

 
Ricardo Rodrigues Lucca #:
Entendi, mas esse é um feito por um usuário. Eu não culparia ele, mas se olhar no OnCalculate, tu poderia restringir a copia dos dados do outro timeframe já que tu tem a parte de limit pra baixo. Mas, isso não quer dizer que seria relevante pra travar (pode ser, mas eu não acho que seria).

O ideal seria tentar identificar qual que é o indicador com baixa performance e dai tentar substitui-lo ou otimiza-lo.


Outro ponto que pode ti ajudar, como alguns desses indicadores podem passar por todas as velas por má programação voce pode restringir em opções a quantidade de historico como 5000 ou 1000. Isso inclusive ajuda a não baixar tantas velas que a gente nem olha no EURUSD tem as vezes que o historico vai ate antes de 1980!

Olá Ricardo, ainda estou no sofrimento aqui. Eu já tinha limitado o mt5 para 5000 velas. Foi uma das primeiras coisas que fiz pra tentar amenizar o problema.

Se tivesse alguma forma de medir o desempenho dos indicadores e saber o que gera ou não gargalo, seria muito interessante.

 
Aprendiz de Trader #:

Olá Ricardo, ainda estou no sofrimento aqui. Eu já tinha limitado o mt5 para 5000 velas. Foi uma das primeiras coisas que fiz pra tentar amenizar o problema.

Se tivesse alguma forma de medir o desempenho dos indicadores e saber o que gera ou não gargalo, seria muito interessante.

Entendi, se tu fizesse o teste que o colega falou deveria dar pra perceber tu abre as janelas com tudo. Dai em todas tu tira o mesmo indicador, se não melhorou tu recarrega o template e tira outro indicador e vai indo até fechar um que da problema. Mas, como eu acho que disse antes aqui eu iniciaria desconfiando de indicadores que mexem com volume ou com o livro.
 
Aprendiz de Trader:

Pessoal, boa noite.

Tenho um template que uso no meu dia a dia. Quando tenho ele carregador em duas janelas, tudo funciona aparentemente bem. Mas se abro, 3 janelas para cada ativo (colocando os ativos em fractais de 5, 15 e 60), totalizando 6 janelas gráficas. Cada janela com 6 indicadores que uso no dia a dia, sendo um pra calcular a volatilidade (apenas calcula ATR e exibe na tela com Text), tem hora que os candles começam a ser desenhados em câmera lenta. Você vê a linha do último negocio lá em baixo ou lá em cima, sem acompanhar a formação do candle. Alguém já passou por isso? O metatrader é tão ruim assim de performance? Não é a máquina, porque enquanto o metatrader está aberto, funcionando em câmera lenta, consigo fazer várias outras tarefas na máquina normalmente, sem nenhum gargalo.

Será que existe alguma maneira de descobrir o que está acontecendo de errado?

Atenciosamente,

F2 chama o Gerenciado de Tarefas do MT5 , pode te dar uma ideia, vc pode colocar os indicadores e ir medindo..

 

Mateus, eu não conhecia esse gerenciador de tarefas do MT5. Obrigado.

Aparentemente é o Volatility Alarm. Será que alguém poderia dizer o que tem de errado nele?

Razão: