Características da linguagem mql5, subtilezas e técnicas - página 165
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Sim, tenho presente a leitura da história.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
Bibliotecas: Easy Canvas
Nikolai Semko, 2020.02.17 05:15
Quero esclarecer um ponto importante para os programadores interessados quando operam o kanvas em modo de teste.
Um conhecido programador desta comunidade veio ter comigo com esta pergunta:
- Porque é que no modo testador o meu painel, criado em objectos, é redesenhado muito mais rapidamente do que em tela, enquanto no modo normal o meu painel é desenhado à velocidade normal em tela?
Compreendi a razão para isso e encontrei a solução para o problema.
O problema é que o redesenho de objectos vai junto com o redesenho de todo o ecrã, enquanto que o ecrã no testador não é redesenhado com mais frequência do que 30 fotogramas por segundo.
Os objectos são em última análise a mesma tela (interna), mas quando se alteram as propriedades do objecto, a tela do objecto não é gerada (não recalculada), mas gerada apenas quando a tela é actualizada (ChartRedraw), o que ocorre no testador (e no modo normal, também) não mais frequentemente do que o nosso olho consegue distinguir as alterações, ou seja, não mais frequentemente do que ~ 32 quadros por segundo.
Suponhamos que o painel muda cada vez que se faz um clique. Então a tela predefinida será também redesenhada a cada tick, mas o redesenho no testador ainda não é mais frequente que ~30 msec (~30 fps).
Por outras palavras, a tela será recalculada muito mais vezes do que é realmente apresentada no ecrã, o que resulta numa utilização desproporcionada de recursos.
A solução para este problema seria assegurar que a tela seja recalculada e redesenhada não mais frequentemente do que a cada 15-30 milissegundos de tempo de computador, e então não haverá ciclos desnecessários de recálculo vazio.
Por exemplo, como este:
Se, por exemplo, eu quiser criar o ficheiro "EURUSD.txt" (símbolos grandes) e já houver "eurusd.txt" (símbolos pequenos) no disco, o ficheiro terá o mesmo nome que antes.
Além disso, quando eu salvo EURUSD TicksLongOpt.set, eurusd tickslongopt.set é salvo. Tenho de lhe dar um novo nome depois. Há muitas pequenas coisas irritantes como essa.
Além disso, quando eu salvo EURUSD TicksLongOpt.set, eurusd tickslongopt.set é salvo. Tenho de lhe dar um novo nome depois. Tenho de lhe dar um novo nome depois. Há muitas pequenas coisas tão irritantes.
Penso que se eu apagar primeiro e depois criar, tudo ficará bem.
Penso que se apagar primeiro e depois criar, ficará bem.
Não, estou a falar da criação de um novo ficheiro, especificamente ao salvar a partir do diálogo do terminal. Se não funcionar para todos, então depende de outra coisa qualquer. Eu tenho Win7, se alguma coisa.
Não, refiro-me à criação de um novo ficheiro, exactamente quando se guarda a partir do diálogo do terminal. Se não funcionar para todos, então depende de outra coisa qualquer. Eu tenho Win7, se alguma coisa.
Referia-me às funções FileOpen e FileSave.
Referia-me às funções FileOpen e FileSave.
Sim, acabei de me aperceber agora que está deslocado, o tema é sobre a língua...
Fácil classificação de uma série de estruturas
Aplicação
Resultado
Não funciona, pode actualizá-lo ? Não são permitidos modelos de declarações nas classes locais TestarrSort.mq5 81 3
Não funciona, pode actualizar ? Não são permitidos modelos de declarações escritas nas classes locais TestarrSort.mq5 81 3
Infelizmente, a língua foi cortada. Este código não funciona.
Mas pode tentar uma variante alternativa.
SZZ Aqui está outro exemplo de utilização.