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 Metatrader5 criamos um Expert Advisor que é capaz de abrir negócios de compra e fechá-los com base num cruzamento de duas médias móveis.
Neste vídeo, vamos abrir algumas posições de teste, posições de compra, e essas posições serão fechadas quando o cruzamento destas duas médias móveis acontecer. Assim, vamos descobrir como fazer isso com MQL5. Por favor clique no pequeno ícone aqui ou prima F4 no seu teclado. Agora, deve ver a janela do Metaeditor e aqui quer clicar em ficheiro, New file, Expert Advisor from Template. Vou chamar a este ficheiro simples, cruzando o Stop Loss.
Clique em Continuar, continuar e terminar. Agora pode apagar tudo acima da função „ontick“ e vamos também remover as duas linhas de comentário aqui. Começamos por incluir o ficheiro Trade.mqh e queremos criar uma instância da classe Ctrade que se chama trade e que fornecerá algumas funções comerciais simplificadas. Precisamos primeiro de calcular o preço Ask. Isto é feito usando Symbolinfodouble para o símbolo actual no gráfico, queremos usar o símbolo, sublinhar, perguntar e com Normalizar dois dígitos e sublinhar, calculamos automaticamente o número correcto de dígitos por trás do ponto. Vamos também repetir isso para o preço do Bit. E agora criamos uma variável de corda para o sinal para um cruzamento.
Precisamos de duas matrizes, uma para a média móvel pequena e outra para a média móvel grande.
A definição de média móvel pequena é criada utilizando a função IMA para o símbolo actual no gráfico e o período actualmente seleccionado nesse gráfico, vamos utilizar vinte velas. Neste caso, não há valor de deslocamento. Vou utilizar a função ModeUnderscoreSMA para a média móvel simples.
Mas também se poderia usar ModeUnderscoreEMA para média móvel exponencial e o cálculo deve ser feito com base no preço fechado. A definição para a grande média móvel é muito semelhante, mas neste caso estamos a utilizar 50 velas. Agora usamos copybuffer para preencher a nossa matriz para a média móvel pequena e para a grande.
De acordo com as duas definições que criámos. Fazemo-lo para o tampão zero da vela zero. Esta é a vela actual, e copiamos os dados do preço de três velas e armazenamo-los nas matrizes para a média móvel pequena e para a média móvel grande. E sempre que a grande média móvel para a vela um tem um valor mais elevado do que a pequena média móvel para a vela um, consideramos isso como um sinal de compra. No outro caso, se a grande média móvel para a vela um for maior do que a pequena média móvel para a vela um, isso seria um sinal de venda.
A ideia é fechar todas as posições de compra para o par de moedas corrente. Quando temos um sinal de venda e quando o valor de retorno para PosiçõesTotal é maior do que zero. Isso significa que temos posições de compra abertas e queremos fechá-las, mas precisamos de ter algo para fechar. Portanto, vou abrir posições de teste quando o sinal for igual a comprar e quando não tivermos posições abertas, é quando vamos usar o comércio.Comprar para comprar 10 Microlotes. No nosso caso, estamos a usar um valor de Stop Loss de 200 pontos e um valor de Take Profit de cento e cinquenta pontos.
Lembre-se, esta é apenas uma posição de teste, não o faria numa conta real e, para ver o que se passa, gostaria de ter uma declaração de comentário que produza o texto. O sinal actual é agora seguido pelo sinal. Bem, esta função não existe, por isso precisamos de a criar agora. O nome da função é „fechar todas as posições de compra deste par“. Usamos o vazio porque não exigimos um valor de retorno. Dentro da posição, vamos usar um laço para contar para baixo até não haver mais posições.
Precisamos de obter o número do bilhete, o que é feito utilizando a posição obter bilhete. Queremos identificar o par de moedas actual. Isso pode ser feito por posição, obter símbolo. Em ambos os casos, estamos a utilizar o contador actual para a posição actual. Agora vamos obter a direcção da posição. Isto é feito usando a posição, obter o número inteiro e o parâmetro aqui é o tipo de sublinhado da posição. E se a direcção da posição for igual ao tipo de posição de compra, temos uma posição de compra. Agora, queremos verificar se o símbolo actual no gráfico é igual ao símbolo de posição.
Pode usar o símbolo com um sublinhado, que representa o meu par de moedas actual. E se este for igual ao par de moedas para a posição que identificámos, queremos usar a posição Ctrade ponto fechado, para fechar a posição actual. Agora, vamos fechar o laço For e a função. E isto é basicamente isto. Se isto foi demasiado rápido para si ou se não tem ideia do que todo o código aqui faz, talvez queira ver um dos outros vídeos da série de vídeos básicos ou talvez até o Curso Premium no nosso website possa ser interessante para si.