English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
preview
O que você pode fazer com as Médias Móveis

O que você pode fazer com as Médias Móveis

MetaTrader 5Exemplos | 29 junho 2022, 11:26
1 098 0
Oleh Fedorov
Oleh Fedorov

Introdução

Eu tenho vários sistemas de negociação funcionando. Geralmente, eu não uso indicadores sendo calculados em todos os ticks, preferindo linhas retas. Mas às vezes eu me deparo com ideias que melhoram minha percepção de um gráfico de preços ou até mesmo mudam completamente minha visão de negociação, embora exijam alguns cálculos.

Este artigo apresenta algumas ideias relacionadas ao indicador mais popular e compreensível — a Média Móvel (МА).

Em sua versão mais simples, o valor do indicador é calculado usando a conhecida equação da média aritmética:

MA[i] = (Price[i]+Price[i+1]+...+Price[i+MAPeriod])/MAPeriod

Aqui, MA[i] é o próximo elemento da sequência, um ponto numa curva. Price[i] — preço atual, MAPeriod — número de elementos para o cálculo da média.

Claro, nós somos livres para aplicar qualquer preço: valores de Abertura, Fechamento, Máxima, Mínima, média ponderada, etc. Um indicador padrão permite selecionar tanto o preço de cálculo quanto os métodos de cálculo, incluindo aqueles mais complexos que uma média simples... Ao fornecer exemplos, eu deixo a oportunidade de selecionar um método de cálculo. No entanto, isso não é importante para compreender a ideia por trás dos métodos considerados. Todos os exemplos funcionam muito bem, independentemente de usarmos uma média móvel "simples" (SMA), uma exponencial (EMA) ou qualquer outra. Portanto, a SMA é usada por padrão em todas as capturas de tela e configurações padrão do indicador. Todos os indicadores usam os preços de fechamento, caso na haja indicação contrária. Você é livre para brincar com esses parâmetros para melhorá-los.

Ao falar sobre uma única curva, eu geralmente usarei um valor padrão de período de 10 barras. Se várias curvas com diferentes períodos forem usadas num único indicador, os períodos aplicados serão mais frequentes em 5 e 8. Eu não uso mais de duas curvas com períodos diferentes.

As cores são as seguintes: vermelho — rápido, laranja — lento... Se eu usar outra coisa, eu vou declarar explicitamente no texto.


Modelo do Indicador

Eu criei vários indicadores para visualizar os sinais acionados ao usar várias abordagens para as curvas. Eles são baseados num único modelo que é muito semelhante a um MACD padrão presente nos exemplos padrão. Eu acredito que não faz sentido mostrar todo o código do modelo aqui.

Cada indicador usará uma ou várias médias móveis e, às vezes, também a ATR para definir uma distância para as setas ou desenhar linhas de canal.

Às vezes, é mais fácil visualizar uma ideia se um indicador estiver localizado numa janela do gráfico, enquanto às vezes é necessário um indicador localizado numa janela separada. Isso é feito usando uma das propriedades. A seguinte propriedade é usada para um indicador dentro de uma janela do gráfico:

#property indicator_chart_window

Se um indicador estiver localizado numa janela separada, a seguinte propriedade será aplicada:

#property indicator_separate_window

Nesse caso, às vezes, eu definirei a altura da janela usando a propriedade:

#property indicator_height 100

Claro, o valor da propriedade pode ser alterado.

Os nomes dos buffers têm o sufixo "Buffer" no final. Por exemplo, os buffers da seta padrão serão chamados de ArrowDownBuffer e ArrowUpBuffer. Se o indicador desenha as linhas, o buffer é nomeado de acordo com a função de linha.

Quaisquer variáveis globais que eu defini têm o prefixo "ext" (se não forem buffers). Por exemplo, extATRData é uma variável global que contém os dados de origem do indicador ATR.

Eu vou usar os buffers sem mudar para o modo "série".

Durante a inicialização, eu defino todos os valores vazios para 0:

  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
  PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0);
  PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0);

Assim, nós só precisamos mostrar as condições de exibição das setas ou linhas, ou seja, tudo o que resta no loop principal.

