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.
If you accept this notice, your choice will be saved and the page will refresh.
Neste vídeo vamos criar um Expert Advisor que é capaz de calcular e comercializar variáveis personalizadas definidas pelo utilizador para o Oscilador Awesome por Bill Williams.
Neste vídeo, vamos criar um consultor especializado que é capaz de trocar o incrível indicador com o valor de compra e venda definido pelo utilizador, por isso vamos descobrir como fazer isso com mql5.
Para começar, clique aqui neste pequeno símbolo ou prima a tecla F4 no seu teclado, agora deve ver a janela do Metaeditor e aqui quer clicar em ficheiro, novo ficheiro, consultor especializado de modelo, continuar, vou chamar a este ficheiro simples indicador espectacular, clique em continuar, continuar e terminar.
Agora pode apagar tudo acima da função ontick e as duas linhas de comentário aqui.
Começamos com uma declaração para incluir o ficheiro trade dot mqh, este vem com mql5 e dar-nos-á a capacidade de utilizar funções de comércio simplificadas. Para tal, criamos uma instância da classe ctrade, a isto chama-se comércio.
No passo seguinte, vamos criar um modificador de entrada para uma variável de flutuação, a variável será chamada valor de sinal e este é o valor que vamos usar para comprar e vender trocas, podemos modificá-lo mais tarde nas definições do consultor especializado sem recompilação.
Dentro da função on tick precisamos de calcular o preço de pedido e o preço de oferta, isto é feito usando o símbolo info double para o símbolo actual no gráfico ou usamos o símbolo underscore ask ou um símbolo underscore bid e com normalizar dígitos double e underscore podemos calcular automaticamente o número correcto de dígitos atrás do ponto.
Agora vamos criar uma string vazia para o sinal mas não vamos atribuir nenhum valor aqui porque isso precisa de ser calculado.
No passo seguinte, utilizamos mqlrates para obter alguma informação sobre preços porque o mqlrates armazena a informação sobre preços, volumes e spread.
Vamos ordenar a matriz de informação sobre preços para baixo, utilizando a matriz definida como série, e agora usamos taxas de cópia para copiar alguns dados para o símbolo actual e o período actualmente seleccionado, começando a partir da vela zero para três velas e armazenando-a na matriz de informação sobre preços.
Precisamos de um segundo array para os valores do indicador, chamemos esse array de preços e utilizamos a função incluída iao que vem com mql5 para obter a fantástica definição do oscilador para o símbolo actual no gráfico e o período actualmente seleccionado nesse gráfico.
Agora vamos usar a matriz definida como série também para esta matriz de preços e agora podemos usar o buffer de cópia para preencher a nossa matriz de preços de acordo com a fantástica definição do oscilador que criámos aqui, fazemo-lo para o buffer zero, começamos com a vela zero – que é a vela actual – e armazenamos a informação de preços para três velas na nossa matriz de preços.
Agora vamos obter o valor actual do oscilador fantástico que é feito ao olhar para o valor da vela zero dentro da nossa matriz de preços e eu uso normalizar o dobro e quero ter seis dígitos e isso porque isto é também o que vemos aqui no valor original do oscilador, por isso vamos descobrir se temos um sinal de compra que seria o caso se o valor actual do oscilador fantástico fosse maior do que o valor do sinal que definimos aqui e se este é o caso, consideramos que é um sinal de compra, por isso agora atribuímos a palavra comprar ao nosso sinal. No outro caso, se o valor espectacular do oscilador for inferior a zero menos o valor do sinal, então esta expressão vai dar-nos o valor negativo e se o valor actual do oscilador espectacular for inferior a esse valor, consideraremos que se trata de um sinal de venda e agora atribuímos a palavra vender ao nosso sinal.
E se o sinal for igual a vender e não tivermos ordens em aberto – esse seria o caso quando o valor de retorno para o total de posições é inferior a um – usamos trade dot sell para vender dez microlote. No outro caso, se o sinal for igual a comprar e também não tivermos nenhuma posição aberta, usamos trade dot buy e compramos dez microlote.
Finalmente, usamos a declaração de comentários para criar uma saída no gráfico. Para o sinal actual usamos o dobro para o valor do oscilador actual, caso contrário, veríamos valores exponenciais no gráfico e abaixo que veremos também o valor do sinal actual para o sinal de compra e venda.
É mais ou menos isso.
Se isto foi demasiado rápido para si ou se não tem ideia do que todo o código aqui faz, talvez queira ver primeiro um dos outros vídeos desta série básica de vídeos ou talvez até o curso premium no nosso website possa ser interessante para si, por agora, por favor clique no botão de compilação ou prima F7, não deve receber nenhum erro aqui e se for este o caso pode clicar num pequeno botão aqui ou prima F4 para voltar a Metatrader.
E em Metatrader, clicamos em view, testador de estratégia ou premimos controlo e r, escolhemos por favor o novo ficheiro, simples ponto indicador ex5, marcamos aqui a opção para o modo visual e iniciamos um teste.