APRENDER O TUTORIAL BÁSICO MQL5 – 56 TEMPORIZADOR DE FECHAMENTO 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 para fechar posições se estas não forem lucrativas. Neste exemplo, o Expert Advisor verificará isso após uma hora.

Neste vídeo, vamos criar um temporizador que é capaz de fechar posições que não são rentáveis, neste caso após uma hora. Esta foi uma pergunta de um dos membros do curso premium, por isso vamos descobrir como codificar isso com mql5.
Para começar, por favor clique aqui num pequeno ícone 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 temporizador simples de fechar, clicar em continuar, continuar e terminar.
Agora pode apagar tudo o que se encontra acima da função de tick e as duas linhas de comentário aqui.
Começamos com uma declaração para incluir o ficheiro trade mqh, ele contém a classe ctrade, por isso criamos uma instância dessa classe que será utilizada para abrir algumas posições de teste.
Dentro da função de tick on precisamos de calcular o preço de pedido e o preço de oferta. Isto é feito utilizando o símbolo info double para o símbolo actual no gráfico. Usamos o símbolo underscore ask ou o símbolo underscore bid e com a normalização dos dígitos de duplo e sublinhado calculamos automaticamente o número de dígitos por detrás do ponto.
Depois, queremos abrir algumas posições de teste, não o faríamos numa conta real, mas para ter algo para fechar preciso de abrir algumas posições no testador de estratégia.
No meu caso, se o total de posições for igual a zero e não tivermos posições abertas, usamos trade dot buy ou trade dot sell para abrir uma posição de compra e uma posição de venda.
E depois, queremos chamar uma função chamada check close timer, esta não existe até agora, pelo que precisamos de a criar agora.
Usamos void porque não temos valor de retorno e usamos o check close timer para o nome da função.
Vamos usar um para loop para percorrer todas as posições abertas. Para cada posição, quero utilizar a posição get ticket para obter o número do ticket. Também quero calcular o tempo de abertura da posição, podemos obtê-lo utilizando a posição get integer. O parâmetro é a hora de sublinhado da posição, mas esta é uma variável de data/hora e eu gostaria de usar mql de data/hora para criar uma estrutura, por isso se marcar isso e premir F1 verá que a estrutura de data/hora tem oito valores de retorno aqui.
Um dos valores é a hora e é disso que precisamos. Agora usamos o tempo para estruturar para converter a hora de abertura da posição que calculámos aqui na nossa estrutura e que torna possível extrair a hora de abertura para esta posição da nossa estrutura.
Agora precisamos de obter a hora actual da hora local. Começamos por utilizar a hora local para obter o valor da hora da data. Agora criamos outra estrutura, esta será chamada a minha hora local.
Mais uma vez usamos a hora para estruturar para converter a hora local que calculámos aqui na nossa estrutura e depois extraímos a hora actual porque isto torna possível calcular a diferença simplesmente subtraindo a hora de abertura da hora actual.
Lembre-se que isto só funcionará para o mesmo dia de negociação, caso contrário seria necessário verificar se a data foi alterada.
Agora vamos criar aqui algumas declarações impressas.
Normalmente, prefiro usar declarações de comentários, mas precisamos destes resultados para cada posição, por isso vamos calcular o lucro da posição que é feito usando a posição obter o dobro e o parâmetro é a posição sublinhar o lucro e após algumas horas e, no meu caso, após a primeira hora terminar, queremos verificar se o lucro da posição é negativo e se for esse o caso, usamos o fecho da posição de ponto de troca para o nosso bilhete actual para fechar a posição.
Finalmente, queremos terminar o for loop e a função e é tudo.
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 um dos outros vídeos da série básica de vídeo ou talvez até o curso premium no nosso website possa ser interessante para si.
Por agora, por favor clique no botão de compilação ou prima F7, não deve receber nenhum erro e se for esse o caso, pode clicar num pequeno botão aqui ou prima F4 para voltar a Metatrader.
E no Metatrader pretende clicar em View, Strategy Tester ou pressionar Control e r, por favor escolha o novo ficheiro simples close timer dot ex5, marque o modo visual aqui e inicie um teste.
Aqui estamos nós! O consultor especializado está em funcionamento, são posições de abertura e fecho baseadas no tempo e neste pequeno vídeo aprendeu como criar um consultor especializado que é capaz de fechar posições que não estão no lucro após uma ou mais horas e codificou-o você mesmo com algumas linhas de código mql5.