Eu tento evitar redesenhos do indicador, pois o desenho é realizado na vela zero, enquanto os dados das velas já fechadas são usados para cálculos.


Cruzamento da linha pelo preço (direção da tendência)

No caso mais simples, somente a linha da МА é usada, em sua forma "natural". Eu acredito que todos vocês já viram uma imagem semelhante em suas telas:

MA "limpa"

Fig. 1. Média Móvel Simples

Na maioria dos casos, os traders usam a capacidade da MA para seguir uma tendência. Uma tendência pode ser definida como um conjunto de velas localizadas num lado da curva. Por exemplo, se mais de duas velas fecharem abaixo da linha, a tendência é de baixa e é hora de considerar as negociações de venda. Se o preço de fechamento estiver acima da curva, a tendência é de alta e é hora de comprar... Se o preço cruzar a curva, nós estamos testemunhando a mudança de uma tendência.

As condições que nos permitem rastrear um rompimento de média podem ser as seguintes:

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      ((close[i-1]<extMAData[i-1]
        && open[i-1]>extMAData[i-1]
       )
       ||(close[i-2]>extMAData[i-2]
          && open[i-2]>extMAData[i-2]
          && close[i-1]<extMAData[i-1]
          && open[i-1]<extMAData[i-1]
         )
      )

    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }
    else
      if(
        ((close[i-1]>extMAData[i-1]
          && open[i-1]<extMAData[i-1]
         )
         ||(close[i-2]<extMAData[i-2]
            && open[i-2]<extMAData[i-2]
            && close[i-1]>extMAData[i-1]
            && open[i-1]>extMAData[i-1]
           )
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   } // main cycle

Em vez de verificar os preços de Abertura, nós podemos focar nossa atenção apenas nos preços de Fechamento das barras atuais e anteriores. Se elas estão localizadas em lados diferentes da curva, nós estamos testemunhando um rompimento.

O arquivo do indicador é a MA-Breaking.mq5. Executá-lo no gráfico produz a seguinte imagem (no caso do período padrão da curva de 10 barras):

MA — rompimento

Fig. 2. Rompimento da média

Eu acredito que esse método não seja útil sem uma classificação adicional. Parece que o número de setas para cima quase corresponde ao número de setas para baixo, mesmo na área de tendência. Ao aumentar o período da МА, o número de setas diminui, no entanto, isso não ajuda muito, pois um avanço acentuado com uma tendência sem reversão é uma ocorrência bastante rara. Na maioria dos casos, um movimento agudo é precedido por uma lateralização. Então vamos procurar por filtros...


МА como linha de suporte/resistência

A próxima maneira bastante óbvia de usar a curva é aplicá-la como linha de suporte/resistência. Se o preço toca a linha, mas não a cruza (fecha do mesmo lado), nós temos um sinal de negociação. Por exemplo, em 17 de fevereiro, nós podemos ver 3 pontos de movimento descendente e, se não houver filtros adicionais, um ponto de movimento ascendente (no início).

Naturalmente, nów podemos usar essa regra tanto para abrir a primeira negociação quanto para adicionar à existente.

Este conceito é demonstrado no arquivo MA-Support.mq5.

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      (high[i-1]>=extMAData[i-1]
       && close[i-1]<extMAData[i-1]
       && open[i-1]<extMAData[i-1]
      )
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }

    else
      if(
        (low[i-1]<=extMAData[i-1]
         && close[i-1]>extMAData[i-1]
         && open[i-1]>extMAData[i-1]
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   } // Main cycle end

Abaixo está o resultado da operação do código:

МА como linha de suporte/resistência

Fig. 3. Usando a МА como linha de suporte/resistência

Isso parece melhor do que a opção anterior. Se nós usarmos os níveis de take profit ou mesmo simplesmente acumular ordens por setas e sair por uma seta de direção oposta (aparentemente, usando reversão), a chance de negociação lucrativa é alta.

Quanto maior o período da МА, mais baixo é o ângulo e mais distante ela está do preço. Assim, os sinais de rompimento e reversão chegam com menos frequência, mas o nível se torna mais confiável como o nível de suporte/resistência. Deixe-me mostrar um gráfico de 20 períodos para comparação. Nós podemos ver que as reversões são menos frequentes. No entanto, os sinais são provavelmente mais confiáveis, então um nível de stop loss pode ser reduzido.

МА como suporte/resistência (período maior)

Fig. 4. MA com um período grande (20)

Por exemplo, às 4 da manhã Em 17 de fevereiro, a curva vermelha fornece um sinal de compra e nós temos uma perda, pois a curva laranja fornece um sinal de venda. No entanto, no caso da linha vermelha, nós podemos usar os sinais às 8h, 10h e 15h para adicionar à posição.

No caso de períodos maiores da MA, os sinais chegam mais tarde, o que pode causar a perda de parte de um lucro potencial, embora as negociações possam se tornar menos frequentes.


Inclinação

Quanto mais íngreme a inclinação da linha, mais rápido o preço se move e maior a probabilidade de a tendência continuar na próxima vela.

A maneira mais fácil de medir a inclinação é usar a diferença entre os valores atuais e anteriores. Se a diferença for positiva, a curva se move para cima, se a diferença for negativa, ela se move para baixo.

O código do loop principal em MA-Slope.mq5 tem a seguinte aparência:

//--- main cycle
  for(i=start+SlopeShift*2; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]);

    //---

    if(
      slopeIndex<0

    )
     {
      SlopeDownBuffer[i]=slopeIndex;
     }
    else
      if(
        slopeIndex>0
      )
       {
        SlopeUpBuffer[i]=slopeIndex;
       }
   } // main cycle

