Caros, fiz o codigo do indicador abaixo, cujo objetivo é mostrar um valor teorico para o minidince (WINFUT) em funcão da variacao do minidolar (WDOFUT). O racional é: se o WDOFUT está caido 0.5% eu inverto o sinal dessa queda e considero que o WINFUT deveria estar subindo 0.5%. Ele funciona corretamente, mas deixa o grafico lento. Alguem poderia dar uma olhada e ver se encontra o problema que está deixando pesado (lentidao no grafico) ?
Roda ele no profile dentro do editor do mql5 para saber o que pode estar pesando. Ele diz o tempo e quantidade de vezes que algo foi chamado.
Olhando por cima como fica fazendo essas passadas e sempre descobrindo a abertura do dia atual via manipulação de string + iBarShift + iOpen. Esse seria um ponto que começaria vendo de melhorar para fazer isso somente uma vez no dia e depois pegar de algum lugar ja salvo.
Outro ponto, se vai ficar pegando 400 fechamentos, voce pode solicitar isso em uma unica vez ao inves de picadinho. Existe tanto funcoes como CopyTime e CopyClose como CopyRates para se quiser pegar todos os dados basicos em uma tacada.
Roda ele no profile dentro do editor do mql5 para saber o que pode estar pesando. Ele diz o tempo e quantidade de vezes que algo foi chamado.
Olhando por cima como fica fazendo essas passadas e sempre descobrindo a abertura do dia atual via manipulação de string + iBarShift + iOpen. Esse seria um ponto que começaria vendo de melhorar para fazer isso somente uma vez no dia e depois pegar de algum lugar ja salvo.
Outro ponto, se vai ficar pegando 400 fechamentos, voce pode solicitar isso em uma unica vez ao inves de picadinho. Existe tanto funcoes como CopyTime e CopyClose como CopyRates para se quiser pegar todos os dados basicos em uma tacada.
Opa, obrigado pelas sugestoes. Nao conheco esse profile que vc sugeriu? Como vejo documentação disso?
Outra ideia que tive é tentar diminuir a frequencia de chamadas do codigo. O onCalculate é chamado mais de 4 mil vezes por minuto na parte da manhã, eu nao preciso dessa frequencia toda. Voce sabe como reduzir a frequencia de chamadas?
Roda ele no profile dentro do editor do mql5 para saber o que pode estar pesando. Ele diz o tempo e quantidade de vezes que algo foi chamado.
Olhando por cima como fica fazendo essas passadas e sempre descobrindo a abertura do dia atual via manipulação de string + iBarShift + iOpen. Esse seria um ponto que começaria vendo de melhorar para fazer isso somente uma vez no dia e depois pegar de algum lugar ja salvo.
Outro ponto, se vai ficar pegando 400 fechamentos, voce pode solicitar isso em uma unica vez ao inves de picadinho. Existe tanto funcoes como CopyTime e CopyClose como CopyRates para se quiser pegar todos os dados basicos em uma tacada.
sempre usei mais EAs, recentemente comecei usar indicadores.. Vc saberia dizer se da pra rodar o indicador com base na funcao onTimer() ao inves da oncalculate?... Estou francamente pensando em plotar o grafico que quero usando objetos dentro de um EA
Opa, obrigado pelas sugestoes. Nao conheco esse profile que vc sugeriu? Como vejo documentação disso?
Outra ideia que tive é tentar diminuir a frequencia de chamadas do codigo. O onCalculate é chamado mais de 4 mil vezes por minuto na parte da manhã, eu nao preciso dessa frequencia toda. Voce sabe como reduzir a frequencia de chamadas?
https://www.metatrader5.com/pt/metaeditor/help/development/profiling
- www.metatrader5.com
sempre usei mais EAs, recentemente comecei usar indicadores.. Vc saberia dizer se da pra rodar o indicador com base na funcao onTimer() ao inves da oncalculate?... Estou francamente pensando em plotar o grafico que quero usando objetos dentro de um EA
Da sim, mas isso causa problemas quando tenta utilizar o indicador "carregado" em outro ou em um EA. Isso se deve ao programa só poder ter um onTimer(), se voce usar um onTimer() no EA e tiver no seu indicador uma dependencia do onTimer(), o codigo do indicador não vai rodar pelo que lembro. Claro que isso não impede de em um EA, tu solicitar acesso ao indicador na tela X, subjanela Y e pegar os dados corretamente. Mas dai ficaria "solto" o que as vezes eh um problema maior...
- 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
Caros, fiz o codigo do indicador abaixo, cujo objetivo é mostrar um valor teorico para o minidince (WINFUT) em funcão da variacao do minidolar (WDOFUT). O racional é: se o WDOFUT está caido 0.5% eu inverto o sinal dessa queda e considero que o WINFUT deveria estar subindo 0.5%. Ele funciona corretamente, mas deixa o grafico lento. Alguem poderia dar uma olhada e ver se encontra o problema que está deixando pesado (lentidao no grafico) ?