APRENDER O TUTORIAL BÁSICO MQL5 – 14 COMO COLOCAR UM LIMITE DE COMPRA

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 podemos definir um limite de compra para abrir uma ordem de compra a um nível de preço abaixo do preço pedido actual no nosso gráfico forex. Demora cerca de 5 minutos a codificá-lo.

Neste vídeo queremos descobrir como definir um limite de compra, neste momento não o vê no gráfico, mas se fizer zoom pode ver que temos aqui este limite de compra abaixo do preço actual e agora vamos descobrir como fazer isso com 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 em: „File/ New/ Expert Advisor (template)“ do template, „Continue“, vou chamar este ficheiro: „SimpleBuyLimit“, clique em „Continue“, „Continue“ e „Finish“.
Agora podemos apagar tudo acima da função „OnTick“, vamos também remover as duas linhas de comentário, começamos por importar o ficheiro: „Trade.mqh“. Este ficheiro vem com MQL5 e inclui algumas funções de comércio e utilizámo-lo para criar uma instância de „CTrade“ que será chamada: „trade“ e vamos utilizá-lo mais tarde para abrir o nosso limite de compra.
Dentro da função „OnTick“ começamos por obter o preço Ask que é feito usando „SymbolInfoDouble“ para o símbolo actual no gráfico usamos „SYMBOL_ASK“ tudo em maiúsculas e gosto de usar „NormalizeDouble“ e „_Digits“ para calcular automaticamente o número correcto de dígitos atrás do ponto porque alguns pares de moedas têm apenas três dígitos atrás do ponto enquanto outros têm cinco dígitos.
Para este exemplo simples, vamos apenas verificar se temos ordens ou posições abertas. Na MQL5 fazemos isso usando duas funções diferentes; a primeira é „OrdersTotal“, que uma irá entregar o número de ordens abertas que podem tornar-se uma posição, a segunda é para as posições (PositionsTotal) que criámos e só se ambas as condições forem verdadeiras é que vamos definir o nosso limite de compra. Isso é feito através da utilização: „trade.BuyLimit“, precisamos de passar aqui alguns parâmetros em chaves redondas.
Eu faço sempre os dois aparelhos ao mesmo tempo para não me esquecer de um e se marcar um dos aparelhos aqui, verá que o outro é realçado a cinzento, é uma boa maneira de descobrir se tem algum erro aqui.
O primeiro parâmetro é para o tamanho do lote, queremos definir o limite de compra para um comércio de 10 micro lotes.
O parâmetro 2 é usado para dizer à Metatrader o preço para o limite de compra, gostaríamos de obter o preço Ask actual e colocar o nosso limite de compra 200 pontos abaixo do preço Ask, usamos „_Symbol“ para obter automaticamente o símbolo no gráfico, o parâmetro seguinte seria para o stop loss, eu não o uso aqui, mas se quiser usá-lo pode dizer algo do género: Pergunte menos 400 pontos, mas eu utilizo um valor para o lucro do take. Gostaria de obter o lucro quando o preço sobe 200 pontos acima do preço Ask actual.
O parâmetro seguinte: „ORDER_TIME_GTC“ tudo em maiúsculas, é utilizado para a data de validade, „GTC“ significa „GTC“: „Good to cancel“ – não temos aqui nenhuma data de validade – por isso vamos definir o parâmetro seguinte para 0 (zero), que seria o tempo de expiração.
Finalmente temos um último parâmetro, que está definido para „NULL“ todas as letras maiúsculas, poderíamos usá-lo para passar um comentário, o que pode ser útil se for utilizar vários Expert Advisors num mesmo gráfico, mas para este simples exemplo é só isso.
Vamos clicar no botão „Compile“ ou pressionar F7…
Ooh… falhámos um ponto-e-vírgula que precisa de ser colocado atrás da cinta redonda de fecho aqui, porque aqui poderia escrever todas estas linhas de código numa única linha e o ponto-e-vírgula é o fim da declaração, por isso vamos recompilar e desta vez funcionou sem quaisquer erros e também não temos quaisquer avisos, por isso agora podemos clicar aqui ou pressionar F4 para voltar a Metatrader.
Em Metatrader, clicamos em: „View/ Strategy Tester“ ou prima CTRL e R, por favor escolha o novo ficheiro: „SimpleBuyLimit.ex5“, habilite a visualização aqui e inicie um teste.
E agora deverá ver que temos uma entrada para um limite de compra para 10 micro lotes e se clicar no gráfico e premir a tecla „menos“ no seu teclado deverá ver aqui o limite de compra, vamos acelerar o processo e devemos ver uma troca de compra.
Aqui mesmo o nosso limite de compra foi executado, agora temos uma operação de compra, não foi executada aqui, isso é por causa do spread e agora sabe como criar um Expert Advisor para colocar um limite de compra automatizado abaixo do preço Ask actual e codificou-o você mesmo com algumas linhas de código MQl5.