Aqui SlopeShift especifica o número de barras a serem passadas do preço atual. O valor padrão é um. Mas nós podemos obter resultados bem interessantes aumentando esse valor, por exemplo, usando a diferença dos valores da MA em duas ou três barras.

Eu acredito que a curva resultante deve ser exibida como um histograma. O resultado é mostrado abaixo:

МА — histograma de inclinação

Fig. 5. Histograma de inclinação da curva

A imagem é bem interessante.

Primeiro, é óbvio que nós podemos rastrear e classificar facilmente as flutuações de movimento aleatório. De fato, se a direção da curva mudar apenas durante uma, duas ou três barras, provavelmente é prematuro falar sobre uma mudança de tendência. De qualquer forma, nós devemos ser extremamente cuidadosos para não perdê-la.

Em segundo lugar, as mudanças nas taxas são imediatamente visíveis. Como nós podemos ver, se a altura da coluna do diagrama for menor que um determinado valor, provavelmente estamos diante de uma lateralização. Assim, não seria razoável negociar na direção da pequena inclinação da MA maior que 2-3 barras.

Terceiro, apesar da curva nos segmentos de tendência parecer estar subindo ou descendo quase monotonamente, a taxa de variação real varia muito de barra para barra. Isso sugere algum tipo de valor relativo, que provavelmente ajudará a ver algo que ainda não conseguimos ver.

Vamos testar o (МА-Slope-Index-First.mq5)... Código:

//--- main cycle
  for(i=start+SlopeShift*3; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]+Point()/100)
               /(extMAData[i-2]-extMAData[i-2-SlopeShift]+Point()/100);
    //---

    if(
      slopeIndex<0
    )
     {
      SlopeDownBuffer[i]=slopeIndex;
     }
    else
      if(
        slopeIndex>0
      )
       {
        SlopeUpBuffer[i]=slopeIndex;
       }
   } // main cycle

Adicionando um pequeno valor (Point()/100) ao dividendo e divisor não altera muito o resultado, mas permite evitar o erro de divisão por zero.

A imagem é a seguinte:

MA — inclinação relativa

Fig. 6. Índice relativo da inclinação média

Picos agudos podem ser vistos nas junções. Se nós deslocarmos o gráfico algumas barras para a esquerda, a diferença se tornará ainda mais vívida.

МА — índice relativo deslocado para a esquerda

Fig. 7. Índice relativo da inclinação da MA (deslocado para a esquerda)

