APRENDER O TUTORIAL BÁSICO MQL5 – 92 OBJETO DE CANAL DE DESVIO SIMPLES

Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

 

Com MQL5 para Metatrader5 criamos um objecto de Canal de Desvio que é desenhado e ajustado automaticamente como um canal de tendência directamente no nosso gráfico de Forex.

Neste vídeo, vamos criar um objecto de canal para um chamado canal de desvio. Vamos descobrir como fazer isso com MQL5.

Para começar, por favor clique no pequeno ícone aqui, ou pressione F4 no seu teclado. Agora deve ver a janela do MetaEditor, e aqui quer clicar em File, New File, Expert Advisor from Template, Continue. Vou chamar a este ficheiro SimpleDevChannel. Clique em Continuar, Continuar e Terminar. Agora pode apagar tudo o que está acima da função OnTick, e vamos também remover as duas linhas de comentário aqui.

Em primeiro lugar, queremos calcular o número de velas no gráfico. Isto pode ser feito utilizando o ChartGetInteger. Para o gráfico id zero. Usamos CHART_FIRST_VISIBLE_BAR. O último parâmetro aqui é para a sub-janela. No nosso caso, isto é subjanela zero. Essa é a janela com as velas.

Se gostar dos osciladores, sabe que estes são desenhados numa janela separada por baixo das velas. Mas, não queremos fazer isso, por isso usamos aqui o zero. Agora vamos criar uma variável para a vela mais baixa, e também precisamos de criar uma matriz para os preços baixos para cada vela. Vou chamar a esta de baixa, e como já devem ter adivinhado, também queremos criar uma variável para a vela mais alta e a matriz para os preços mais altos chamada alta.

Agora utilizamos o ArraySetAsSeries para ambas as matrizes para as ordenar a partir da vela actual para baixo. Agora vamos preencher a matriz baixa usando CopyLow para o símbolo actual no gráfico e o período actualmente seleccionado nesse gráfico. Vamos começar com a vela zero para todas as velas no gráfico e copiar os preços mais baixos para a matriz baixa.

Evidentemente, precisamos de repetir isso para os preços mais altos. Por conseguinte, utilizamos o CopyHigh. Isso dar-nos-á a todos os preços de barra mais altos para o símbolo actual no gráfico e o período actualmente seleccionado, começando com a vela zero para todas as velas no gráfico e os valores serão armazenados na matriz alta.

Para obter a vela mais baixa no gráfico, utilizamos o ArrayMinimum. Isso dar-nos-á o elemento mais baixo da matriz, e estamos à procura dele na matriz baixa, começando pelo zero da vela para todas as velas da tabela, e armazenamos o número mais baixo de velas nesta variável. Esse é o número da vela, não o valor.

Era de esperar que também precisássemos de o fazer para a vela mais alta. Desta vez usamos o ArrayMaximum, e queremos procurar dentro da gama alta, começando pela vela zero para todas as velas na carta e armazenar o resultado na variável vela mais alta.

Vamos continuar e usar MqlRates para obter toda a informação de preços que precisamos. Será criada uma matriz chamada informação sobre preços, e utilizamos o ArraySetAsSeries para também ordenar esta da vela actual para baixo.

Posteriormente, usamos CopyRates para o símbolo actual no gráfico e o período actualmente seleccionado, começando pela vela zero, que é a vela actual, para todas as velas no gráfico e armazenar o resultado na nossa matriz de informação de preços.

Vamos utilizar ObjectDelete para apagar quaisquer objectos anteriores para o símbolo actual no gráfico. Eliminará objectos chamados objecto de canal simples, e não teremos tal objecto logo na primeira vez que codificarmos a função. Mas depois, queremos ter a certeza de apagar o canal antigo antes de desenharmos um novo. Isto é feito usando o ObjectCreate.

Vamos percorrer todos os parâmetros de que precisamos. O primeiro, _Símbolo, é para o par de moedas actual. O segundo é o nome do objecto. Chamei-lhe Objecto de Canal Simples. O terceiro parâmetro é o tipo do objecto. Neste caso, estamos a utilizar o OBG_STANDARD DEVIATION CHANNEL. Se marcar isso e premir F1, verá que é apenas um dos tipos de objectos possíveis. Irá desenhar um objecto de canal de desvio padrão, mesmo no gráfico.

No parâmetro seguinte, precisamos de definir que queremos ter o objecto no gráfico da vela. Isso é o número da janela zero. Gostaria que o objecto fosse desenhado para todas as velas do gráfico. Tenho de subtrair uma vela aqui porque este é sempre um ponto no tempo, e estes são valores. Como um valor, gostaria de acrescentar a vela mais baixa e o preço mais baixo dessa vela. Este é o primeiro ponto.

O segundo ponto é o momento em que a vela zero é acesa. Vela zero é a vela actual no gráfico. E mais uma vez, passarei aqui a vela mais baixa e o preço mais baixo.

O parâmetro seguinte é para a segunda linha. Gostaria que isso fosse desenhado para todas as velas no gráfico. Mas desta vez, gostaria de passar a vela mais alta e o preço mais alto para um ponto de referência. Vamos fechar isso, e isso foi ObjectCreate. Pode-se brincar e usar outros parâmetros aqui, mas para este simples exemplo, isto é suficientemente bom.