![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
Não são chamados métodos GDI.
Refiro-me ao TextOut. Não é sistema?
Compreendo o rótulo, não o associo de forma alguma ao GDI
O texto muda em todas (metade) das etiquetas concebidas para exibir o valor do indicador e não a sua descrição. Pode ver isto ao executar o guião.
Ou não o compreendo. De que linha exactamente estamos a falar?
Desculpe, estava a olhar para o sítio errado do meu telemóvel e cometi um erro.
Farei os meus próprios testes nas próximas horas e afixarei o código fonte e resultados detalhados.
Refiro-me ao TextOut. Não é sistema?
Compreendo o rótulo, não o associo de forma alguma ao GDI
Pensei que com o GDI se tratava de etiquetas.
A modificação dos parâmetros do rótulo não é mais do que o esmagamento maciço do fluxo de comandos numa fila dedicada sem qualquer adição real desses dados a objectos reais (os objectos pertencem ao gráfico, não à MQL5), até que os dados do objecto sejam entregues ou lidos de volta. Ou seja, a modificação real dos objectos é adiada. Aplicámos propositadamente tal optimização para permitir aos programadores operar com dezenas de milhares de objectos sem lentidão.
Ou seja, quando se modifica objectos a execução real é atrasada, o que dá uma sensação de velocidade. Bem e toda a carga de desenho é transportada no fio (gráfico) da interface da aplicação. E ao renderizar, os métodos de optimização e de corte de visibilidade limitam o trabalho, o que permite trabalhar normalmente com 300 000-500 000 objectos por gráfico.
Mas quando se trabalha com bitmaps, todo o trabalho é feito em MQL5 de uma só vez, sem qualquer atraso, mas depois disso é feito instantaneamente na renderização. E o tempo total de "modificação + renderização" de um bitmap é susceptível de ser mais rápido para um determinado número de objectos. Especialmente considerando o facto de que o bitmap é salvo entre chamadas e só se pode terminar de desenhar apenas o que se precisa, em vez de reconstruir a tela inteira.
Farei testes detalhados e publicarei os resultados mostrando como os objectos e bitmaps se comportam em diferentes modos.
Colocou os resultados numa linha separada: Teste de desempenho de etiquetas e bitmaps de texto único num gráfico
O autor tinha um erro grave no seu guião de manipulação do bitmap - na realidade, utilizou dois bitmaps em vez de um e copiou-os constantemente um no outro, o que reduziu o desempenho.
Colocou os resultados do teste num fio separado: Teste de desempenho de etiquetas de texto único e bitmaps num gráfico
O autor tinha uma falha grave no seu guião quando trabalhava com bitmaps - na realidade utilizava dois bitmaps em vez de um e copiava-os constantemente um no outro, o que reduzia o desempenho.
Então a forma de acelerar a produção real é uma falha? :)
Já descrevi aqui anteriormente a finalidade para a qual a tela modelo e a tela de trabalho foram introduzidas.
Vamos viver muito tempo.
O manual da MQL5 diz o tipo de data/hora https://www.mql5.com/ru/docs/basis/types/integer/datetime:
"Gama de valores de 1 de Janeiro de 1970 a 31 de Dezembro de 3000. "
na realidade o valor máximo a 32535244799 é 3001.01.01 07:59:59
Para melhorar a pureza da programação, gostaria de perguntar ao público sobre isto.
Suponha-se que existe uma bandeira (bool Flag) declarada globalmente. Quando certos eventos/condições ocorrem, deve ser definido para um determinado valor.
A primeira variante:
Segunda opção:
Qual a opção:
1. mais rápido em termos de desempenho?
2. Se me é permitido dizê-lo, "mais profissional"?
Assume-se que esta secção do código terá controlo com bastante frequência, por exemplo, em cada carrapato.
Para melhorar a pureza da programação, gostaria de perguntar ao público sobre isto.
Suponha-se que existe uma bandeira (bool Flag) declarada globalmente. Quando ocorrem alguns eventos/condições, o seu valor deve ser definido.
Naturalmente, a primeira opção é mais rápida. Menos instruções, e também menos uma comparação/branqueamento.