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 para Metatrader 5 criamos um Expert Advisor para fechar uma parte de uma posição de compra aberta. O fecho parcial de uma posição pode ser automatizado em menos de 7 minutos com este código.
Neste vídeo queremos saber como modificar uma posição existente, no nosso caso temos aqui uma posição de dez microlotes, é uma posição de compra e assim que a equidade for maior que o saldo o tamanho da posição será reduzido.
Vamos acelerar um pouco este processo, e agora deve ver que este volume vai diminuir, por isso vamos descobrir como codificar isso em mql5.
Para o fazer clique no pequeno botão aqui ou prima F4 no seu teclado, agora deve ver a janela do Metaeditor e aqui quer clicar no ficheiro, novo, consultor especializado do modelo, continuar, vou chamar a este ficheiro simples modificador de posição de compra, clique em continuar, continuar e terminar.
Agora podemos apagar tudo o que está acima da função de tick e as duas linhas de comentário aqui.
Primeiro, precisamos de utilizar a declaração de inclusão para o ficheiro trade dot mqh que vem com mql5, usamo-lo para criar uma instância da classe ctrade que será chamada trade, primeiro, precisamos de obter o preço de pedido porque vamos utilizar posições de compra de teste.
Para calcular o preço de venda usamos o símbolo info double para o símbolo actual no gráfico, usamos o símbolo underscore ask e com normalizar os dígitos double e underscore queremos calcular automaticamente o número correcto de dígitos por detrás do ponto.
Agora usamos o total de posições para calcular se não tivermos posições abertas, esse seria o caso se o valor de retorno for zero e se for esse o caso, usamos trade dot buy para abrir uma posição de compra de teste, o tamanho da posição será dez microlotes e depois queremos usar uma nova função chamada change position size e passamos o preço pedido como parâmetro aqui, usamos void porque não precisamos de devolver nenhum valor, o nome é change position size, e este é o parâmetro que passámos aqui.
Primeiro calculamos o saldo que é feito usando o dobro de informação de conta, o parâmetro é saldo de conta sublinhado – tudo em maiúsculas – também queremos calcular o capital próprio, isto é feito com o dobro de informação de conta e o parâmetro capital próprio da conta – também em maiúsculas – agora usamos um para loop para percorrer todas as posições abertas, queremos obter o símbolo da posição que é feito usando o símbolo de posição obter símbolo para a posição actual no loop e agora comparamo-lo com o símbolo no gráfico e se o símbolo no gráfico e o símbolo do par de moedas forem iguais, precisamos de obter algumas coisas; a primeira é o bilhete de posição, obtemos o bilhete usando a posição get integer e o parâmetro aqui é bilhete de posição underscore, queremos obter a direcção da posição, a direcção da posição pode ser calculada usando a posição get integer, tipo de posição – esta também está em letras maiúsculas – e se a direcção da posição for igual ao tipo de posição buy, isso significa que temos uma posição buy, por isso vamos verificar se a equidade está dez pontos acima do saldo actual e quando todas essas condições forem verdadeiras usamos a posição trade dot position close partial para o bilhete de posição actual, queremos fechar um microlote cada vez que chamamos a esta função.
Para a tolerância que poderia definir alguns pontos aqui, usamos menos um e finalmente precisamos de fechar o se loop, o for loop e a função, e é tudo.
Se não sabe o que o código aqui faz ou se foi demasiado rápido para si, talvez queira ver primeiro os outros vídeos desta série básica ou talvez até o curso premium seja interessante para si, por agora clicamos no botão de compilação ou premimos F7, não temos erros, por isso agora podemos clicar aqui ou premir F4 para voltar a Metatrader.
Em Metatrader clicamos em View, Strategy Tester ou Press Control e r, aqui surge o novo assistente de teste de estratégia, seleccionamos „Run single test on an Expert Advisor“, vamos seleccionar o novo ficheiro: simples buy position modifier dot ex5, também precisamos de activar o modo visual aqui e iniciar um teste.
Aqui está a nossa posição de teste, temos uma posição de teste de dez microlotes e assim que o preço cruza a linha verde aqui, devemos ver que o tamanho da posição vai ser reduzido, aqui estamos nós, o tamanho da posição está a mudar agora, por isso o pequeno consultor especializado trabalha como concebido.
Neste pequeno vídeo, aprendeu como reduzir automaticamente os tamanhos de posição e fechar uma parte de uma posição aberta e codificou-a você mesmo com algumas linhas de código mql5.