![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
Você pode entender isso.
Tópico 14.3: Indicação de valores perigosos por meio da intermitência de partes de elementos (quadros, bases, texto, controles deslizantes e painéis deslizantes).
A intermitência de elementos é um excelente complemento para a indicação de cores que sinaliza a transição de parâmetros para a zona de valores perigosos. A implementação da nova solução é semelhante à anterior, mas se a indicação de cor funciona de acordo com o princípio de que quanto mais próximo o valor estiver do valor crítico, mais brilhante será a cor, o piscar só aumenta a frequência de mudança da cor inicial com a cor definida para o piscar. O usuário pode ajustar programaticamente o atraso do piscar, diminuindo-o gradualmente para 25 ms ou aumentando-o para 2,5 segundos. Nesse caso, os dois mecanismos podem ser operados simultaneamente. A cor muda de verde claro para vermelho vivo e bordô, e a velocidade do piscar aumenta. Um mecanismo não interfere no outro. A seguir, veremos exemplos práticos.
*Importante: o piscar é ativado independentemente das funções de indicação de cor. Os dois mecanismos não estão tecnicamente relacionados e podem funcionar em paralelo ou separadamente.
Para implementar a intermitência, novas propriedades foram adicionadas aos elementos interativos:
Novas propriedades adicionadas para controlar a velocidade e a parada da intermitência:
Vamos resumir o que foi dito acima:
Amanhã, passaremos aos exemplos práticos.
Hoje, apenas uma pequena demonstração para entender do que estamos falando.
Infelizmente, há atrasos durante a gravação. O processador está carregado. Mas a demonstração mostra que os elementos piscam de forma assíncrona e em velocidades diferentes. Diferentes partes dos elementos também estão piscando. Tudo isso é definido programaticamente. E a guia na barra de tarefas encontrou automaticamente o elemento que piscava mais rápido e ficou azul. Depois, quando o elemento começou a piscar com menos frequência, ele encontrou o outro elemento que piscava mais rápido e ficou vermelho.
Exploraremos isso em mais detalhes amanhã.
P.S. Também discutiremos as opções de uso desses recursos muito úteis.
Dando continuidade ao tópico de ontem...
Hoje, vamos resumir conceitualmente e concluir o tópico de intermitência de elementos.
Ontem, analisei a intermitência apenas no contexto da sinalização de valores perigosos, mas a aplicação pode ser muito mais ampla do que isso. Aqui está um exemplo:
Imaginemos um Expert Advisor de várias moedas analisando a situação de vários mercados. Suponha que ele selecione os melhores pontos de entrada/saída de acordo com um conjunto de critérios complexos. O Expert Advisor funciona em modo semiautomático e o operador não pode ou não quer programar toda a lógica da estratégia de negociação. Seu robô monitora os mercados, coleta dados e informa sobre pontos importantes. O trabalho do especialista se limita a analisar e exibir os resultados em tabelas e diagramas. A decisão final sobre as transações é tomada por uma pessoa.
Nessa variante, a atividade de negociação consiste em observar fluxos de dados em tempo real e empacotar a série de valores em execução em parâmetros personalizados. Esses últimos ajudam a dimensionar a consciência situacional.
No entanto, o envolvimento em tempo real exige decisões oportunas. O problema surge quando os resultados da análise são exibidos em diferentes janelas por meio de várias visualizações gráficas. A quantidade de informações que requerem atenção aumenta e o foco de atenção se divide. Como resultado, a perspectiva do mercado fica nublada na mente do trader e a eficiência de seu trabalho diminui. Surge a fadiga.
Nesse caso, os elementos intermitentes são uma boa ajuda:
Vamos nos concentrar em uma análise prática da nova funcionalidade:
//----------------------------------------------------------------------------------------------------------
1. Ordem das ações preparatórias:
Agora, vamos localizar o caso do botão "Start" no arquivo de API e escrever as chamadas das funções Blink_start() e Blink_stop() no evento de pressionar e pressionar o botão:
Vamos prosseguir com o preenchimento das funções com conteúdo:
1. Precisamos que o quadro do botão "Start" pisque. Vamos escrever uma chamada para piscar o quadro, conforme mostrado no código abaixo. O identificador da propriedade de piscar do quadro do botão é p1_BLINK_frame. Especifique a cor do piscar e o objeto do piscar.
2) Agora vamos implementar a desativação do piscar quando o botão for liberado. O identificador p1_BLINK_STOP é responsável por desativar o piscar . Não é necessário colocar nada entre colchetes, exceto ele.
Vamos verificar o resultado:
3. Vamos ativar a intermitência do texto do botão em vez da moldura. O identificador da propriedade pn_BLINK_text é responsável pelo piscar do texto:
Resultado: o texto do botão pisca em azul e para de piscar quando o botão é pressionado.
4. Vamos ativar a intermitência da base do botão. O identificador da propriedade pn_BLINK_base é responsável pela base:
Resultado: a base do botão pisca em vermelho e para de piscar quando pressionada.
Agora vamos combinar a intermitência da moldura do botão e de seu texto:
Resultado: Amoldura do botão e o texto do botão piscam sincronizadamente em cores diferentes, como pretendido.
5. Vamos conectar outros elementos dessa janela à intermitência:
Vamos também escrever a desativação do piscar dentro da função Blink_stop( ) :
Resultado: os novos elementos são incluídos em Blink_start() e Blink_stop() e piscam como pretendido.
6. Vamos fazer com que o quadro da janela pisque quando o botão for clicado. (Vamos desativar temporariamente o piscar de elementos atrasados).
Resultado: o quadro da janela pisca como deveria.
*Importante: todos os elementos considerados e o quadro da janela piscaram na velocidade padrão.
Mais adiante, regularemos a velocidade de piscar dos elementos com a alça do controle deslizante e o campo com botões.
7. Vamos vincular a velocidade de piscar ao valor no campo com botões e controle deslizante. Todos os elementos e a moldura da janela piscarão simultaneamente, e a velocidade de piscar será definida manualmente por esses elementos.
Gostaria de lembrá-lo de que a velocidade de piscada depende do atraso pn_BLINK_DELAY.
Para resolver o problema, vamos fazer o seguinte:
A dicionamos o piscar do quadro da janela dentro da função Blink_start(): .
Adicionamos a desativação do piscar do quadro da janela dentro da função Blink_stop():
Escrevendo a função Blink_delay():
Chame a função Blink_delay() no evento do controle deslizante e dos elementos do campo de entrada e passe o valor atual dos elementos para ela:
*Nota importante: verificou-se que é impossível alterar a velocidade de piscada dos elementos da caixa de seleção e da lista suspensa. Essa velocidade é sempre igual a 20 (meio segundo). Isso foi feito intencionalmente, mas provavelmente mudarei isso no futuro. Os outros elementos podem alterar a velocidade de intermitência.
Vamos escrever uma chamada para a função Blink_delay() a partir do evento do elemento "Spin_the_value" (o campo com botões). O campo está conectado ao controle deslizante, portanto, não há necessidade de colocar a chamada no caso do controle deslizante. A conexão funcionará e o controle deslizante, sem uma chamada direta, alterará a velocidade de piscar por meio do campo com botões:
Resultado: o campo com botões e o controle deslizante alteram a taxa de intermitência dos elementos na janela.
Resultados:
Considero esse tópico esgotado.
Próximo item da lista - cancelamento dos valores inseridos pressionando o botão "Cancel".