A Fig. 7 demonstra vividamente como os valores de pico marcam os limites de um movimento bastante forte. A diferença de valores do pico com a matriz de dados restante é bastante grande. O fato dos "picos" serem tão diferentes uns dos outros em termos de tamanho, bem como o fato de que a diferença entre os picos e outros dados é bem considerável, eles levam ao próximo passo. Como a variação da direção é tão notável, eu não vejo sentido em analisar os histogramas do índice de inclinação relativa. Em vez disso, nós podemos simplesmente tornar a saída mais grosseira, tornando-a binária. Por exemplo, assim (МА-Slope-Index-Bin.mq5):

//--- main cycle
  for(i=start+SlopeShift*3; i<rates_total && !IsStopped(); i++)
   {
    SlopeDownBuffer[i]=0;
    SlopeUpBuffer[i]=0;
    slopeIndex=(extMAData[i-1]-extMAData[i-1-SlopeShift]+Point()/100)
               /(extMAData[i-2]-extMAData[i-2-SlopeShift]+Point()/100);
    //---

    if(
      slopeIndex<=-SlopeThreshold
    )
     {
      SlopeDownBuffer[i]=-1;
     }
    else
      if(
        slopeIndex>=SlopeThreshold
      )
       {
        SlopeUpBuffer[i]=1;
       }
   } // Main cycle


Aqui, o SlopeThreshold é um valor limite da altura da barra do diagrama anterior, na qual o sinal é acionado. Na imagem, o valor do parâmetro é igual a 5.

Inclinação relativa da МА (binário)

Fig. 8. Índice relativo da inclinação da média (binário). SlopeThreshold=5.

Abaixo está outra imagem com o SlopeThreshold=15

Índice de inclinação relativa, SlopeThreshold=15

Fig. 9. Índice relativo da inclinação da média (binário). SlopeThreshold=15.

Essas barras definitivamente merecem um olhar mais atento!

Aparentemente, tais marcadores indicam uma variação na direção da vela atual, ou de 2-3 ou até mais velas após a que foi marcada. Em qualquer caso, há uma clara dependência da tendência na combinação das cores do marcador, a direção principal e a vela real. Claro que nós devemos recolher estatísticas, por exemplo, da forma que descrevi no meu artigo sobre as planilhas. Em combinação com outros métodos fornecidos aqui, o indicador já parece promissor...

Obviamente, as barras binárias no histograma podem ser facilmente substituídas por setas de maneira semelhante aos indicadores anteriores.


Canais baseados numa única Média Móvel

Nós podemos construir os canais baseados em Médias Móveis, além dos métodos descritos acima, para considerar a volatilidade do movimento dos preços. As opções são inúmeras. Eu vou considerar apenas os dois.

O primeiro é muito simples, pois requer apenas o indicador padrão MA. Nós devemos simplesmente adicionar os níveis ao adicionar um indicador no gráfico. A única ressalva é que cada período de tempo tem seus próprios níveis. Eu os reuni num único "pacote" para evitar inseri-los toda vez que alterno o período de tempo. A imagem tem a seguinte aparência para JPY:

Canal simples — MA

Fig. 10. Lista de níveis do canal

A imagem final em H1 é a seguinte:

Canal feito de níveis

Fig. 11. Aparência dos níveis (H1)

Os níveis são definidos para uma reversão aqui. Portanto, se uma vela tocar um nível e retroceder (ou chegar bem perto dele), entre na direção contrária à tendência. Por exemplo, o canal na captura de tela mostra que houve um bom momento para vender em 22 de fevereiro. Nós podemos definir uma ordem no meio da vela de sinal ou no final (aqui, se entrarmos após uma reversão, uma ordem poderia ter sido definida na Mínima da vela, na área dos 115.100, enquanto um nível de stop poderia ter sido definido em 115.265). O alvo imediato está tocando a média, enquanto o alvo final está tocando o limite oposto do mesmo canal.

No entanto, neste caso, também é possível negociar o rompimento do canal estreito. Por exemplo, a vela de 9 horas fechou acima da do limite do canal estreitlo em 22 de fevereiro. Duas velas de alta fecharam acima da média, enquanto a vela de baixa entre elas não se moveu além do limite inferior. A inclinação da МА está claramente diminuindo (isso pode ser visto mais claramente se olharmos para o gráfico com o MA-Slope configurado). Tudo isso pode ser usado como um sinal claro de compra. Um nível de stop pode ser definido em 114.570. O ponto de entrada pode ser calculado usando os níveis. Nós podemos defini-lo em 115.230. Alternativamente, nós podemos usar o trailing stop por velas ou usar qualquer outro método que desejarmos.

