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.
Com a MQL5 podemos codificar uma função personalizada para automatizar o Metatrader. Neste vídeo, vamos criar a nossa própria função que pode devolver um valor inteiro à função principal OnTick…
Neste vídeo vamos usar MQL5 para criar uma função personalizada que duplicará um valor de contador cada vez que o preço mudar.
Para o fazer, clique no pequeno botão aqui no Metatrader ou prima F4 no seu teclado e agora deve ver a janela do Metaeditor e aqui quer clicar: „File/ New/ Expert Advisor (modelo)“ do modelo, „Continue“, eu chamarei este ficheiro: „SimpleFunction“, clique em „Continue“, „Continue“ e „Finish“ e agora pode remover tudo o que estiver acima da função „OnTick“ e vamos também apagar as duas linhas de comentário.
Começamos por criar uma variável estática para o nosso „contador“; „estática“ é algo que poderá não ter visto antes, no nosso caso usamos „estática“ para criar uma variável local que só existirá na nossa função e queremos passar a variável para outra função que será chamada: „DoubleTheValue“ (Duplicar o Valor), não existe até agora, pelo que precisamos de a criar e dentro das chaves redondas passaremos o valor do nosso „contador“ actual e depois, para termos algo no ecrã, usaremos a função „Comentar“ para emitir as palavras: „O valor do contador“ e o valor actual do „contador“, por isso quando eu compilar o código agora mesmo, vou receber um erro porque a função „DoubleTheValue“ não está definida, por isso vamos fazer isso.
Para criar uma função personalizada começa por definir o que a função vai retornar – no nosso caso a função vai retornar um valor inteiro (int) -, este é o nome da função personalizada, eu chamo-lhe: „DoubleTheValue“ (Duplicar o Valor) e aqui está o que a função vai tomar como parâmetro.
Passamos o „contador“ – é um inteiro (int) – chamo-lhe „ContraValor“ na função personalizada – não é preciso usar o mesmo nome – a nossa função precisará de duas chaves encaracoladas e quando tento compilá-lo desta vez recebemos outro erro porque a nossa função não vai devolver nada.
Portanto, vamos primeiro duplicar o valor passado a que chamámos „ContraValor“, por isso tomamos „ContraValor“, multiplicamo-lo com 2 e o resultado será armazenado numa nova variável chamada: „DoubleValue“ e agora podemos usar o operador „return“ para devolver o valor ao programa de chamada, isso é feito usando „return DoubleValue;“, por isso vamos compilar o código mais uma vez e agora não vemos aqui nenhum erro e se for esse o caso pode clicar no pequeno botão aqui ou pressionar F4 para voltar ao Metatrader.
E em Metatrader quer clicar em: „View/ Strategy Tester“ ou prima CTRL e R, por favor escolha o novo ficheiro: „SimpleFunction.ex5“, marque a opção de visualização aqui e inicie um teste e agora deverá ver o valor do contador duplicado cada vez que um novo tick entrar, por isso sempre que o preço mudar a nossa função personalizada é chamada.
Este foi um exemplo muito simples, só passámos um valor e só realizámos uma operação, mas também se podia usar o mesmo tipo de lógica para fazer coisas mais complicadas, por exemplo, podia passar por todas as posições abertas, calcular o lucro para um par de moedas e devolver o valor à função principal usando o operador „return“ e neste pequeno vídeo aprendeu como criar uma função personalizada em MQL5 e codificou-a você mesmo com algumas linhas de código MQL5.