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 Metatrader 5 podemos criar um Ea – o chamado Expert Advisor para comércio automatizado. Neste caso, queremos saber como fechar todas as posições de venda abertas com MQL5…
Neste vídeo queremos descobrir como fechar todas as posições de venda ao mesmo tempo, este pequeno consultor especializado vai abrir dez posições de venda e assim que tivermos exactamente dez posições ele vai fechá-las, por isso vamos descobrir como codificar isso em mql5.
Para o fazer clique no pequeno ícone aqui ou prima F4 no seu teclado, agora deve ver a janela do Metaeditor e aqui quer clicar em ficheiro, novo, consultor especializado de modelo, continuar, vou chamar este ficheiro: simples posição de venda mais próxima, clique em continuar, continuar e terminar, agora pode apagar tudo o que está acima da função de tick e vamos também remover as duas linhas de comentário.
Começamos por utilizar a declaração de incluir aqui para incluir o ficheiro trade mqh, vem com mql5 e torna possível criar uma instância de ctrade chamada trade neste caso e vamos utilizar esta instância para abrir as nossas posições mais tarde.
Primeiro, precisamos de obter o preço de licitação que é feito usando o símbolo info double para o símbolo actual no gráfico e estamos a usar o símbolo underscore bid, tudo em letras maiúsculas. Também gosto de utilizar os dígitos normalizados de duplo e sublinhado para calcular automaticamente o número correcto de dígitos por trás do ponto, que depende do par de moedas…
Se tivermos menos de dez posições, então se o total de posições devolver um valor inferior a dez usamos trade dot sell para abrir uma posição de teste, o tamanho do lote será dez microlote e continuamos a fazer isso até que o total de posições entregue um valor de retorno de exactamente dez, então agora temos dez posições abertas e nesse caso queremos fechar todas as posições de venda abertas com uma função chamada: fechar todas as posições de venda que não existem neste momento, então precisamos de o codificar.
O tipo de retorno da função será nulo, o nome é fechar todas as posições de venda, usaremos um laço para percorrer todas as posições abertas até não haver mais posições.
Primeiro, precisamos de usar a função posição get ticket para obter o número do ticket para o número da posição actual, por isso, neste caso, eu sou apenas o contador para isto para loop e o número do ticket é um número mais longo que identificará a posição.
Também precisamos de descobrir a direcção da posição para usarmos a posição get integer, o parâmetro aqui é o tipo de posição sublinhada – tudo em maiúsculas – e agora podemos verificar se a direcção da posição é igual ao tipo de posição vendida – tudo em maiúsculas -, se este é o caso, temos uma posição vendida e agora usamos a posição trade dot close para o bilhete da posição actual que calculámos aqui para fechar a posição. Finalmente, precisamos de fechar o for loop e a função e é tudo.
Se não compreender o que todo o código aqui faz ou se isto foi demasiado rápido para si, talvez queira ver os outros vídeos desta série básica de vídeo ou talvez até o curso premium seja interessante, por agora, por favor clique no botão de compilação ou prima F7, não deve receber nenhum erro aqui e nesse caso pode clicar no pequeno botão aqui ou prima F4 para voltar ao Metatrader.
Desde a última actualização existem aqui algumas configurações estranhas, primeiro preciso de reactivar a barra de ferramentas padrão, agora podemos clicar em view, testador de estratégia ou pressionar control e r, e aqui temos agora uma lista de escolhas que foi implementada por Metaquotes, quero seleccionar „Run single test of an Expert Advisor“, por favor escolha o novo ficheiro: simples posição de venda ponto mais próximo ex5, activar a opção de visualização aqui e iniciar um teste.
Aqui estamos nós! O Expert Advisor está a trabalhar, é capaz de abrir posições aqui e assim que tivermos dez posições no gráfico, chamará a nova função para as fechar todas ao mesmo tempo, por isso neste pequeno vídeo aprendeu a codificar isso com mql5 e fê-lo você mesmo com algumas linhas de código.