Observe que apenas dois canais podem ser vistos no período: o mais interno e o que é um pouco maior. Se nós mudarmos para um período de tempo maior, digamos, D1, o canal +-50 fica quase oculto, enquanto +-300 e +-1500 podem se tornar canais operacionais. O canal mensal também pode ser visto às vezes. Ele pode até fornecer sinais, mas os canais mais visíveis são usados como os principais.

Vários canais (D1)

Fig. 12. Aparência dos níveis (D1)

Uma imagem semelhante pode ser vista na escala semanal/mensal. O quarto canal se encaixa melhor, enquanto o terceiro pode ser usado como interno e auxiliar.

O canal mais interno é projetado para М1-М15.

O princípio de ajuste é óbvio: nós mudamos para o período de tempo necessário e selecionamos o tamanho dos níveis para que nós tenhamos o número mínimo de pontos de contato, além de ter a máxima amplitude possível entre eles. A maneira mais fácil de fazer isso é medir a amplitude da correção essencial no período de tempo atual e dividi-la por 2. A animação abaixo ilustra o processo.

Medindo o tamanho do canal

Fig. 13. Medindo a volatilidade do canal (D1)

Após algumas estimativas aproximadas, talvez seja necessário ajustar o tamanho com mais precisão, mas isso é muito fácil...


Canais baseados em duas Médias Móveis (ATR3x5)

Os canais descritos acima são bons, mas têm algumas desvantagens.

Primeiro, o tamanho do canal deve ser selecionado manualmente para cada período tempo e símbolo. Automatizar o processo parece ser uma tarefa difícil.

Segundo, os níveis não são armazenados em buffers, o que significa que seria difícil usá-los programaticamente.

O canal baseado em Médias Móveis e ATR não possui tais desvantagens. A ideia é simples. Nós levamos dois indicadores de Média Móvel com o período de 3. Um deles é aplicado as Máximas (high), enquanto outro é usado nas Mínimas (low). Em seguida, deslocamos as linhas obtidas para a distância de 5 períodos do ATR na direção apropriada (inferior - abaixo, superior - acima).

O canal está pronto! Ele se encaixa perfeitamente em qualquer símbolo e funciona principalmente numa reversão, pois os rompimentos são bem raros. Eu também adicionei as setas para detectar os toques nos limites do canal.

//--- main cycle
  for(i=start+3; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    MAUpBuffer[i]=extMAUpData[i]+extATRData[i]*DistanceCoefficient;
    MADownBuffer[i]=extMADownData[i]-extATRData[i]*DistanceCoefficient;

    if(
      (high[i-1]>=MAUpBuffer[i-1]
       && close[i-1]<MAUpBuffer[i-1])
      ||(
        close[i-2]>MAUpBuffer[i-2]
        && close[i-1]<MAUpBuffer[i-1]
      )
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/5;
     }
    else
      if(
        (low[i-1]<=MADownBuffer[i-1]
         && close[i-1]>MADownBuffer[i-1])
        ||(
          close[i-2]<MADownBuffer[i-2]
          &&close[i-1]>MADownBuffer[i-1]
        )
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/5;
       }
   }// main cycle

Aqui, DistanceCoeficiente é um parâmetro do indicador que nos permite alterar a distância até os limites do canal ajustando o indicador a condições específicas. O parâmetro pode assumir qualquer valor fracionário. No entanto, não há muito sentido em definir mais de 2, já que as setas desaparecem quase completamente nesse caso, o que significa que nenhuma negociação é realizada.

Canal ATR3x5

Fig. 14. Canal ATR3x5

Obviamente, o indicador pode ser usado em conjunto com qualquer outro indicador descrito (ou não descrito) aqui.

Ao olhar para a imagem, concentre-se como o preço interage com os topos e fundos do indicador. Pode ser útil.


Vários indicadores com diferentes períodos

