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 MQL5 para Metatrader5 criamos um Expert Advisor para mostrar como codificar uma função sobrecarregada que pode assumir diferentes parâmetros…
Neste vídeo vamos falar de sobrecarga de funções, temos aqui uma saída que diz que estamos dentro de uma função com dois parâmetros e vamos criar outra função com o mesmo nome que vai sobrecarregar a primeira, por isso vamos ver como podemos fazer isso com mql5.
Para começar por favor clique num pequeno ícone aqui ou prima F4 no seu teclado, agora deve ver a janela do Metaeditor e aqui quer clicar em ficheiro, novo ficheiro, consultor especializado de modelo, continuar, chamarei a este ficheiro sobrecarga simples de função, clique em continuar, continuar e terminar.
Agora pode apagar tudo acima da função ontick e as duas linhas de comentário aqui.
Neste caso, gostaria de criar uma função personalizada chamada adicionar valores e quero poder adicionar dois ou três valores.
Para termos algo a calcular, queremos primeiro obter o preço a pedir que é feito usando o símbolo info double para o símbolo actual no gráfico, uso o símbolo underscore ask e com normalizar os dígitos double e underscore deixamos o Metatrader calcular automaticamente o número correcto de dígitos por detrás do ponto.
Agora vamos repetir o mesmo para o preço de compra, isto é igual mas desta vez estamos a usar o símbolo underscore bid e outro nome variável chamado bid e o meu terceiro valor será a diferença, que é simplesmente um valor duplo que é calculado e chamado diferença e este é o preço de compra menos o preço de compra.
Gostaria de adicionar os valores para o preço de compra e o preço de venda, por isso preciso de codificar uma função que se chama adicionar valores e esta toma como parâmetro o preço de compra e o preço de venda.
Então, o que significa isso?
Bem, pode ter visto outras funções onde tem de se passar parâmetros como esta e quando se remove a parte por detrás do nome da função, verá que aqui é algo que se chama uma de duas e esta é de facto uma função sobrecarregada, temos duas formas diferentes de a utilizar e é também o que queremos fazer aqui neste exemplo, passei dois parâmetros, por isso vamos começar com a primeira versão da função sobrecarregada.
Vou chamar a isso um valor acrescentado que devolve um valor duplo, e são necessários dois parâmetros, um para o valor de pedido que passámos aqui e o segundo para o valor de pedido que passámos como segundo parâmetro.
Vamos utilizar uma declaração impressa que sairá dentro da função com dois parâmetros no nosso diário.
Agora vem um cálculo básico onde o valor de retorno será igual ao valor de pedido mais o valor de oferta e, finalmente, devolveremos o valor calculado à nossa função principal aqui.
Vamos acrescentar aqui uma declaração de comentário para que tenhamos uma saída no gráfico dizendo que o resultado é seguido pelo valor do resultado calculado e pronto.
Agora posso compilar o código mas quando removo os parâmetros aqui só tenho uma versão da minha função, até agora não está sobrecarregada por isso vamos criar uma nova versão, este é o mesmo nome da função é o mesmo tipo de retorno mas este pode tomar três parâmetros, mais uma vez adicionamos a declaração de impressão mas desta vez dirá dentro da função com três parâmetros, desta vez calculamos o valor de retorno adicionando o primeiro, o segundo e um terceiro parâmetro e o resto é como na função acima.
Agora vamos recompilar o código e agora quando eu remover os parâmetros aqui podem ver que está sobrecarregado, podemos usar o que toma o valor de pedido e o valor de oferta ou quando clicamos na descrição sobrecarregada aqui também podemos usar o outro que tomará o valor de pedido o valor de oferta e o valor de diferença.
Bem, se não compreender o que todo o código aqui faz ou se isto foi demasiado rápido para si, talvez queira ver primeiro os outros vídeos desta série de vídeos básicos ou talvez até o curso premium no nosso website possa ser interessante para si. Se já é um membro do curso premium e se tem uma pergunta como esta que deve ser transformada num vídeo, por favor envie-me um e-mail, por enquanto, clicamos no botão de compilação e se não tivermos erros podemos clicar no pequeno botão aqui para voltar a Metatrader.
E em Metatrader, clicamos em view, teste de estratégia ou premimos control e r, escolhemos por favor o novo ficheiro função simples sobrecarregar ponto ex5, marcamos aqui a opção para o modo visível e iniciamos um teste.
Aqui vemos que temos um valor de retorno calculado e quando clicamos no separador do diário vemos que estamos dentro da função que tomará dois parâmetros, agora vamos voltar ao Metaeditor e adicionar o terceiro parâmetro aqui, agora recompilo o código, reinicio o teste e desta vez diz que estamos dentro da função com três parâmetros.
Funções sobrecarregadas podem ser muito úteis em sistemas complexos e neste pequeno vídeo aprendeu como criar uma função sobrecarregada para o Metatrader 5 e codificou-a você mesmo com algumas linhas de código mql5.