APRENDER MQL5 TUTORIAL BASICS – 84 SIMPLE BOLLINGER BANDS VENDER TRAILING STOP

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 MQL5 para Metatrader5 criamos um Expert Advisor para mover uma paragem de venda com o indicador Bollinger Bands…

Neste vídeo vamos criar um Expert Advisor que é capaz de mover um batente de venda para a banda superior de Bollinger, por isso vamos descobrir como fazer isso com o mql5.
Para começar, clique num pequeno ícone aqui 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, vou chamar a este ficheiro, simples bandas de bollinger vendem trailing stop, clique em continuar, continuar e terminar.
Agora pode apagar tudo acima da função de aparafusar e as duas linhas de comentário aqui.
Começamos com uma declaração para incluir o ficheiro trade mqh, este dar-nos-á algumas funções de comércio simples, contém a classe ctrade e vamos criar uma instância de ctrade que será chamada trade.
Dentro da função ontick, queremos criar uma variável dupla estática, chamada valor das bandas de bollinger da última paragem. Vamos utilizá-la mais tarde para mover a nossa trailing stop e comparar o valor actual com o último valor. Também precisamos de calcular o preço de pedido e o preço de oferta que é feito usando o símbolo info double para o símbolo actual no gráfico, usamos o símbolo ask ou o símbolo underscore bid e com normalizar os dígitos double e underscore calculamos automaticamente o número correcto de dígitos por detrás do ponto, dependendo do par de moedas que podem ser três dígitos ou cinco dígitos.
E para mover o nosso stop de venda, precisamos de ter uma posição de teste, por isso, se o total de posições for inferior a uma, usamos o trade dot sell para vender dez microlotes e agora vou definir o valor das bandas de bollinger do último stop para um valor alto irrealista de mil, também poderíamos defini-lo para zero aqui, mas precisaríamos de acrescentar outra condição mais tarde e para este simples exemplo é suficientemente bom.
Agora vamos criar uma matriz de bandas superior e uma matriz de bandas inferior. Na verdade, temos uma banda intermédia mas não precisamos dela, por isso vamos usar a matriz definida como série para a banda superior e a inferior para ordenar ambas as matrizes a partir da vela actual para baixo.
Agora podemos definir as bandas de bollinger utilizando a função ibands incluída para o símbolo actual no gráfico e o período actualmente seleccionado nesse gráfico, queremos calculá-lo para vinte velas, não utilizar um valor de desvio, o valor de desvio é dois e vamos calcular os resultados com base no preço fechado.
Com o buffer de cópia podemos agora preencher a nossa matriz de acordo com a definição de bandas de bollinger que criámos aqui, fá-lo-emos para o buffer um e buffer dois. O buffer um é para a matriz de curva superior, começamos com a vela zero e queremos copiar os valores para três velas e armazená-las na matriz de banda superior ou, neste caso, armazená-las na matriz de banda inferior e isso permite calcular o último valor de banda superior e o último valor de banda inferior apenas olhando para a vela um na matriz de banda superior e na de banda inferior.
Vamos continuar com as condições porque se o meu último valor superior da banda for superior ao preço pedido e se o meu último valor superior da banda for inferior ao valor da última paragem de aparafusamento das bandas de aparafusamento que é quando é altura de verificar a paragem de aparafusamento de venda, estamos a passar aqui o parâmetro do valor da minha última banda superior e depois, atribuímos o valor da última banda superior ao valor da variável última paragem de aparafusamento das bandas de aparafusamento porque da próxima vez que chamarmos a função o valor actual será o último.
Agora vamos continuar com a função definida pelo utilizador, estamos a usar void porque não precisamos de um valor de retorno, o nome é check bollinger sell trailing stop, este é o parâmetro que passámos e agora usamos um for loop para passar por todas as posições abertas. O símbolo „Position get“ dar-nos-á o par de moedas para a posição actual.
Agora precisamos de verificar se o símbolo actual no gráfico é o mesmo símbolo que o símbolo de posição e talvez devêssemos fechar a função ontick aqui, por isso vamos continuar com o ticket de posição, vamos conseguir isso usando o parâmetro position get integer e o parâmetro é position underscore ticket. Vamos repetir isto para a actual perda de paragem! Para obter a perda de paragem actual usamos a posição get double e o parâmetro é o sl sl de sublinhado de posição e se a perda de paragem actual for maior que o valor da minha última banda superior ou se não tivermos nenhuma perda de paragem – nesse caso, a perda de paragem actual seria zero – isto é, quando queremos usar o trade dot position modificar para o bilhete de posição actual e definir a perda de paragem para o valor da minha última banda superior, o valor do take profit não será alterado e por favor não se esqueça disto ou da condição aqui porque quando não se define um stop loss nunca poderá ser maior que este valor e se se esquecer de verificar esta condição o stop loss nunca será movido.