APRENDER MQL5 TUTORIAL BASICS 73 – FILTRO DE ESPALHAMENTO 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 a MQL5 para Metatrader5 criamos um Expert Advisor que pode calcular o spread actual e permitir ou não a negociação com base no valor do spread actual

Neste vídeo, vamos criar um consultor especializado que seja capaz de permitir ou proibir o comércio com base no spread actual, por isso vamos descobrir como fazer isso com mql5.
Para começar, clique num pequeno ícone aqui ou pressione 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 filtro de spread, clicar 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 ponto de troca do ficheiro mqh. Este vem com mql5 e fornece funções de troca simplificadas. Depois, usamos a classe ctrade para criar uma instância chamada trade e vamos usar essa mais tarde para abrir novas posições.
E gostaríamos de criar uma variável de entrada definida pelo utilizador para o spread máximo permitido, esse valor pode ser alterado mais tarde sem recompilar o código.
Dentro da função on tick queremos calcular o preço pedido e o preço de oferta que é feito usando o símbolo info double para o símbolo actual no gráfico, usamos ou o símbolo ask ou o símbolo bid baseado no que queremos calcular e com a normalização dos dígitos double e underscore garantimos que calculamos o número correcto de dígitos por detrás do ponto.
Para a entrada de negociação, queremos criar uma variável de string, esta chama-se sinal, mas não atribuímos um valor aqui porque vamos calcular isso mais tarde. Precisamos de alguns dados de preços, por isso usamos taxas mql para criar uma matriz de preços.
Com a matriz definida como série, vamos ordenar a nossa matriz de preços a partir da vela actual para baixo e depois, usamos taxas de cópia para preencher a nossa matriz de preços com dados para o símbolo actual no gráfico e o período actualmente seleccionado, começamos com a vela zero e queremos copiar os valores para três velas.
Agora vamos calcular o spread actual, isto é feito usando o símbolo info integer para o símbolo actual no gráfico e usamos o símbolo underscore spread para calcular o spread actual.
Vamos criar outra variável string chamada spread filter, isto vai ser usado para o nosso filtro e se o spread actual for maior ou igual ao spread máximo que permitimos que o filtro de spread obtenha o valor, não é permitido negociar porque o spread é demasiado elevado.
Caso contrário, se o spread actual for inferior ou igual ao valor máximo que permitimos que seja quando atribuímos o valor, a negociação é permitida para o nosso filtro de spread.
Agora vamos criar algumas condições de entrada simples, neste caso, vou verificar se o preço fechado da vela um é maior do que o preço fechado da vela dois, nesse caso, quero comprar, por isso atribuímos o valor de compra ao nosso sinal. Caso contrário, se o preço de fecho da vela um for inferior ao preço de fecho da vela dois, então agora atribuímos a palavra vender ao nosso sinal, mas antes de permitirmos quaisquer posições, tornamos uma condição prévia que o filtro de spread tenha o valor, a negociação é permitida e apenas se for esse o caso, verificamos as condições de entrada. Se o sinal for igual a vender e o total das posições devolver o valor abaixo de um, isso significaria que não temos posições abertas, mas um sinal de venda e é aí que usamos trade dot sell para vender dez microlotes. No outro caso, se o sinal for igual a comprar e não tivermos posições abertas, é quando usamos trade dot buy para comprar dez microlote, mas só o fazemos se o filtro de spread for igual a trading.
Finalmente, queremos utilizar o comentário para criar uma saída para o spread actual, o spread máximo que permitimos e o filtro de spread. É 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 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. Na verdade, esta foi uma sugestão de outro membro do curso premium e se já é um membro do curso premium e tem uma ideia para um vídeo como este, por favor informe-me. Por agora, por favor clique no botão de compilação ou prima F7 no seu teclado, não deve receber nenhum erro e se for este o caso, pode clicar num pequeno botão aqui ou prima F4 para voltar a Metatrader.
E em Metatrader queremos clicar em view, testar estratégia ou carregar em control e r, por favor escolha o novo ficheiro, simples ponto de filtro de propagação ex5, marque aqui a opção do modo visual e declare o seu teste.
Aqui estamos nós! O consultor especializado está a dizer que a negociação não é permitida, por isso vamos avançar rapidamente, e aqui está a primeira negociação, o valor aqui mudou por um segundo também, vamos parar o teste, clicar nos inputs e agora mudamos o valor para dez e reiniciar o teste e não devemos ver nenhuma negociação até que o spread actual seja inferior a dez.