Até agora, nós consideramos usar uma única linha da MA para receber os sinais de mercado de compra e venda. No entanto, muitos traders acreditam que a precisão da entrada pode ser muito melhorada adicionando outro indicador ou vários indicadores.

Então vamos criar o gráfico com duas curvas com períodos de 5 e 8 barras. Os períodos são retirados da série de Fibo. Um dos períodos descreve a linha "rápida", enquanto outro descreve a linha "lenta".

Duas MAs exibidas simultaneamente

Fig. 15. Duas MAs num único gráfico

Além dos recursos já considerados, agora nós temos a capacidade de ver a posição relativa das curvas e sua "co-direcionalidade" (ou divergência). A distância entre as МАs também aparece.

Cada um dos parâmetros pode fortalecer ou enfraquecer alguns atributos de movimento exibidos por cada uma das curvas, bem como fornecer sinais de entrada independentes.


Posição relativa. Cruzamento de MAs

Se a MA rápida estiver localizada acima da lenta, nós provavelmente estamos testemunhando uma tendência de alta e a probabilidade da próxima vela ser de alta é muito alta. Outros parâmetros também devem ser considerados, por exemplo, a inclinação da linha de sinal, bem como outros parâmetros.

Se a MA rápida estiver abaixo da lenta, nós temos uma tendência de baixa "global" (para o período de tempo atual) e a probabilidade de cada vela subsequente ser de baixa aumenta fortemente até atingirmos o pico...

Nós podemos admitir uma variação de tendência se a MA rápida romper a lenta.

Vamos tentar desenvolver o indicador respondendo ao cruzamento de MAs. Além disso, nós também devemos considerar as lateralizações para reduzir entradas falsas. Isso pode ser feito, por exemplo, considerando o tamanho da inclinação da MA rápida. Neste caso, nós podemos receber o próximo código para buscar os sinais (MA2-Breaking):

//--- main cycle
  for(i=start+3+SlopeShift*2; i<rates_total && !IsStopped(); i++)
   {
    ArrowDownBuffer[i]=0;
    ArrowUpBuffer[i]=0;

    //---

    if(
      extMAFastData[i-1]<extMASlowData[i-1]
      && extMAFastData[i-2]>=extMASlowData[i-2]
      && MASlope(extMAFastData,i-1)<-SlopeThreshold
      && MASlope(extMASlowData,i-1)<SlopeThreshold/SlowDelimiter
    )
     {
      ArrowDownBuffer[i]=high[i]+extATRData[i]/3;
     }
    else
      if(
        extMAFastData[i-1]>extMASlowData[i-1]
        && extMAFastData[i-2]<=extMASlowData[i-2]
        && MASlope(extMAFastData,i-1)>SlopeThreshold
        && MASlope(extMASlowData,i-1)>-SlopeThreshold/SlowDelimiter
      )
       {
        ArrowUpBuffer[i]=low[i]-extATRData[i]/3;
       }
   } // main cycle

Aqui, a MASlope é uma função que calcula a inclinação da MA de maneira semelhante ao exemplo fornecido na seção Slope. Ela aceita a matriz de dados para a curva necessária e o índice de barras em que os cálculos são realizados como parâmetros.

SlopeTreshold — valor limite do diagrama de inclinação MA rápida. Como você deve se lembrar, se a inclinação da MA rápida for muito pequena no momento do cruzamento, nós provavelmente estamos lidando com uma lateralização. A lateralização é geralmente baseada por um grande número de sinais falsos positivos, eventualmente causando perdas.

SlowDelimiter — delimitador do limiar de inclinação da MA lenta. Às vezes, nós podemos ter um sinal muito bom quando a MA rápida já está inclinada para baixo, enquanto a lenta ainda não reverteu, embora esteja próxima da reversão. Em outras palavras, a entrada

MASlope(extMASlowData,i-1)>-SlopeThreshold/SlowDelimiter

significa o seguinte: a inclinação da MA lenta pode ter um pequeno valor negativo (direcionado para baixo, embora ligeiramente), ser igual a zero ou ser positivo, mas não fortemente negativo.

Se nós usarmos o indicador em sua forma "limpa", o limiar e o delimitador devem ser selecionados para cada ferramenta e período de tempo separadamente. Abaixo está o resultado obtido para USDJPY H1 com SlopeTreshold=0.017 e SlowDelimiter=5:

