Como desenvolver um sistema de negociação baseado no indicador SAR Parabólico
Introdução
Neste artigo, você aprenderá em detalhes sobre um novo indicador técnico útil que pode ser usado em sua negociação de acordo com o seu estilo de negociação, se for adequado. Este indicador técnico é o SAR Parabólico. Nós aprenderemos como projetar um sistema de negociação para ser usado na plataforma de negociação MetaTrader5 depois de escrever o código deste sistema de negociação pelo Editor de Linguagem MetaQuotes embutido na MetaTrader 5. Se você quiser aprender como obter a MetaTrader 5 e como encontrar o Editor de Linguagem MetaQuotes, você pode verificar o tópico Escrevendo o código em MQL5 no MetaEditor. Nós aprenderemos o núcleo deste artigo através dos tópicos a seguir:
- Definição do SAR Parabólico
- Estratégia do SAR Parabólico
- Esquema da estratégia do SAR Parabólico
- Sistema de negociação do SAR Parabólico
- Conclusão
Através dos tópicos anteriores, nós aprenderemos como projetar um sistema de negociação simples baseado em estratégias simples do indicador SAR Parabólico e o conceito por trás dele. Através do tópico de definição do SAR Parabólico, nós aprenderemos com mais detalhes o que é o indicador SAR Parabólico ou o que ele significa e como nós podemos calcular esse indicador para aprender o conceito por trás dele. Essa abordagem facilitará o uso deste indicador de maneira efetiva. Em seguida, nós aprenderemos como usar o indicador SAR Parabólico através das estratégias simples baseadas no conceito deste indicador. Nós aprenderemos isso através do tópico da estratégia do SAR Parabólico. Em seguida, nós projetaremos um esquema para as estratégias simples mencionadas e esse esquema nos ajudará a desenvolver o nosso sistema de negociação passo a passo através de um esquema claro para as estratégias e para o que nós precisamos construir. Em seguida, nós abordaremos o tópico mais interessante deste artigo, pois nós aprenderemos como escrever o código do sistema de negociação para permitir que o computador examine nossas condições desenvolvidas e retorne o sinal de acordo com nossas estratégias. Esse processo será automático e preciso através do expert advisor que foi desenvolvido com base em nossas estratégias simples.
Antes de nós passarmos por nossos tópicos, eu aconselho aplicar o que você aprendeu sozinho, porque essa abordagem aprofundará sua compreensão e você deve testar qualquer estratégia ou qualquer coisa antes de usá-la em sua conta real, especialmente se você aprendeu de fontes educacionais, pois ela pode não ser útil para a sua negociação.
Ressalva: Qualquer informação fornecida aqui é apenas para fins educacionais e sem fins comerciais ou de aconselhamento. As informações não garantem nenhum tipo de resultado. Se você optar por usar esses materiais em qualquer uma de suas contas de negociação, você fará isso por sua conta e risco, sendo o único responsável.
Agora vamos começar a nossa interessante jornada pelos tópicos deste artigo.
Definição do SAR Parabólico
Nesta parte, nós aprenderemos com mais detalhes sobre o indicador SAR Parabólico criado por Welles Wilder. o nome deste indicador veio de "Parabolic" (Parabólico) que se refere à formação do indicador no gráfico e "SAR" refere-se a "Stop And Reverse", ou você pode encontrar o seu nome como "Parabolic Time/Price system", que é o mesmo que Welles Wilder o chamou em seu livro "New Concepts in Technical Trading Systems".
O indicador SAR Parabólico é um indicador seguidor de tendência utilizado durante os mercados em tendências, este indicador permite que o instrumento reaja de acordo com uma certa quantidade de períodos para análise, os pontos de SAR podem ser usados para mover os níveis de stop. Assim, nós podemos dizer que o principal objetivo deste indicador é permitir que você defina os níveis de stops adequados de acordo com a direção ou tendência atual do mercado. Você pode ler o tópico da definição de tendência para saber mais sobre a tendência, caso você não tenha conhecimento sobre isso.
Em outras palavras, o principal objetivo do indicador SAR Parabólico é criar stops móveis. O stop é uma função de duas coisas: tempo e preço, de acordo com a função do preço, nós podemos descobrir que o stop irá subir ou descer conforme o movimento do preço. De acordo com a função do tempo, nós podemos descobrir que o stop se moverá a cada período, independentemente da direção do preço.
Então, nós precisamos primeiro determinar a tendência, e então usar as táticas do SAR Parabólico. Até agora, nós aprendemos o significado do indicador SAR Parabólico e o que ele pode nos dizer. Agora, para entendermos profundamente o conceito por detrás de indicador, nós vamos analisar como ele pode ser calculado manualmente.
De acordo com o que nós aprendemos, é necessário determinar primeiro a tendência ou a direção do mercado e, de acordo com essa determinação, nós dividiremos o cálculo em dois casos, primeiro nós calcularemos o SAR Parabólico durante o mercado de alta, ele retornará o SAR crescente e, em seguida, calcularemos o SAR Parabólico durante o mercado de baixa, que retornará um SAR em queda. Então, nós vamos calcular essas duas coisas: O SAR crescente no caso do mercado de alta e o SAR em queda no caso do mercado de baixa.
- O SAR crescente:
- Determinamos o valor anterior do SAR = o valor do SAR do período anterior.
- Determinamos o ponto extremo (EP) = o valor máximo da tendência de alta atual.
- Determinamos o fator de aceleração (AF) = valor entre 0.02 e 0.20. Depois de determinar o primeiro valor mínimo que é 0.02, o valor será determinado de acordo com o (EP), pois AF será aumentado em 0.02 toda vez que o EP criar uma nova máxima para se aproximar do valor máximo de 0.20, independentemente de quanto tempo a tendência se estenderá.
- Valor atual do SAR Parabólico = SAR anterior (passo 1) + AF anterior * (EP anterior - SAR anterior).
Vamos ver um exemplo do SAR crescente com os seguintes dados do mercado:
Dia | Máxima | Mínima |
---|---|---|
1 | 45 | 43 |
2 | 44 | 43.5 |
3 | 46 | 43 |
4 | 47 | 42 |
5 | 48 | 42.5 |
6 | 47.5 | 42.75 |
7 | 48 | 42.60 |
8 | 47.75 | 42.5 |
9 | 48 | 43 |
10 | 49 | 42.5 |
11 | 48.75 | 42.60 |
12 | 50 | 42 |
13 | 51 | 42.5 |
14 | 52 | 43 |
15 | 51.5 | 42.5 |
16 | 51 | 42 |
17 | 52 | 43 |
18 | 53 | 44 |
19 | 54 | 45 |
Agora nós precisamos calcular o SAR crescente, o mesmo se dará a seguir:
- Determinamos o valor do SAR anterior = o valor do SAR do período anterior, neste exemplo, ele será o primeiro valor destacado na cor amarela. Para simplificação, ele será igual a 42.
- Determinamos o ponto extremo (EP) = o valor máximo da tendência de alta atual, que será 48
- Obtemos a diferença entre EP e SAR, a diferença será 48 - 42 = 6
- Determinamos o fator de aceleração (AF) = valor entre 0.02 e 0.20, ele será igual a 0.02 para o primeiro valor
- Multiplicamos AF pela diferença entre EP e SAR, o valor será igual a 0.12
- Calculamos o SAR atual adicionando o resultado da multiplicação do AF anterior pela diferença entre EP e SAR que é o resultado do quinto passo anterior, o valor do SAR será igual a 42.12
A seguir está uma imagem de todos os valores calculados do exemplo:
Como nós podemos ver na coluna do SAR, os valores do SAR aumentam todos os dias durante o período.
- O SAR em queda:
- Determinamos o valor anterior do SAR = o valor do SAR do período anterior.
- Determinamos o ponto extremo (EP) = o valor mínimo da tendência de baixa atual.
- Determinamos o fator de aceleração (AF) = valor entre 0.02 e 0.20. Depois de determinar o primeiro valor mínimo que é 0.02, o valor será determinado de acordo com o (EP), pois AF será aumentado em 0.02 toda vez que EP criar uma nova mínima para se aproximar do valor máximo de 0.20, independentemente de quanto tempo a tendência se estenderá .
- Valor do SAR parabólico atual = SAR anterior (passo 1) - AF anterior * (EP anterior - SAR anterior).
Vamos ver um exemplo do SAR em queda com os seguintes dados do mercado:
Dia | Máxima | Mínima |
---|---|---|
1 | 54 | 45 |
2 | 53 | 44 |
3 | 52 | 43 |
4 | 51 | 42 |
5 | 51.5 | 42.5 |
6 | 52 | 43 |
7 | 51 | 42.5 |
8 | 50 | 42 |
9 | 48.75 | 42.6 |
10 | 49 | 42.5 |
11 | 48 | 43 |
12 | 47.75 | 42.50 |
13 | 48 | 42.60 |
14 | 47.50 | 42.75 |
15 | 48 | 42.50 |
16 | 47 | 42 |
17 | 46 | 43 |
18 | 44 | 43.50 |
19 | 45 | 43 |
Agora, nós vamos calcular os valores do SAR em queda para o período determinado, o mesmo se dará a seguir:
- Determinamos o valor do SAR anterior = o valor do SAR do período anterior, neste exemplo, ele será o primeiro valor destacado na cor amarela. Para simplificação, ele será igual a 51.
- Determinamos o ponto extremo (EP) = o valor mínimo da tendência de baixa atual, que será igual a 42
- Obtemos a diferença entre EP e SAR, a diferença será 51-42 = 9
- Determinamos o fator de aceleração (AF) = valor entre 0.02 e 0.20, ele será igual a 0.02 para o primeiro valor
- Multiplicamos AF pela diferença entre EP e SAR, o valor será igual a 0.18
- Calculamos o SAR atual subtraindo o SAR anterior do resultado do quinto passo, o valor será igual a 50.82
A seguir está uma imagem para o cálculo de todos os valores durante o período determinado:
Como nós podemos ver na coluna SAR, os valores do SAR diminuem a cada dia durante o período.
Felizmente, nós não precisamos calcular o indicador SAR Parabólico ou qualquer outro indicador porque nós temos esse indicador integrado à plataforma de negociação MetaTrader 5. Assim, o que necessitamos fazer é selecionar o indicador entre os indicadores disponíveis. Segue como nós podemos fazer isso:
Ao abrir a MetaTrader 5, você pode clicar na guia Inserir -> selecionar Indicadores -> selecionar Tendência -> selecionar Parabolic SAR
Depois disso, nós podemos encontrar a janela de parâmetros do SAR Parabólico da mesma forma que a seguir:
1- determinar o passo (AF) que será adicionado toda vez que o preço atingir novas máximas ou mínimas.
2- determinar o valor máximo de (AF). Nós aprendemos que o padrão é 0.20.
3- determinar a cor do indicador.
4- determinar o estilo do indicador.
Depois de determinar os parâmetros adequados do indicador SAR Parabólico e pressionar "OK", nós podemos encontrá-lo anexado ao gráfico da mesma forma que encontramos a seguir:
Como nós podemos ver na imagem anterior, durante o movimento de alta, nós podemos encontrar o SAR Parabólico se movendo abaixo dos preços e crescendo conforme o movimento e vice-versa, durante o movimento de baixa, nós podemos encontrar o indicador SAR Parabólico se movendo acima dos preços e decrescendo conforme o movimento.
Estratégia do SAR Parabólico
Neste tópico, nós vamos aprender algumas estratégias simples que podem ser usadas pelo SAR Parabólico, não se esqueça que você tem que testar qualquer estratégia antes de usá-la em sua conta real, pois o objetivo principal é aprender o conceito de uma nova ferramenta e como projetar um sistema de negociação a partir dela.
Nós mencionamos que o indicador SAR Parabólico segue a tendência e que nós podemos usá-lo durante os mercados em tendências de alta e baixa. Então, nós determinaremos a tendência primeiro e, então, poderemos usar o SAR Parabólico de acordo.
- Estratégia um: estratégia de tendência de alta:
De acordo com esta estratégia, para cada tick, nós precisamos comparar o valor do SAR Parabólico com os preços e decidir se há um sinal de compra ou não, pois nós podemos descobrir que o sinal de compra será gerado quando o valor do SAR Parabólico for menor que a mínima do preço, nós podemos ter um sinal de take profit quando o valor do SAR ficar acima da máxima do preço.
Valor do SAR < mínima do preço = compra
Valor do SAR > máxima do preço = take profit
- Estratégia dois: estratégia de tendência de baixa:
De acordo com esta estratégia, para cada tick, nós precisamos comparar o valor do SAR Parabólico com os preços e decidir se há um sinal de venda ou não, pois nós podemos descobrir que o sinal de venda será gerado quando o valor do SAR Parabólico for maior que a máxima do preço, nós podemos ter um sinal de take profit quando o valor do SAR ficar abaixo da mínima do preço.
Valor do SAR > máxima do preço = venda
Valor do SAR < mínima do preço = take profit
- Estratégia três: sinal de compra com a estratégia do stop móvel:
De acordo com essa estratégia, para cada tick, nós precisamos comparar o valor do SAR com os preços e decidir se nós temos um sinal de compra, e determinar os stops móveis para cada tick de acordo com o valor do indicador SAR Parabólico. Portanto, será uma compra quando o valor do SAR for menor que a mínima do preço, nós obteremos o nível do stop móvel de acordo com o valor do indicador.
Valor do SAR < mínima do preço = compra --> valor do stop móvel de acordo com o valor do SAR
- Estratégia quatro: sinal de venda com a estratégia do stop móvel:
Estratégia quatro: sinal de venda com a estratégia do stop móvel: Portanto, será uma venda quando o valor do SAR for maior que a máxima do preço, nós obteremos o nível do stop móvel de acordo com o valor do SAR.
Valor do SAR > máxima do preço = venda --> valor do stop móvel conforme o valor do SAR.
Esquema da estratégia do SAR Parabólico
Neste tópico, nós projetaremos um esquema para cada estratégia para nos ajudar a criar o sistema de negociação, e esse esquema organizará e definirá o que nós precisamos que o programa ou o sistema faça passo a passo.
- Estratégia um: estratégia de tendência de alta:
Informaremos ao expert advisor as instruções sobre o que precisa ser verificado e o que precisa ser retornado caso as condições sejam atendidas. Nesta estratégia em específico, o EA verificará o valor do SAR e o comparará com o nível de preço. É necessário determinar se o valor do SAR é menor que o preço mínimo ou não, caso contrário, o EA não deve retornar nada. Em caso afirmativo, o EA deve retornar um sinal de compra. Então, você precisa comparar os dois valores novamente. Se o valor do SAR não for maior que a máxima do preço, o EA não deve retornar nada. Se o indicador estiver acima da máxima, o expert deve retornar um sinal de take profit.
Valor do SAR < mínima do preço = compra
Valor do SAR > máxima do preço = take profit
- Estratégia dois: estratégia de tendência de baixa:
Nesta estratégia em específico, o EA verificará o valor do SAR e irá comparar com o nível de preço. É necessário determinar se o valor do SAR é maior que a máxima do preço ou não, caso contrário, o EA não deve retornar nada. Em caso afirmativo, o EA deve retornar um sinal de venda. Então, devemos comparar os dois valores novamente. Se o valor do SAR não for menor que a mínima do preço, o EA não deve retornar nada. Se o indicador estiver abaixo da mínima, o expert deve retornar um sinal de take profit.
Valor do SAR > máxima do preço = venda
Valor do SAR < mínima do preço = take profit
Para escrever o código desta estratégia, o expert advisor deve verificar o valor do SAR e retornar o valor do stop móvel. Verificaremos este valor com a máxima e mínima e determinaremos se o valor do SAR é menor que a mínima do preço ou não, caso contrário, o EA retorna apenas o valor do stop móvel e, em caso afirmativo, nós precisamos que ele retorne um sinal de compra e o valor do stop móvel.
apenas o nível do stop móvel --> valor do SAR < mínima do preço = compra --> valor do stop móvel de acordo com o valor do SAR
- Estratégia quatro: sinal de venda com a estratégia do stop móvel:
Para escrever o código desta estratégia, o expert advisor deve verificar o valor do SAR e retornar o valor do stop móvel. Verificaremos este valor com a máxima e mínima e determinaremos se o valor do SAR é maior que a máxima do preço ou não, caso contrário, o EA retorna apenas o valor do stop móvel e, em caso afirmativo, nós precisamos que ele retorne um sinal de venda e o valor do stop móvel.
apenas o valor do stop móvel --> valor do SAR > máxima do preço = venda --> valor do stop móvel conforme o valor do SAR
Sistema de negociação do SAR Parabólico
Neste tópico interessante, nós aprenderemos a escrever o código de cada estratégia mencionada, utilizando a linguagem MQL5 para a criação de um sistema de negociação baseado em cada uma delas. O resultado deverá ser um programa que será executado na plataforma MetaTrader 5 de maneira automática e precisa.
Primeiro, nós aprenderemos como escrever um código para projetar um sistema de negociação simples para mostrar um comentário com o valor do SAR Parabólico e, para escrever esse expert simples, seguiremos com as etapas abaixo.
- Criamos uma matriz para o SAR Parabólico e nós usaremos a função "double":
double SARArray[];
- Ordenamos a matriz dos dados atuais usando a função "ArraySetAsSeries" e retornamos uma booleana:
ArraySetAsSeries(SARArray,true);
- Definimos o indicador SAR usando a função "iSAR":
int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
- Preenchemos o SARarray com a definição do SAR usando a função "CopyBuffer":
CopyBuffer(SARDef,0,0,3,SARArray);
- Calculamos o valor do SAR usando a função "NormalizeDouble" após criar uma variável para o valor do SAR pela função "double":
double SARValue=NormalizeDouble(SARArray[0],5);
- Saída do gráfico com o valor do SAR usando a função Comment:
Comment("Parabolic SAR value is ",SARValue);
Depois disso, podemos encontrar o código como um bloco completo da mesma forma que o seguinte:
//+------------------------------------------------------------------+ //| Simple Parabolic SAR System.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { //create a SAR array double SARArray[]; //sort array from current data ArraySetAsSeries(SARArray,true); //define SAR EA int SARDef=iSAR(_Symbol,_Period,0.02,0.2); //fill SARArray with SARDef CopyBuffer(SARDef,0,0,3,SARArray); //calculate value of last data double SARValue=NormalizeDouble(SARArray[0],5); //chart comment with the signal Comment("Parabolic SAR value is ",SARValue); } //+------------------------------------------------------------------+
Depois de escrever e compilar este código, nós podemos encontrá-lo no navegador da mesma forma que a imagem a seguir:
Após abrir o arquivo clicando duas vezes ou arrastando-o e soltando-o no gráfico, obtemos os resultados do sistema, então nós encontraremos a seguinte janela:
Em seguida, nós marcaremos "Permitir a Negociação Automatizada" e pressionamos ok. Nós podemos encontrar o sistema ou o expert advisor anexado ao gráfico da mesma forma que o seguinte:
E a imagem a seguir é um exemplo dos sinais gerados deste sistema:
- Estratégia um: estratégia de tendência de alta:
Da mesma forma que eu mencionei nesta estratégia, nós precisamos definir nossas condições para o sistema de negociação gerar um sinal de compra quando o valor do SAR for menor que a mínima do preço e gerar um sinal de take profit quando o valor do SAR for maior que a máxima do preço, a seguir encontramos como codificar essa estratégia:
- Criamos uma variável do tipo string para o sinal usando a função "string":
string signal="";
- Criamos uma matriz para preço usando a função "MqlRates", ela armazena as informações sobre os preços, volumes e spread:
MqlRates PriceArray[];
- Ordenamos a matriz de preços dos dados atuais usando a função "ArraySetAsSeries":
ArraySetAsSeries(PriceArray,true);
- Preenchemos a matriz com os dados do preço usando a função "CopyRates", esta função obtém os dados do histórico da estrutura "MqlRates" após armazenar os dados como um inteiro:
int Data=CopyRates(_Symbol,_Period,0,3,PriceArray);
- Criamos outra matriz para o valor do SAR usando a função "double":
double SARArray[];
- Ordenamos a matriz SAR dos dados atuais usando a função "ArraySetAsSeries":
ArraySetAsSeries(SARArray,true);
- Definimos o indicador SAR para o EA usando a função "iSAR", pois ela retorna o manipulador do indicador SAR Parabólico após armazenar "SARDef" como um inteiro para se referir à definição do SAR:
int SARDef=iSAR(_Symbol,_Period,0.02,0.2);
- Preenchemos o SARarray com a SARDef usando a função "CopyBuffer" já que ele obtém os dados do buffer específico do indicador:
CopyBuffer(SARDef,0,0,3,SARArray);
- Calculamos o valor do SAR dos últimos dados usando a função "NormalizeDouble" que retorna o valor do tipo double:
double SARValue=NormalizeDouble(SARArray[0],5);
- Definimos as condições do sinal de "compra" usando a função "if", devemos retornar o sinal "Buy" se o valor do SAR for menor que a mínima do preço:
if(SARValue < PriceArray[1].low) { signal="Buy"; }
- Definimos as condições do sinal de "take profit" usando a função "if", devemos retornar o sinal "Take Profit" se o valor do SAR for maior que a máxima do preço:
if(SARValue > PriceArray[1].high) { signal="Take Profit"; }
- Comentário do sinal gerado no gráfico usando a função "Comment":
Comment("The signal is ",signal);
Através das etapas anteriores, nós criamos um sistema de negociação para esta estratégia a seguir encontramos o seu código completo:
//+------------------------------------------------------------------+ //| Parabilic SAR System - Uptrend Strategy.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { //create an string variable for signal string signal=""; //create a price array MqlRates PriceArray[]; //sort array from the current data ArraySetAsSeries(PriceArray,true); //fill array with price data int Data=CopyRates(_Symbol,_Period,0,3,PriceArray); //create a SAR array double SARArray[]; //sort array from current data ArraySetAsSeries(SARArray,true); //define SAR EA int SARDef=iSAR(_Symbol,_Period,0.02,0.2); //fill SARArray with SARDef CopyBuffer(SARDef,0,0,3,SARArray); //calculate value of last data double SARValue=NormalizeDouble(SARArray[0],5); //buy signal //if current SAR value below candle 1 low if(SARValue < PriceArray[1].low) { signal="Buy"; } //take profit signal //if current SAR value above candle 1 high if(SARValue > PriceArray[1].high) { signal="Take Profit"; } //comment with the signal Comment("The signal is ",signal); } //+------------------------------------------------------------------+
Após compilar este código, nós podemos encontrá-lo na janela do navegador igual à imagem a seguir:
Após clicar duas vezes ou arrastá-lo e soltá-lo no gráfico, a seguinte janela será exibida:
Após pressionar "OK", nós podemos encontrar o expert advisor anexado ao gráfico igual à imagem a seguir:
Após isso, nós podemos encontrar os sinais gerados no gráfico como comentários iguais às imagens a seguir como exemplos de testes:
- Sinal de compra:
- Sinal do take profit:
- Estratégia dois: estratégia de tendência de baixa:
Da mesma forma que eu mencionei nesta estratégia, nós precisamos definir nossas condições para o sistema de negociação gerar um sinal de venda quando o valor do SAR for maior que a máxima do preço e gerar um sinal de take profit quando o valor do SAR for menor que a mínima do preço, a seguir encontramos como codificar essa estratégia:
//+------------------------------------------------------------------+ //| Parabolic SAR System - Downtrend Strategy.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { //create an string variable for signal string signal=""; //create a price array MqlRates PriceArray[]; //sort array from the current data ArraySetAsSeries(PriceArray,true); //fill array with price data int Data=CopyRates(_Symbol,_Period,0,3,PriceArray); //create a SAR array double SARArray[]; //define SAR EA int SARDef=iSAR(_Symbol,_Period,0.02,0.2); //sort array from current data ArraySetAsSeries(SARArray,true); //fill SARArray with SARDef CopyBuffer(SARDef,0,0,3,SARArray); //calculate value of last data double SARValue=NormalizeDouble(SARArray[0],5); //buy signal //if current SAR value below candle 1 low if(SARValue > PriceArray[1].high) { signal="Sell"; } //take profit signal //if current SAR value above candle 1 high if(SARValue < PriceArray[1].low) { signal="Take Profit"; } //chart comment with the signal Comment("The signal is ",signal); } //+------------------------------------------------------------------+
- As diferenças no código desta estratégia são:
- Condições do sinal de venda - quando o valor do SAR se torna maior que a máxima do preço:
if(SARValue > PriceArray[1].high) { signal="Sell"; }
- Condições do sinal take profit - quando o valor do SAR se torna menor que a mínima do preço:
if(SARValue < PriceArray[1].low) { signal="Take Profit"; }
Depois de compilar este código, nós vamos encontrá-lo na janela do navegador como um expert advisor da mesma forma que a imagem a seguir:
Após arrastar e soltar o arquivo no gráfico para executar o expert, a seguinte janela será aberta:
Após pressionar "OK", o expert será anexado ao gráfico da mesma forma que a imagem a seguir:
Após isso, nós podemos encontrar os sinais gerados no gráfico como comentários iguais às imagens a seguir como exemplos de testes:
- Sinal de venda:
- Sinal do take profit:
- Estratégia três: sinal de compra com a estratégia do stop móvel:
Nesta estratégia, o EA deve mostrar um sinal de compra e os stops móveis como comentários no gráfico de acordo com os preços e o valor do SAR Parabólico. Ele deverá mostrar o valor dos stops móveis no gráfico e gerar qualquer novo sinal de caso o valor do SAR ficar abaixo da mínima do preço. O código a seguir é para desenvolver o sistema de negociação para esta estratégia:
//+------------------------------------------------------------------+ //| Parabolic SAR System - Buy signal with training stop.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { //create an string variable for signal string signal=""; //create a price array MqlRates PriceArray[]; //sort array from the current data ArraySetAsSeries(PriceArray,true); //fill array with price data int Data=CopyRates(_Symbol,_Period,0,3,PriceArray); //create a SAR array double SARArray[]; //define SAR EA int SARDef=iSAR(_Symbol,_Period,0.02,0.2); //sort array from current data ArraySetAsSeries(SARArray,true); //fill SARArray with SARDef CopyBuffer(SARDef,0,0,3,SARArray); //calculate value of last data double SARValue=NormalizeDouble(SARArray[0],5); //buy signal //if current SAR value below candle 1 low if(SARValue < PriceArray[1].low) { signal="Buy"; } //chart comment with the signal and trailing Stop Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue); } //+------------------------------------------------------------------+
- A diferença está em:
- Adicionamos o valor do stop móvel que é o valor do SAR em uma nova linha como um comentário no gráfico:
Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue);
Após a compilação, nós podemos encontrar este expert advisor na janela do navegador para executá-lo:
Quando nós quisermos executar este expert no gráfico, nós vamos arrastá-lo e soltá-lo no gráfico e então a seguinte janela se abrirá:
Após pressionar "OK", o expert será anexado ao gráfico da mesma forma que a imagem a seguir:
As figuras a seguir são exemplos dos sinais gerados de acordo com o teste desta estratégia:
A imagem a seguir mostra como o valor do stop móvel aumentará com o preço:
- Estratégia quatro: Sinal de venda com a estratégia do stop móvel:
Nesta estratégia, o EA deve mostrar um sinal de venda e os stops móveis como comentários no gráfico de acordo com os preços e o valor do SAR Parabólico. Ele deverá mostrar o valor dos stops móveis no gráfico e gerar qualquer novo sinal de venda caso o valor do SAR ficar acima da máxima do preço. O código a seguir é para desenvolver o sistema de negociação para esta estratégia:
//+-----------------------------------------------------------+ //| Parabolic SAR System - Sell signal with trailing stop.mq5 | //| Copyright Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+-----------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+-----------------------------------------------------------+ void OnTick() { //create an string variable for signal string signal=""; //create a price array MqlRates PriceArray[]; //sort array from the current data ArraySetAsSeries(PriceArray,true); //fill array with price data int Data=CopyRates(_Symbol,_Period,0,3,PriceArray); //create a SAR array double SARArray[]; //define SAR EA int SARDef=iSAR(_Symbol,_Period,0.02,0.2); //sort array from current data ArraySetAsSeries(SARArray,true); //fill SARArray with SARDef CopyBuffer(SARDef,0,0,3,SARArray); //calculate value of last data double SARValue=NormalizeDouble(SARArray[0],5); //buy signal //if current SAR value below candle 1 low if(SARValue > PriceArray[1].high) { signal="Sell"; } //chart comment with the signal and trailing Stop Comment("The signal is ",signal,"\n", "Trailing Stop is ",SARValue); } //+------------------------------------------------------------------+
- A diferença está em:
- Condições do sinal de venda:
if(SARValue > PriceArray[1].high) { signal="Sell"; }
Após a compilação, nós podemos encontrar este expert advisor na janela do navegador para executá-lo:
Após clicar duas vezes ou arrastá-lo e soltá-lo no gráfico, a seguinte janela será exibida:
Após pressionar "OK", o expert será anexado:
As imagens a seguir são exemplos dos sinais gerados:
A imagem a seguir mostra como o valor do stop móvel diminuirá com o preço:
Conclusão
Agora, nós podemos dizer que aprendemos alguns conceitos básicos do indicador técnico Parabolic SAR em detalhes, pois aprendemos o que é o indicador e o que ele mede, e como nós podemos calculá-lo manualmente para entender o conceito por trás dele. Então, aprendemos e desenvolvemos um esquema para nos ajudar a projetar um sistema de negociação para cada estratégia, logo em seguida, aprendemos como escrever o código em MQL5 do expert advisor para cada estratégia. Como resultado, criamos programas para serem executados na plataforma MetaTrader 5.
Espero que você tenha tentado codificar essas estratégias sozinho, pois isso aumentará a sua curva de aprendizado. A prática é um fator muito importante para dominar coisa novas. Assemelhamos melhor as coisas quando tentamos aplicar os conhecimentos adquiridos com a prática.
Eu espero que você ache este artigo útil para você e sua negociação por meio de informações incluídas ou abrindo seus olhos para novas ideias ou insights que podem ser usados em sua negociação. Eu aconselho você a testar qualquer coisa que você saiba antes de usar em uma conta real para se certificar de que ela é adequada para a sua negociação e seu plano.
Traduzido do Inglês pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/en/articles/10920
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso