LEARN MQL5 TUTORIAL BASICS – 28 HOW TO CALCULATE THE NUMBER OF OPEN BUY POSITIONS

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 queremos criar um Expert Advisor para contar o número de posições de compra abertas para um par de moedas no gráfico forex. O EA pode ser codificado em Metaeditor dentro de 5-10 minutos.

Neste vídeo, vamos descobrir quantas posições de compra temos. Esta é uma pergunta que veio de um dos meus membros do curso premium.
Temos aqui várias posições de compra e venda, vamos ordená-las por tipo e temos 1, 2, 3, 4, 5, 6, 7, 8 posições de compra, é isso que o texto diz aqui, por isso vamos descobrir como calcular isso com MQL5.
Para o fazer, clique no pequeno botão aqui ou prima F4 no seu Metatrader agora deve ver a janela do Metaeditor e aqui quer clicar em: „Ficheiro/ Novo ficheiro/ Expert Advisor (modelo)“ do modelo, „Continuar“, eu chamarei este ficheiro: „SimpleBuyPositionCount“, clique em „Continue“, „Continue“ e „Finish“.
Agora pode apagar tudo entre a função „OnTick“ e a função „OnInit“, também removemos aqui as linhas de comentário, ou seja, tudo o que está cinzento.
Começamos por importar um ficheiro „Trade.mqh“ – que é uma biblioteca – que inclui várias funções comerciais e permite-nos criar uma instância da classe „CTrade“ que será chamada: „trade“, dentro da função „OnInit“ chamarei uma função personalizada que é chamada: posições de teste abertas (OpenTestPositions).
Não o faria numa conta real, mas preciso de abrir algumas posições de teste para ter algo para contar.
Dentro da função „OnTick“, vamos fazer uma coisa e que é usar a declaração „Comentar“ para produzir o número de posições que vamos obter ao chamar uma função personalizada chamada posições de compra e vamos codificar isso agora.
Na verdade, vamos tornar isso um pouco mais fácil de usar e criar a função personalizada chamada countBuyPositions, esta irá retornar um número inteiro, por isso é um valor inteiro.
Vamos começar por criar uma variável local chamada número de posições de compra (NumberOfBuyPositions), o valor é 0 (zero) agora mesmo porque queremos calcular esse número de posições de compra e para isso usamos um ciclo „para“, dentro do ciclo „para“ usaremos a função „PositionsTotal“ e desde que o nosso valor de contador esteja acima de 0 (zero) vamos passar por todas as posições abertas e aqui está o que vamos fazer; primeiro queremos criar uma string para o par de moedas e atribuir o valor para „PositionGetSymbol“ do valor actual do contador que identificará o par de moedas, depois queremos obter o tipo de posição que é feito usando „PositionGetInteger“ e o parâmetro que usamos é „POSITION_TYPE“ – tudo em maiúsculas – agora verificamos se o símbolo actual no gráfico é igual ao par de moedas da nossa posição e mais uma coisa que queremos saber é se a direcção da posição é igual ao tipo de posição buy (POSITION_TYPE_BUY) – também em maiúsculas.
E se for esse o caso, queremos tomar o valor actual para o número de posições de compra e aumentá-lo em uma posição. Precisamos de terminar o ciclo „para“ aqui e agora queremos devolver o número de posições de compra à função principal que é feita usando a declaração „return“ e devolveremos aqui o valor para o número calculado de posições de compra (NumberOfBuyPositions).
Falta mais um parêntesis para fechar toda a função, é mais ou menos isso.
Vou mostrar-lhe a minha função para abrir posições de teste (OpenTestPositions), não a use numa conta real, uso um gerador aleatório para calcular um número aleatório, por isso teremos até 10 posições e depois vou abrir operações de compra e venda apenas para fins de teste, não faça isso numa conta real.
Portanto, vamos compilar o código clicando no pequeno botão aqui ou pode também premir F7.
Tenho aqui um erro, vamos fazer disso uma função „void“ porque não preciso de verificar o valor de retorno, vamos recompilar o código e desta vez não recebemos nenhum erro, por isso agora podemos clicar num pequeno botão aqui ou carregar em F4 para voltar ao Metatrader.
Em Metatrader, clicamos em: „View/ Strategy Tester“ ou premir CTRL e R, escolhemos o ficheiro „SimpleBuyPositionCount.ex5“, marcamos aqui a opção de visualização e iniciamos um teste.
Aqui estamos nós! O nosso Consultor Especialista diz-nos que temos 8 posições de compra, por isso vamos contar: 1, 2, 3, 4, 5, 6, 7, 8, isso é correcto.
Vou parar o teste aqui, começar um novo e desta vez diz que temos 5 posições de compra, 1, 2, 3, 4, 5, isso é correcto.
Portanto, agora já sabe como calcular o número de posições de compra, se tiver uma pergunta para um vídeo como este basta enviar-me um e-mail, mas por agora, sabe como calcular o número de posições de compra abertas e codificou-o você mesmo com algumas linhas de código MQL5.