Sinais de cruzamento da MA considerando a inclinação

Fig. 16. Sinais de cruzamento da MA considerando a inclinação

A imagem não tem curvas para que as setas possam ser vistas com mais clareza. Se nós selecionarmos o valor certo de lucro (ou saída por níveis), nós podemos obter lucro quase de todas as setas, definindo níveis de stop que não tenham tanto prejuízo.

A imagem abaixo representa o mesmo gráfico de perto (zoom maior).

Cruzamento de MA (ampliado)

Fig. 17. Cruzamento de MA considerando a inclinação (ampliado)

Como você deve se lembrar, o sinal chega em na vela zero. No entanto, o intervalo anterior é analisado. Então, para entender as razões por trás do desenho de uma seta, nós devemos dar uma olhada no intervalo da linha verde até a barra à esquerda.

Por que nós não temos duas setas à direita? A inclinação não excede o limite para uma MA lenta ou rápida e o indicador considera esse intervalo como lateralizado. No entanto, se eu tivesse negociado essa área com esses sinais, eu provavelmente não teria motivos para reclamar, pois a tendência subiu ainda mais e possibilitou vender a um preço melhor.

Cruzamento da MA — a tendência continua

Fig. 18. Sinais de cruzamento: a tendência continua.


Conclusão

Eu ainda tenho algumas coisas a dizer sobre o assunto, mas farei isso em outro artigo.

Neste artigo, eu considerei coisas básicas relacionadas às MAs e que nos permitem rastrear a direção geral do movimento dos preços.

Além disso, eu mostrei os códigos de indicadores demonstrando graficamente o uso dos principais parâmetros da MA para a tomada de decisões de negociação.

Eu mostrei as maneiras de melhorar uma estratégia de negociação combinando propriedades de indicadores conhecidos e aplicando-os juntos.

No próximo artigo, eu espero revelar como nós podemos calcular uma posição de cada vela com base em dados sobre médias móveis e indicadores derivados delas.

O artigo não oferece garantias de que as informações contidas aqui o ajudarão em sua negociação.

Que o lucro ficar com você!

Traduzido do russo pela MetaQuotes Ltd.
Artigo original: https://www.mql5.com/ru/articles/10479

Arquivos anexados |
jx-Breaking.mq5 (5.56 KB)
h9-Support.mq5 (5.22 KB)
lw-Slope.mq5 (4.66 KB)
ATR3x5.mq5 (7.34 KB)
wr2-Crossing.mq5 (6.5 KB)
Desenvolvendo um EA de negociação do zero (Parte 21): Um novo sistema de ordens (IV) Desenvolvendo um EA de negociação do zero (Parte 21): Um novo sistema de ordens (IV)
Finalmente o sistema visual estará funcionando .... não totalmente ainda. Aqui vamos terminar de fazer as mudanças básicas, e elas não serão poucas, serão muitas e todas elas necessárias e todo o trabalho será bastante interessante.
Gráficos na biblioteca DoEasy (Parte 97): Processando o movimento dos objetos-forma independentemente Gráficos na biblioteca DoEasy (Parte 97): Processando o movimento dos objetos-forma independentemente
No artigo de hoje, veremos como gerar o movimento independente de qualquer objeto-forma por meio do mouse, além disso, complementaremos a biblioteca com mensagens de erro e com as novas propriedades de negócios que foram introduzidas anteriormente no terminal e em MQL5.
Como desenvolver um sistema de negociação baseado no indicador RSI Como desenvolver um sistema de negociação baseado no indicador RSI
Neste artigo, eu compartilharei com você um dos indicadores mais populares e comumente usados no mundo das negociações, o RSI. Você aprenderá como desenvolver um sistema de negociação usando este indicador.
Como desenvolver um sistema de negociação baseado no indicador Envelopes Como desenvolver um sistema de negociação baseado no indicador Envelopes
Neste artigo, eu compartilharei com você um dos métodos de como negociar pelas bandas. Desta vez, nós consideraremos o indicador Envelopes e veremos como é fácil criar algumas estratégias baseadas no indicador Envelopes.