Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
Clock - biblioteca para MetaTrader 5
- Visualizações:
- 3681
- Avaliação:
- Publicado:
- 2018.02.05 07:34
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Biblioteca (Clock.mqh) ajuda a criar relógios analógicos na forma de recursos gráficos.
Recursos
No seguinte código fonte, é mostrado como se usa a biblioteca:
// MQL4&5-code // Exemplo de um EA multiplataforma que cria o relógio analógico, no gráfico #property strict #include <fxsaber\Clock.mqh> // https://www.mql5.com/pt/code/19388 const string ObjName = __FILE__; // Nome do objeto Bitmap para exibir o relógio const string ResourceName = "::" + ObjName; // Nome do recurso em que será formado o relógio // Criamos o relógio a partir das configurações do arquivo .ini correspondente CLOCK Clock("Clocks\\Clock01\\Clock01.INI", ResourceName); void OnINIt() { // Criamos o objeto gráfico para exibir o relógio ObjectCreate(0, ObjName, OBJ_BITMAP_LABEL, 0, 0, 0); // Mostramos-lhe o nome do recurso em que se encontra o relógio ObjectSetString(0, ObjName, OBJPROP_BMPFILE, 0, ResourceName); // Adicionamos a capacidade de selecionar o objeto para mover o mouse ObjectSetInteger(0, ObjName, OBJPROP_SELECTABLE, true); // Ativamos o temporizador dos segundos para atualizar o relógio EventSetTimer(1); } void OnTimer() { // Definimos a hora atual no relógio Clock.SetTime(TimeLocal()); // Redesenhamos o gráfico para as mudanças se tornarem visíveis imediatamente ChartRedraw(); }
Depois de iniciar, no gráfico, aparece o seguinte relógio em andamento:
Indicador
Para usar imediatamente, anexado o indicador multiplataforma Clock.mq5.
Nele, é implementada a troca interativa de "skins" - variações no relógio (descompacte o arquivo ZIP) são alternadas usando as teclas PARA CIMA/PARA BAIXO, no teclado.
Características
- Relógio bitmap (não vetorial);
- As rotações dos ponteiros do relógio são feitas sem suavização;
- A biblioteca funciona no MetaTrader 4/5.
Formação do relógio
O relógio original do exemplo foi tomado da Internet buscando relógios flash (existem arquivos swf no ZIP). Ele é conveniente na medida em que vem sob a forma de relógio analógico, ponteiros, etc. Mas, pode-se, naturalmente, utilizar quaisquer outras fontes. Por exemplo, arquivos vectoriais prontos da Web. Ou desenhar você sozinho.
Os arquivos .ini (ver exemplos) definem as configurações de formação do relógio em camadas. As configurações são editadas em qualquer editor de texto e têm a aparência a seguir
ImageName = ClockFace.bmp BoundX = 0 // coordenada X do ponto zero na imagem bmp (camada) BoundY = 0 // coordenada Y do ponto zero na imagem bmp (camada) X = 0 // coordenada X do ponto zero dentro da imagem formada (das camadas) Y = 0 // coordenada y do ponto zero dentro da imagem formada (das camadas) Rotate = 0 // velocidade de rotação A = 100% // Qual parte do canal Alpha é utilizada R = 100% // Qual parte do canal Redé utilizada G = 100% // Qual parte do canal Green é utilizado B = 100% // Qual parte do canal Blue é utilizado
Quanto mais abaixo a descrição da camada, no arquivo de configurações, mais acima está ele do anteriormente descrito. Não há restrições especiais sobre o número de camadas.
Devido a esta construção de imagens, a biblioteca pode ser usada para formar não só um relógio, mas também outros objetos estáticos/dinâmicos. Para um relógio dinâmico, basta ter a possibilidade de definir apenas a rotação. Mas, ao código podem ser adicionados outros movimentos (deslocamento, escala, etc.) usando apenas algumas linhas. Aqui, o código-fonte é apenas um exemplo simples de realização de esta abordagem, na descrição de imagens.
Voltando para o tema do relógio, devido ao trabalho original em camadas (considerado no relógio flash), são implementadas sombras de ponteiros e o destaque.
Se você quer fazer, por exemplo, um relógio analógico transparente, basta definir, no arquivo .ini correspondente, um canal Alpha inferior a 100%, obtendo os seguintes resultados:
No momento da publicação, no Mercado, o relógio analógico era praticamente ausente. No CodeBase apareceu esta variação.
Do original, na biblioteca, é escrita apenas a função LAYER::Rotate, que responde pela rotação. Talvez esta função incentive a criação de soluções de terceiros com base em recursos gráficos dinâmicos, como aconteceu com o primeiro relógio.
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/19388
EA baseado na estratégia de Bill Williams'.
KI_signals_v2Indicador que recebe sinais de negociação a partir do histograma XMACD.
Advisor que monitora as posições de todos os símbolos e todos os mágicos. Caso seja aberta a posição "Waiting for seconds" e seu lucro - "Take Profit" pontos, fecha as posições. Caso o lucro não atinja "Take Profit" pontos, transfere o nível de take profit.
DtmOscilador em estilo DRAW_FILLING usando filtros digitais.