English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Analisando padrões de velas

Analisando padrões de velas

MetaTrader 5Sistemas de negociação | 23 janeiro 2014, 14:40
47 450 3
Dmitry Voronkov
Dmitry Voronkov


"Através da investigação do antigo aprendemos o novo"

Introdução

A plotagem de gráficos candelabro e análise de padrões velas é uma linha incrível de análise técnica. A vantagem dos candelabros é que eles representam dados de uma forma que é possível ver a energia dentro dos dados.

Candelabros fornecem uma imagem mental vívida de negociação. Após leitura e um pouco de prática, candelabros serão parte do seu arsenal analítico. Gráficos candlestick japoneses podem ajudar você a penetrar "dentro" dos mercados financeiros, o que é bastante difícil de ser feito com outros métodos gráficos. Eles são igualmente adequados para todos os mercados.

1. Tipos de velas

Um dos primeiros analistas que começaram a prever o movimento em preços no futuro, baseado em preços passados, foi o japonês lendário Munehisa Homma. Os princípios de negociação aplicados por Homma em negociação no mercado de arroz iniciou a técnica de velas japonesas, que hoje é amplamente usada no Japão e exterior.

Estrutura da vela

Figura 1. Estrutura da vela

Considere a estrutura de uma vela (figura 1). O retângulo representando a diferença entre os preços abertos e fechados, é chamado de corpo da vela. A altura do corpo representa o intervalo entre os preços de abertura e fechamento do período de negociação. Quando o preço de fechamento é maior do que o preço de abertura, o corpo da vela é branco (figura 1a ). Se o corpo é preto (figura 1 b) isso significa que o preço de fechamento estava abaixo do preço de abertura.

Velas podem possuir sombras - a superior e inferior, o comprimento das sombras depende da distância entre os preços de abertura/fechamento e dos preços mínimo/máximo.

Velas são desenhadas no gráfico uma a uma, formando vários padrões. De acordo com a teoria, alguns padrões podem iniciar com uma certa probabilidade de que a tendência está mudando, ou confirmar a tendência, ou mostrar que o mercado está indeciso.

Longos corpos de velas, como regra, dizem sobre a pressão dos compradores ou vendedores (dependendo da cor da vela). Corpos curtos significam que a luta entre otimistas (touros) e pessimistas (ursos) foi fraca.

Velas Descrição

"Velas longas". O vínculo nas velas longas é espalhado na literatura sobre candelabros japoneses.
O termo "longo" refere-se ao comprimento do corpo de uma vela, a diferença entre o preço de abertura e o preço de fechamento.
É melhor considerar os movimentos de preço mais recentes para determinar o que é longo, e o que não é.
Cinco ou dez dias anteriores - isso é um período de tempo bem adequado para se chegar a uma conclusão concreta.

"Velas curtas". A determinação de velas curtas pode ser baseada na mesma metodologia que no caso das velas longas, com resultados similares.
Além disso, há muitas velas que não caem em nenhuma dessas duas categorias.
"Marubozu". Em japonês "Marubozu" significa quase corajoso.
De qualquer forma, o significado do termo reflete o fato de que o corpo da vela ou não possui nenhuma sombra para cima ou para baixo, ou que elas são muito pequenas.

Marubozu preto - um corpo longo e preto sem uma sombra em um dos lados. Ele frequentemente se torna parte do padrão de continuação pessimista (urso) ou padrão reverso otimista (touro), especialmente quando aparece em uma tendência de baixa. Uma vela longa e preta indica uma grande vitória dos pessimistas, então frequentemente parece ser o primeiro dia de diversos padrões reversos de caráter de otimismo.

Marubozu branco - um corpo longo e branco sem uma sombra em um dos lados. Esse é uma vela muito forte. Em contraste com o marubozu preto ela frequentemente acaba sendo parte do padrão de otimismo de continuidade ou um padrão reverso de pessimismo.
"Doji". Se o corpo da vela é tão pequeno que os preços de abertura e fechamento são os mesmos, é chamado de Doji.
A exigência de que preços abertos e fechados devem ser exatamente iguais, impõe restrições estritas sobre os dados e Doji poderia aparecer muito raramente.
Se a diferença de preço entre os preços de abertura e fechamento não exceder alguns pontos (mudança mínima de preço), isso é mais do que o suficiente.
"Piões" (spinning tops). São velas pequenas com sombra superior e/ou inferior mais longa que o corpo.
Algumas vezes eles são chamados de Doji "branco" e "preto". Koma indica a indecisão de otimistas (touros) e pessimistas (ursos).
A cor do corpo do Koma, assim como o comprimento de sua sombra, não é importante. O pequeno corpo relativo às sombras é o que faz o pião.

"Homem enforcado" (hanging man) e "Martelo". Essas são velas com sombras inferiores mais longas e corpos curtos. Os corpos estão no topo da faixa de preços.
A propriedade surpreendente dessas velas é que elas podem ser de alta e de baixa, dependendo da fase das tendências, nas quais elas aparecem.
O surgimento dessas velas em uma tendência em decadência é um sinal que sua dominância no mercado está chegando ao fim, nesse caso a vela é chamada de "o martelo".
Se a vela aparece durante um tendência em alta, ela indica seu possível fim, e a vela possui um nome sinistro, "homem enforcado" (hanging man).
"Um começo". Aparece cada vez que o corpo pequeno surge sempre que um corpo pequeno abre ou fecha a partir do corpo longo anterior, a cor do corpo não é importante.
De forma ideal, a lacuna deve capturar também sombras, mas não é completamente necessário. A estrela indica alguma incerteza prevalecendo no mercado.
Estrelas são inclusas em muitos padrões de velas, principalmente reversão.

Tabela 1. Tipos de velas

Velas separadas são extremamente importantes para a análise de combinação das velas. Quando um analista as usa separadamente e, depois, em combinação com outras velas, o estado psicológico do mercado é revelado.

2. Identificação dos tipos básicos de velas

2.1. Estruturas necessárias

Padrões da velas podem ser uma vela separada ou consistir de algumas deles. Para os padrões de velas, há certas regras de reconhecimento.

Exemplo: Estrela da noite (padrão de baixa). A tendência está para cima. A primeira e a terceira velas são "longas". Sombras das estrelas são curtas, a cor não importa. O padrão clássico: separação da estrela do fechamento da primeira vela, para forex e dentro do dia: fechamento da primeira vela e abertura da estrela são iguais. A terceira vela é fechada dentro do corpo do primeiro.

Então vamos aprender a reconhecer os tipos de velas. Para esse propósito, escrevemos a função RecognizeCandle, que vai reconhecer o tipo de vela e retornar a informação necessária.

//+------------------------------------------------------------------+
//|   Function of candlestick type recognition                       |
//+------------------------------------------------------------------+
bool RecognizeCandle(string symbol,ENUM_TIMEFRAMES period, datetime time,int aver_period,CANDLE_STRUCTURE &res)
Onde:
  • symbol - o nome do símbolo; 
  • period – período do gráfico;
  • time – tempo aberto da vela;
  • aver_period - período da média;
  • res - uma estrutura, na qual o resultado é retornado.

Vamos definir quais resultados precisamos, baseado nas regras de reconhecimento dos padrões da vela:

  • abertura, fechamento, alto e baixo;
  • tempo de abertura da vela;
  • direção da tendência;
  • vela de alta ou de baixa;
  • tamanho do corpo da vela – um valor absoluto;
  • tipo de vela (da tabela 1).

Vamos criar uma estrutura:

//+------------------------------------------------------------------+
//| Structure CANDLE_STRUCTURE                                       |
//+------------------------------------------------------------------+
struct CANDLE_STRUCTURE
  {
   double            open,high,low,close; // OHLC
   datetime          time;     //Time
   TYPE_TREND       trend;    //Trend
   bool              bull;     //Bull candlestick
   double            bodysize; //Body size
   TYPE_CANDLESTICK  type;    //Type of candlestick
  };
   

Onde tendência e tipo são variáveis do tipo de enumeração:

//+------------------------------------------------------------------+
//|   ENUM TYPE CANDLESTICK                                          |
//+------------------------------------------------------------------+
enum TYPE_CANDLESTICK
  {
   CAND_NONE,          //Unrecognized
   CAND_MARIBOZU,       //Marubozu
   CAND_MARIBOZU_LONG, //Marubozu long
   CAND_DOJI,           //Doji
   CAND_SPIN_TOP,       //Spinning Tops
   CAND_HAMMER,         //Hammer
   CAND_INVERT_HAMMER, //Reverse hammer
   CAND_LONG,           //Long
   CAND_SHORT,          //Short
   CAND_STAR            //Star
  };
//+------------------------------------------------------------------+
//|   TYPE_TREND                                                     |
//+------------------------------------------------------------------+
enum TYPE_TREND
  {
   UPPER,   //Upward
   DOWN,    //Downward
   LATERAL  //Lateral
  }; 

Vamos considerar a função RecognizeCandle.

2.2. Reconhecimento do tipo de vela

//+------------------------------------------------------------------+
//| Function of recognition of candlestick type                      |
//+------------------------------------------------------------------+
bool RecognizeCandle(string symbol,ENUM_TIMEFRAMES period, datetime time,int aver_period,CANDLE_STRUCTURE &res)
  {
   MqlRates rt[];
//--- Get data of previous candlesticks
   if(CopyRates(symbol,period,time,aver_period+1,rt)<aver_period)
     {
      return(false);
     }

Primeiro, utilizando a função CopyRates obtenha dados das velas aver_period +1 anteriores. Observe a ordem na qual os dados são armazenados no arranjo que obtemos.

Se os dados foram recebidos sem erros, comece a preencher a nossa estrutura de retorno CANDLE_STRUCTURE com dados.

   res.open=rt[aver_period].open;
   res.high=rt[aver_period].high;
   res.low=rt[aver_period].low;
   res.close=rt[aver_period].close;
   res.time=rt[aver_period].time;

Definindo a tendência. O que é uma tendência? Se essa pergunta tivesse uma resposta relativamente completa, os segredos do mercado seriam desvendados. Nesse artigo veremos o método para determinar a tendência utilizando uma média móvel.

MA=(C1+C2+…+Cn)/N,
onde C – preços de fechamento, N – número de barras.

L. Morris em seu livro "Candlestick Charticng Explained. Timeless techniques for Trading Stocks and Futures" utiliza uma média móvel com um período de dez para identificar uma tendência de curto prazo; se o preço de fechamento está acima da média - a tendência está em alta, se abaixo - está em baixa.

É assim que se parece:

//--- Define the trend direction
   double aver=0;
   for(int i=0;i<aver_period;i++)
   {
      aver+=rt[i].close;
   }
   aver=aver/aver_period;
   
   if(aver<res.close) res.trend=UPPER;
   if(aver>res.close) res.trend=DOWN;
   if(aver==res.close) res.trend=LATERAL;
    

Em seguida definimos se a nossa vela é de caráter de alta (bullish) ou de baixa (bearish), calculamos o valor absoluto do corpo da vela, o tamanho das sombras, o tamanho médio do corpo da vela durante o aver_period e outros dados intermediários necessários.

//--- Define of it bullish or bearish
   res.bull=res.open<res.close;
//--- Get the absolute value of the candlestick body size
   res.bodysize=MathAbs(res.open-res.close);
//--- Get the size of shadows
   double shade_low=res.close-res.low;
   double shade_high=res.high-res.open;
   if(res.bull)
     {
      shade_low=res.open-res.low;
      shade_high=res.high-res.close;
     }
   double HL=res.high-res.low;
//--- Calculate the average body size of previous candlesticks
   double sum=0;
   for(int i=1; i<=aver_period; i++)
      sum=sum+MathAbs(rt[i].open-rt[i].close);
   sum=sum/aver_period;
    

Agora vamos lidar com a identificação dos tipos de velas.

2.3. Regras para a identificação de tipos de velas

Velas "longas". Para definir velas longas, verifique o valor da vela atual relativo ao valor médio do aver_period das velas anteriores.

(Corpo) > (corpo médio dos últimos cinco dias) *1.3

//--- long 
   if(res.bodysize>sum*1.3) res.type=CAND_LONG;
    

Velas "curtas". Para definir velas "curtas", utiliza o mesmo princípio do que para as "longas", mas com uma condição modificada.

(Corpo) > (corpo médio dos últimos X dias) *0.5

//--- short 
   if(res.bodysize<sum*0.5) res.type=CAND_SHORT;
   

Doji. Doji ocorre quando preços de abertura e fechamento são iguais. Esse é uma regra muito estrita. No caso da maior parte dos tipos de dados, podemos tolerar alguns desvios em encontrar padrões. A fórmula permite encontrar a diferença de porcentagem entre os dois preços dentro de limites aceitáveis.

(Corpo do dodji) < (amplitude dos preços mais altos aos mais baixos) * 0.03

//--- doji
   if(res.bodysize<HL*0.03) res.type=CAND_DOJI;
    

"Marubozu". Essa é uma vela sem alto ou baixo, ou elas são muito pequenas.

(sombra inferior) < (corpo) * 0.03 ou (sombra superior) < (corpo) * 0.03

//--- maribozu
   if((shade_low<res.bodysize*0.01 || shade_high<res.bodysize*0.01) && res.bodysize>0)
     {
      if(res.type==CAND_LONG)
         res.type=CAND_MARIBOZU_LONG;
      else
         res.type=CAND_MARIBOZU;
     }
   

Quando estava escrevendo um indicador para esse artigo, foi necessário separar os "Maribozus" "longos", para os quais tive que adicionar a condição para verificar velas "longas".

"Martelo" e "Homem enforcado". O corpo é localizado na parte superior da faixa diária e a sombra inferior é muito mais longa do que o corpo. Também é necessário considerar o comprimento da sombra superior, se houver alguma. A razão entre o corpo e a sombra inferior é definida como a razão entre o comprimento do corpo e o comprimento da sombra inferior:

(sombra inferior)>(corpo)*2 e (sombra superior)< (corpo)*0.1

//--- hammer
   if(shade_low>res.bodysize*2 && shade_high<res.bodysize*0.1) res.type=CAND_HAMMER;

"Estrela cadente" (shooting star) e "Martelo invertido" são similares ao "Martelo", mas com a condição oposta:

(sombra inferior) (corpo)*2

//--- invert hammer
   if(shade_low<res.bodysize*0.1 && shade_high>res.bodysize*2) res.type=CAND_INVERT_HAMMER;
   

"Piões". Essas são velas "curtas" com sombras mais longas que o corpo:

(sombra inferior) > (corpo) e (sombra superior) > (corpo)

//--- spinning top
   if(res.type==CAND_SHORT && shade_low>res.bodysize && shade_high>res.bodysize) res.type=CAND_SPIN_TOP;
   

O texto fonte das descrições de função e estrutura estão no arquivo anexado CandlestickType.mqh.

Também para o artigo, o indicador Color.mq5 do tipo de vela está anexo, que pinta velas no gráfico dependendo do seu tipo.


Figura 2. Exemplo de Color.mq5 do tipo de vela

Então criamos uma função que retorna todos os dados necessários.

Agora podemos proceder com a criação de um indicador que reconhecerá os padrões de velas.

3. Padrões de vela e algoritmos para sua identificação

Um padrão de vela pode ser tanto uma única vela ou consistir de diversas velas, raramente mais que cinco ou seis. Na literatura japonesa, se referiam algumas vezes aos padrões consistindo de um grande número de velas. A ordem na qual vamos considerar os padrões, não afeta a sua importância ou capacidades de previsão.

Padrões de velas são divididos em dois tipos - padrões reversos e padrões de continuação.

Vamos considerar padrões simples (uma vela) primeiro, e então os complexos (diversas velas). A figura contém o padrão que começará com duas pequenas linhas verticais. Essas linhas simplesmente indicam a direção da tendência anterior do mercado, e não devem ser utilizados como uma indicação direta das relações entre os padrões.

Os padrões serão apresentados em uma tabela, na primeira linha - padrão otimista (bull), na segunda - o padrão pessimista (bearish) oposto, se houver um.

3.1. PADRÕES REVERSOS DE VELAS

3.1.1. Padrões consistindo de uma única vela

Obter dados para uma única vela:

//--- calculation of candlestick patterns
   for(int i=limit;i<rates_total-1;i++)
     {
      CANDLE_STRUCTURE cand1;
      if(!RecognizeCandle(_Symbol,_Period,time[i],InpPeriodSMA,cand1))
         continue;
/* Checking patterns with one candlestick */

E reconhecer padrões.

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Martelo
invertido
(otimista)

Compra

Tendência em baixa.
A sombra superior não é menor do que 2 e não maior do que 3 vezes maior do que o corpo.
Não há sombra inferior, ou ela é muito curta (não mais do que 10% da faixa da vela).
A cor do corpo a longo prazo não é importante, a curto prazo - martelo branco é muito mais forte do que o preto.
É sugerida uma confirmação.

Homem enforcado
(pessimista)

Venda

Tendência em alta.
A sombra inferior não é menor do que 2 e não maior do que 3 vezes maior do que o corpo.
Não há sombra superior, ou ela é muito curta (não mais do que 10% da faixa da vela).
A cor do corpo a longo prazo não é importante, a curto prazo - o homem enforcado preto é muito mais forte do que o branco.
É sugerida uma confirmação.

      //------      
      // Inverted Hammer the bull model 
      if(cand1.trend==DOWN && // check the trend direction
         cand1.type==CAND_INVERT_HAMMER) // check the "inverted hammer"
        {
         comment=_language?"Inverted hammer";
         DrawSignal(prefix+"Inverted Hammer the bull model"+string(objcount++),cand1,InpColorBull,comment);
        }
      // Handing Man the bear model 
      if(cand1.trend==UPPER && // check the trend direction
         cand1.type==CAND_HAMMER) // check "hammer"
        {
         comment=_language?"Hanging Man";
         DrawSignal(prefix+"Hanging Man the bear model"+string(objcount++),cand1,InpColorBear,comment);
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Martelo
(otimista)

Compra

Tendência em baixa.
A sombra inferior não é menor do que 2 e não maior do que 3 vezes maior do que o corpo.
Não há sombra superior, ou ela é muito curta (não mais do que 10% da faixa da vela).
A cor do corpo a longo prazo não é importante, a curto prazo - martelo branco é muito mais forte do que o preto.
É sugerida uma confirmação.
Estrela cadente
(pessimista)

Venda

Tendência em alta.
A sombra superior é pelo menos 3 vezes maior do que o corpo.
Não há sombra inferior, ou ela é muito curta (não mais do que 10% da faixa da vela).
A lacuna de preços entre a estrela e a vela anterior.
Forex: o preço de fechamento da vela anterior e a abertura da estrela são iguais.
A cor do corpo não importa.
Confirmação é sugerida.

      //------      
      // Hammer the bull model 
      if(cand1.trend==DOWN && //check the trend direction
         cand1.type==CAND_HAMMER) // check the hammer
        {
         comment=_language?"Hammer";
         DrawSignal(prefix+"Hammer the bull model"+string(objcount++),cand1,InpColorBull,comment);
        }
      //------      
      // Shooting Star the bear model 
      if(cand1.trend==UPPER && cand2.trend==UPPER && //check the trend direction
         cand2.type==CAND_INVERT_HAMMER) // check the inverted hammer
        {
         comment=_language?"Shooting Star";
         if(_forex)// if forex
           {
            if(cand1.close<=cand2.open) // close 1 less equal open 1
              {
               DrawSignal(prefix+"Shooting Star the bear model"+string(objcount++),cand2,InpColorBear,comment);
              }
           }
         else
           {
            if(cand1.close<cand2.open && cand1.close<cand2.close) // 2 candlestick detached from 1
              {
               DrawSignal(prefix+"Shooting Star the bear model"+string(objcount++),cand2,InpColorBear,comment);
              }
           }
        }
   

Gostaria de chamar a sua atenção para o fato de que no caso da "estrela cadente" precisamos na verdade de duas velas, porque é levado em consideração os termos de reconhecimento do corpo do dia anterior.

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Cinto apertado
(otimista)



Compra

O padrão
não está
implementado
Tendência em baixa.
Abertura de uma vela com uma grande lacuna na direção da tendência.
Vela branca — «marubozu» «longo».
O corpo da vela branca é muito maior do que o corpo da vela anterior.
Confirmação é sugerida.
Cinto apertado
(otimista)


Venda

O padrão
não está
implementado
Tendência em alta.
Abertura de uma vela com uma grande lacuna na direção da tendência.
Vela preta — «marubozu» «longo».
O corpo da vela preta é muito maior do que o corpo da vela anterior.
Confirmação é sugerida.

      //------      
      // Belt Hold the bull model 
      if(cand2.trend==DOWN && cand2.bull && !cand1.bull &&// check the trend direction and direction of the candlestick
         cand2.type==CAND_MARIBOZU_LONG && // check the "long" marubozu
         cand1.bodysize<cand2.bodysize && cand2.close<cand1.close) // the body of the first candlestick is smaller than the body of the second one, close of the second one is below the close of the first
        {
         comment=_language?"Belt Hold";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Belt Hold the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
           }
        }
      // Belt Hold the bear model
      if(cand2.trend==UPPER && !cand2.bull && cand1.bull && // check the trend direction and direction of the candlestick
         cand2.type==CAND_MARIBOZU_LONG && // check the "long" marubozu
         cand1.bodysize<cand2.bodysize && cand2.close>cand1.close) // the body of the first candlestick is smaller than the body of the second one, close of the second one is above the close of the first
        {
         comment=_language?"Belt Hold";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Belt Hold the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
           }
        }

Como no caso da "Estrela cadente", duas velas são utilizadas, porque o corpo do dia anterior é levado em conta para o reconhecimento do padrão.

3.1.2. Padrões consistindo de duas velas

Adicione outra vela:

/* Checking patterns with two candlesticks */
      CANDLE_STRUCTURE cand2;
      cand2=cand1;
      if(!RecognizeCandle(_Symbol,_Period,time[i-1],InpPeriodSMA,cand1))
         continue;

E reconhecer padrões:

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Engolfo
(otimista)

Compra

Tendência em baixa.
O corpo da segunda vela cobre completamente o corpo do primeira.
Forex: Fechamento da vela preta e abertura da branca são iguais.
Sombras não importam.
Confirmação é sugerida.

Engolfo
(pessimista)

Venda

Tendência em alta.
O corpo da segunda vela cobre completamente o corpo do primeira.
Forex: Fechamento da vela branca e abertura da preta são iguais.
Sombras não importam.
Confirmação é sugerida.

      //------      
      // Engulfing the bull model
      if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && cand2.bull && // check the trend direction and direction of the candlestick
         cand1.bodysize<cand2.bodysize) // the body of the second candlestick is larger than that of the first
        {
         comment=_language?"Engulfing";
         if(_forex)// if forex
           {
            if(cand1.close>=cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second
              {
               DrawSignal(prefix+"Engulfing the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
              }
           }
         else
           {
            if(cand1.close>cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second
              {
               DrawSignal(prefix+"Engulfing the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
              }
           }
        }
      // Engulfing the bear model
      if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && // check the trend direction and direction of the candlestick
         cand1.bodysize<cand2.bodysize) // the body of the second candlestick is larger than that of the first
        {
         comment=_language?"Engulfing";
         if(_forex)// if forex
           {
            if(cand1.close<=cand2.open && cand1.open>cand2.close) //the body of the first candlestick is inside the body of the second
              {
               DrawSignal(prefix+"Engulfing the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
              }
           }
         else
           {
            if(cand1.close<cand2.open && cand1.open>cand2.close) // close 1 less equal to open 2 or open 1 larger equal to close 2
              {
               DrawSignal(prefix+"Engulfing the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
              }
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Harami de cruz (otimista)

Compra

Tendência em baixa.
A primeira vela do padrão é longa e preta.
Doji está dentro do alcance da primeira vela, incluindo as sombras.
Forex: doji está no nível do fechamento da primeira vela. Se as sombras do Doji são pequenas, o padrão deveria ser considerado uma estrela Doji para forex.
Confirmação é sugerida.

Harami de cruz
(pessimista)

Venda

Tendência em alta.
A primeira vela do padrão é longa e branca.
Doji está dentro do alcance da primeira vela, incluindo as sombras.
Forex: doji está no nível do fechamento da primeira vela. Se as sombras do Doji são pequenas, o padrão deveria ser considerado uma estrela Doji para forex.
Confirmação é sugerida.

      //------      
      // Harami Cross the bull model
      if(cand1.trend==DOWN && !cand1.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) // checking the "long" first candlestick and doji
        {
         comment=_language?""Harami Cross";
         if(_forex)// if forex
           {
            if(cand1.close<=cand2.open && cand1.close<=cand2.close && cand1.open>cand2.close) // doji inside the body of the first candlestick
              {
               DrawSignal(prefix+"Harami Cross the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
              }
           }
         else
           {
            if(cand1.close<cand2.open && cand1.close<cand2.close && cand1.open>cand2.close) // doji inside the body of the first candlestick
              {
               DrawSignal(prefix+"Harami Cross the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
              }
           }
        }
      // Harami Cross the bear model
      if(cand1.trend==UPPER && cand1.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) //  checking the "long" candlestick and doji
        {
         comment=_language?"Harami Cross";
         if(_forex)// if forex
           {
            if(cand1.close>=cand2.open && cand1.close>=cand2.close && cand1.close>=cand2.close) //  doji inside the body of the first candlestick
              {
               DrawSignal(prefix+"Harami Cross the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
              }
           }
         else
           {
            if(cand1.close>cand2.open && cand1.close>cand2.close && cand1.open<cand2.close) //  doji inside the body of the first candlestick
              {
               DrawSignal(prefix+"Harami Cross the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
              }
           }
        }
   

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Harami
(otimista)

Compra

Tendência em baixa.
O corpo da primeira vela "longa" completamente engolfa o corpo da segunda.
Sombras não importam.
Forex: Fechamento da vela preta e abertura da branca são iguais.
Confirmação é sugerida.

Harami
(pessimista)

Venda

Tendência em alta.
O corpo da primeira vela "longa" completamente engolfa o corpo da segunda.
Sombras não importam.
Forex: Fechamento da vela branca e abertura da preta são iguais.
Confirmação é sugerida.

      //------      
      // Harami the bull model
      if(cand1.trend==DOWN && !cand1.bull && cand2.bull &&// check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) &&  // checking the "long"first candlestick
          cand2.type!=CAND_DOJI && cand1.bodysize>cand2.bodysize) // the second candlestick is not doji and the body of the first is larger than the body of the second
        {
         comment=_language?"Harami";
         if(_forex)// if forex
           {
            if(cand1.close<=cand2.open && cand1.close<=cand2.close && cand1.open>cand2.close) // body of the second candlestick is inside the body of the first
              {
               DrawSignal(prefix+"Harami the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
              }
           }
         else
           {
            if(cand1.close<cand2.open && cand1.close<cand2.close && cand1.open>cand2.close) // body of the second candlestick is inside the body of the first
              {
               DrawSignal(prefix+"Harami the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
              }
           }
        }
      // Harami the bear model
      if(cand1.trend==UPPER && cand1.bull && !cand2.bull &&// check the trend direction and direction of candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) &&  // checking the "long" first candlestick
          cand2.type!=CAND_DOJI && cand1.bodysize>cand2.bodysize) // the second candlestick is not doji and body of the first candlestick is larger than that of the second
        {
         comment=_language?"Harami";
         if(_forex)// if forex
           {
            if(cand1.close>=cand2.open && cand1.close>=cand2.close && cand1.close>=cand2.close) // doji is inside the body of the first candlestick
              {
               DrawSignal(prefix+"Harami the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
              }
           }
         else
           {
            if(cand1.close>cand2.open && cand1.close>cand2.close && cand1.open<cand2.close) //doji is inside the body of the first candlestick
              {
               DrawSignal(prefix+"Harami the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
              }
           }
        }
   

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Estrela doji
(otimista)

Compra

Tendência em baixa.
A primeira vela do padrão é longa e preta.
A segunda seção - doji com uma quebra na direção da tendência.
Forex: sem quebra.
Sombras do doji são curtas.
Confirmação é sugerida.

Estrela doji
(pessimista)

Venda

Tendência em alta.
A primeira vela do padrão é longa e branca.
A segunda seção - doji com uma quebra na direção da tendência.
Forex: sem quebra.
Sombras do doji são curtas.
Confirmação é sugerida.

      //------      
      // Doji Star the bull model 
      if(cand1.trend==DOWN && !cand1.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) // checking 1 "long" candlestick and 2 doji
        {
         comment=_language?"Doji Star";
         if(_forex)// if forex
           {
            if(cand1.close>=cand2.open) // open of doji is below or equal to close of the first candlestick
              {
               DrawSignal(prefix+"Doji Star the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);

              }
           }
         else
           {
            if(cand1.close>cand2.open && cand1.close>cand2.close) // the body of doji is alienated from the body of the first candlestick
              {
               DrawSignal(prefix+"Doji Star the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);

              }
           }
        }
      // Doji Star the bear model 
      if(cand1.trend==UPPER && cand1.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) // checking 1 "long" candlestick and 2 doji
        {
         comment=_language?"Doji Star";
         if(_forex)// if forex
           {
            if(cand1.close<=cand2.open) // // open of doji is above or equal to close of the first candlestick
              {
               DrawSignal(prefix+"Doji Star the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);

              }
           }
         else
           {
            if(cand1.close<cand2.open && cand1.close<cand2.close) // // the body of doji is alienated from the body of the first candlestick
              {
               DrawSignal(prefix+"Doji Star the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);

              }
           }
        }
   

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Padrão de piercing
(otimista)

Compra

Tendência em baixa.
Ambas as velas são longas.
Abertura da vela branca está abaixo do mínimo do preto.
Forex: fechamento da vela preta e abertura da branca são iguais.
A vela branca está fechada dentro da vela preta e cobre mais do que 50% do corpo. (Para mercados de ações: ao contrário da nuvem negra, essa exigência não tem exceções.)
A confirmação não é necessária para o modelo clássico, é necessária para Forex.
Nuvem negra (pessimista)

Venda

Tendência em alta.
Ambas as velas são longas.
Abertura da vela preta está abaixo do máximo da vela branca.
Forex: fechamento da vela branca e abertura da preta são iguais.
A vela preta fecha dentro da vela branca e cobre mais do que 50% do corpo.
A confirmação não é necessária para o modelo clássico, é necessária para Forex.

            //------      
            // Piercing line the bull model 
            if(cand1.trend==DOWN  &&  !cand1.bull  &&  cand2.trend==DOWN  &&  cand2.bull && // check the trend direction and direction of the candlestick
               (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
               cand2.close>(cand1.close+cand1.open)/2)// close of the second is above the middle of the first
              {
               comment=_language?"Piercing Line";
               if(_forex)// if forex
                 {
                  if(cand1.close>=cand2.open && cand2.close<=cand1.open)
                    {
                     DrawSignal(prefix+"Gleam in clouds"+string(objcount++),cand1,cand2,InpColorBull,comment);
                    }
                 }
               else
                 {
                  if(cand2.open<cand1.low && cand2.close<=cand1.open) // open of the second candlestick is below LOW of the first, 
                    {
                     DrawSignal(prefix+"Piercing Line"+string(objcount++),cand1,cand2,InpColorBull,comment);
                    }
                 }
              }
            // Dark Cloud Cover the bear model 
            if(cand1.trend==UPPER  &&  cand1.bull  &&  cand2.trend==UPPER && !cand2.bull && // check the trend direction and direction of the candlestick
               (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
               cand2.close<(cand1.close+cand1.open)/2)// close 2 is below the middle of the body of 1
              {
               comment=_language?"Dark Cloud Cover";
               if(_forex)// if forex
                 {
                  if(cand1.close<=cand2.open && cand2.close>=cand1.open)
                    {
                     DrawSignal(prefix+"Dark Cloud Cover"+string(objcount++),cand1,cand2,InpColorBear,comment);
                     
                    }
                 }
               else
                 {
                  if(cand1.high<cand2.open && cand2.close>=cand1.open)
                    {
                     DrawSignal(prefix+"Dark Cloud Cover"+string(objcount++),cand1,cand2,InpColorBear,comment);
                     
                    }
                 }
              }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Linhas de encontro
(otimista)

Compra

O padrão
não está
implementado
Tendência em baixa.
A primeira vela do padrão é longa e preta.
Abertura da vela branca está com uma lacuna grande e abaixo do mínimo da vela preta.
Os preços de fechamento de ambas as velas são os mesmos.
O corpo da vela branca é muito maior do que o corpo da vela preta.
Confirmação é sugerida.
Linhas de encontro
(pessimista)

Venda

O padrão
não está
implementado
Tendência em alta.
A primeira vela do padrão é longa e branca.
Abertura da vela preta está com uma lacuna grande e está acima do máximo da vela branca.
Os preços de fechamento de ambas as velas são os mesmos.
O corpo da vela preta é maior do que o corpo da vela branca.
Confirmação é sugerida.

      // Meeting Lines the bull model
      if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && cand2.bull && // check the trend direction and the candlestick direction
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand1.close==cand2.close && cand1.bodysize<cand2.bodysize && cand1.low>cand2.open) // close prices are equal, size of the first one is less than of the second one, open of the second is below Low of the first
        {
         comment=_language?"Meeting Lines";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Meeting Lines the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
           }
        }
      // Meeting Lines the bear model 
      if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && // check the trend direction and the candlestick direction
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand1.close==cand2.close && cand1.bodysize<cand2.bodysize && cand1.high<cand2.open) // // close prices are equal, size of first is less than of second, open of the second is above High of the first
        {
         comment=_language?"Meeting Lines";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Meeting Lines the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Atingindo o mínimo
(otimista)

Compra

O padrão
não está
implementado
Tendência em baixa.
A primeira vela do padrão não precisa necessariamente ser longa.
Abertura da segunda vela está dentro do corpo da primeira.
Os preços de fechamento de ambas são os mesmos.
Não há sombras inferiores ou elas são muito curtas.
Confirmação é sugerida.

      //------      
      // Matching Low the bull model 
      if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && !cand2.bull && // check the trend direction and the candlestick direction
         cand1.close==cand2.close && cand1.bodysize>cand2.bodysize) // close prices are equal, size of the first one is larger than of the second
        {
         comment=_language?"Matching Low";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Matching Low the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
           }
        }
   

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Pombo correio<br1(otimista)
Pombo correio de alta

Compra

O padrão
não está
implementado
Tendência em baixa.
A primeira vela do padrão não precisa necessariamente ser longa.
Abertura da segunda vela está dentro do corpo da primeira.
Os preços de fechamento de ambas são os mesmos.
Não há sombras inferiores ou elas são muito curtas.
Confirmação é sugerida.

      //------      
      // Homing Pigeon the bull model
      if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && !cand2.bull && // check the trend direction and the candlestick direction
        (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) &&  // checking the "long" candlestick
         cand1.close<cand2.close && cand1.open>cand2.open) // body of the second is inside that of the first candlestick
        {
         comment=_language?"Homing Pigeon";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Homing Pigeon the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);   
           }
        }

3.1.3. Padrões consistindo de três velas

/* Checking patterns with three candlesticks */
      CANDLE_STRUCTURE cand3;
      cand3=cand2;
      cand2=cand1;
      if(!RecognizeCandle(_Symbol,_Period,time[i-2],InpPeriodSMA,cand1))
         continue;
Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Bebê abandonado
(otimista)

Compra

O padrão
não está
implementado

Isso é um padrão reverso raro mas importante.
Tendência em baixa.
A primeira vela do padrão é longa e preta.
A segunda vela é doji com uma lacuna, e a lacuna não é apenas entre os corpos das velas, mas também entre as sombras.
A terceira vela é uma vela "longa" e branca com a mesma lacuna entre as sombras e fechamento dentro do corpo da primeira vela.

Bebê abandonado
(pessimista)

Venda

O padrão
não está
implementado

Isso é um padrão reverso raro mas importante.
Tendência em alta.
A primeira vela do padrão é longa e branca.
A segunda vela é doji com uma lacuna, e a lacuna não é apenas entre os corpos das velas, mas também entre as sombras.
A terceira vela é uma vela "longa" e preta com a mesma lacuna entre as sombras e fechamento dentro do corpo da primeira vela.

      //------      
      // The Abandoned Baby, the bullish model
      if(cand1.trend==DOWN && !cand1.bull && cand3.trend==DOWN && cand3.bull && // check direction of trend and direction of candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // check of "long" candlestick
         cand2.type==CAND_DOJI && // check if the second candlestick is Doji
         cand3.close<cand1.open && cand3.close>cand1.close) // the third one is closed inside of body of the first one
        {
         comment=_language?"Abandoned Baby (Bull)":"Abandoned Baby";
         if(!_forex)// if it's not forex
           {
            if(cand1.low>cand2.high && cand3.low>cand2.high) // gap between candlesticks
              {
               DrawSignal(prefix+"Abandoned Baby the bull model"+string(objcount++),cand1,cand1,cand3,InpColorBull,comment);
              }
           }
        }
      // The Abandoned Baby, the bearish model
      if(cand1.trend==UPPER && cand1.bull && cand3.trend==UPPER && !cand3.bull && // check direction of trend and direction of candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // check of "long" candlestick
         cand2.type==CAND_DOJI && // check if the second candlestick is Doji
         cand3.close>cand1.open && cand3.close<cand1.close) // // the third one is closed inside of body of the second one
        {
         comment=_language?"Abandoned Baby (Bear)":"Abandoned Baby";
         if(!_forex)// if it's not forex
           {
            if(cand1.high<cand2.low && cand3.high<cand2.low) // gap between candlesticks
              {
               DrawSignal(prefix+"Abandoned Baby the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
        }
Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Estrela da manhã
(otimista)

Compra


Tendência em baixa.
A primeira e a terceira sessões são velas "longas".
Sombras das estrelas são curtas, a cor não importa.
Separação da estrela do fechamento da primeira vela.
Forex: fechamento da vela e abertura da estrela são iguais.
A terceira vela é fechada dentro do corpo da primeira.
Estrela da manhã
(pessimista)

Venda

Tendência em alta.
A primeira e a terceira sessões são velas "longas".
Sombras das estrelas são curtas, a cor não importa.
Separação da estrela do fechamento da primeira vela.
Forex: fechamento da vela e abertura da estrela são iguais.
A terceira vela é fechada dentro do corpo da primeira.
      // Morning star the bull model
      if(cand1.trend==DOWN && !cand1.bull && cand3.trend==DOWN && cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand2.type==CAND_SHORT && // checking "short"
         cand3.close>cand1.close && cand3.close<cand1.open) // the third candlestick is closed inside the body of the first one
        {
         comment=_language?"Morning star";
         if(_forex)// if forex
           {
            if(cand2.open<=cand1.close) // open of the second candlestick is below or equal to close of the first one
              {
               DrawSignal(prefix+"Morning star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
         else // another market
           {
            if(cand2.open<cand1.close && cand2.close<cand1.close) // separation of the second candlestick from the first one
              {
               DrawSignal(prefix+"Morning star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
        }
      // Evening star the bear model
      if(cand1.trend==UPPER && cand1.bull && cand3.trend==UPPER && !cand3.bull && //check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand2.type==CAND_SHORT && // checking "short"
         cand3.close<cand1.close && cand3.close>cand1.open) // the third candlestick is closed inside the body of the first one
        {
         comment=_language?"Evening star";
         if(_forex)// if forex
           {
            if(cand2.open>=cand1.close) // open of the second is above or equal to close of the first one
              {
               DrawSignal(prefix+"Evening star the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
         else // another market
           {
            if(cand2.open>cand1.close && cand2.close>cand1.close) //  separation of the second candlestick from the first one
              {
               DrawSignal(prefix+"Evening star the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
        }
Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Estrela da manhã doji
(otimista)

Compra



Tendência em baixa.
A primeira vela do padrão é longa e preta.
A segunda seção - doji com uma quebra na direção da tendência.
Forex: sem quebra.
Sombras do doji são curtas.
A terceira vela é fechada dentro do corpo da primeira.
Estrela da noite Doji
(pessimista)

Venda



Tendência em alta.
A primeira vela do padrão é longa e branca.
A segunda seção - doji com uma quebra na direção da tendência.
Forex: sem quebra.
Sombras do doji são curtas.
Confirmação é sugerida.
      //------      
      // Morning Doji Star the bull model 
      if(cand1.trend==DOWN && !cand1.bull && cand3.trend==DOWN && cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand2.type==CAND_DOJI && // checking "doji"
         cand3.close>cand1.close && cand3.close<cand1.open) // third cand. is closed inside body of first
        {
         comment=_language?"Morning Doji Star";
         if(_forex)// if forex
           {
            if(cand2.open<=cand1.close) // open of doji is below or equal to close of the first
              {
               DrawSignal(prefix+"Morning Doji Star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
         else // another market
           {
            if(cand2.open<cand1.close) // separation of doji from the first
              {
               DrawSignal(prefix+"Morning Doji Star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
        }
      // Evening Doji Star the bear model
      if(cand1.trend==UPPER && cand1.bull && cand3.trend==UPPER && !cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand2.type==CAND_DOJI && // checking "doji"
         cand3.close<cand1.close && cand3.close>cand1.open) // third cand. is closed inside body of first
        {
         comment=_language?"Evening Doji Star";
         if(_forex)// if forex
           {
            if(cand2.open>=cand1.close) // open of doji is above or equal to close of the first
              {
               DrawSignal(prefix+"Evening Doji Star the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
         else // another market
           {
            if(cand2.open>cand1.close) // separation of doji from the first
               // check close 2 and open 3
              {
               DrawSignal(prefix+"Evening Doji Star the bear model"+string(objcount++),cand1,cand3,cand3,InpColorBear,comment);
              }
           }
        }
Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Lacuna de alta dois corvos

Venda


O padrão
não está
implementado
Tendência em alta.
A primeira vela é "longa" e branca.
Uma lacuna entre as velas branca e preta.
Uma terceira vela abre acima da segunda e a engolfa.
Confirmação é sugerida.
O significado do padrão: se os preços não puderam subir durante a 4ª seção, devemos esperar que os preços caiam.
Dois corvos
(pessimista)

Venda


O padrão
não está
implementado
Tendência em alta.
A primeira vela do padrão é longa e branca.
Uma lacuna entre as vela branca e a primeira vela preta.
A terceira vela é preta e necessariamente longa; abre dentro ou acima da segunda e fecha dentro ou abaixo da vela branca, cobrindo a lacuna.
Confirmação é sugerida.
Se o segundo corvo (a terceira vela) engolfa uma vela branca, a confirmação não é exigida.
      //------      
      // Upside Gap Two Crows the bear model
      if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && cand3.trend==UPPER && !cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand1.close<cand2.close && cand1.close<cand3.close && // separation of the second and third from the first one
         cand2.open<cand3.open && cand2.close>cand3.close) // the third candlestick engulfs second
        {
         comment=_language?"Upside Gap Two Crows";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Upside Gap Two Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
           }
        }
      //------      
      // Two Crows the bear model
      if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && cand3.trend==UPPER && !cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG|| cand1.type==CAND_MARIBOZU_LONG) &&(cand3.type==CAND_LONG|| cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         cand1.close<cand2.close && // separation of the second from the first one
         cand3.open>cand2.close && // third one opens higher than close of the second
         cand3.close<cand1.close) // third one closes than close of the first
        {
         comment=_language?"Two Crows";
         if(!_forex)// if not forex
           {
            DrawSignal(prefix+"Two Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Três estrelas no sul
(otimista)

Compra



Tendência em baixa.
A primeira vela é uma dia preto longo (long black day) com uma sombra inferior longa.
A segunda vela é mais curta do que a primeira, seu mínimo está acima do mínimo da primeira vela.
A terceira vela é um pequeno marubozu preto ou uma estrela, um dia interno em relação à segunda seção.
Confirmação é sugerida.
Deliberação
(pessimista)

Venda



Tendência em alta.
Três velas brancas com preços de fechamento mais altos. As primeiras duas velas são dias longos.
Preço de abertura de cada vela está dentro do corpo da antecedente.
Forex: preços de abertura/fechamento das velas brancas são os mesmos.
A terceira vela abre a cerca do nível de fechamento da segunda vela.
A terceira vela é uma estrela ou pião.
Confirmação é sugerida.

      //------      
      // Three Star in the South the bull model

      if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand3.bull && //check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_MARIBOZU || cand3.type==CAND_SHORT) && // checking the "long" candlestick and marubozu
         cand1.bodysize>cand2.bodysize && cand1.low<cand2.low && cand3.low>cand2.low && cand3.high<cand2.high)
        {
         comment=_language?"Three Star in the South";
         if(_forex)// if forex
           {
            DrawSignal(prefix+"Three Star in the South the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
           }
         else // another market
           {
            if(cand1.close<cand2.open && cand2.close<cand3.open) // open is inside the previous candlestick
              {
               DrawSignal(prefix+"Three Star in the South the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
        }
      // Deliberation the bear model
      if(cand1.trend==UPPER && cand1.bull && cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick
         (cand3.type==CAND_SPIN_TOP || cand3.type==CAND_SHORT)) // the third candlestick is a star or spinning top
        {
         comment=_language?"Deliberation";
         if(_forex)// if forex
           {
            DrawSignal(prefix+"Deliberation the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
           }
         else // another market
           {
            if(cand1.close>cand2.open && cand2.close<=cand3.open) // open is inside the previous candlestick
               // check close 2 and open 3
              {
               DrawSignal(prefix+"Deliberation the bear model"+string(objcount++),cand1,cand3,cand3,InpColorBear,comment);
              }
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Três soldados brancos
(otimista)

Compra



Tendência em baixa.
Três velas brancas longas surgem uma depois da outra, preços de fechamento de cada uma delas é mais alto do que da anterior.
Preço de abertura de cada soldado está dentro do corpo da vela anterior.
Forex: fechamento/abertura dos soldados são os mesmos.
Sombras superiores dos soldados são curtas.
Confirmação não é necessária.
Três corvos pretos
(pessimista)

Venda


O padrão
não está
implementado
Tendência em alta.
Três velas pretas longas surgem uma depois da outra, preços de fechamento de cada uma delas é mais baixo do que da anterior.
Preço de abertura de cada corvo está dentro do corpo da vela anterior.
Forex: corresponde a três corvos de padrões idênticos.
As sombras inferiores dos corvos são curtas.
Confirmação não é necessária.

      //------      
      // Three White Soldiers the bull model
      if(cand1.trend==DOWN && cand1.bull && cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick and marubozu
         (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG)) // checking the "long" candlestick and marubozu
        {
         comment=_language?"Three White Soldiers";
         if(_forex)// if forex
           {
            DrawSignal(prefix+"Three White Soldiers the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
           }
         else // another market
           {
            if(cand1.close>cand2.open && cand2.close>cand3.open) // open inside the previous candlestick
              {
               DrawSignal(prefix+"Three White Soldiers the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
        }
      // Three Black Crows the bear model
      if(cand1.trend==UPPER && !cand1.bull && !cand2.bull && !cand3.bull && //check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick and marubozu
         (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick and marubozu
         cand1.close<cand2.open && cand2.close<cand3.open)
        {
         comment=_language?"Three Black Crows";
         if(!_forex) // non-forex
           {
               DrawSignal(prefix+"Three Black Crows the bear model"+string(objcount++),cand1,cand3,cand3,InpColorBear,comment);
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Três por fora de alta
(otimista)

Compra



Tendência em baixa.
Primeiramente o padrão de engolfamento (alta) é formado: o corpo da segunda vela cobre completamente o corpo da primeira.
Forex: fechamento de uma vela preta e abertura de uma branca são iguais.
Sombras não importam.
Então, no terceiro dia há um fechamento mais alto.
A confirmação não é necessária: o padrão em si é uma confirmação para o engolfo otimista.
Três por fora de baixa
(pessimista)

Venda



Tendência em alta.
Primeiramente o padrão de engolfamento (baixa) é formado: o corpo da segunda vela cobre completamente o corpo da primeira.
Forex: fechamento da vela branca e abertura da primeira preta são iguais.
Sombras não importam.
Então, no terceiro dia há um fechamento mais baixo.
A confirmação não é necessária: o padrão em si é uma confirmação para o engolfo pessimista.

      //------      
      // Three Outside Up the bull model
      if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick
         cand2.bodysize>cand1.bodysize && // the body of the second candlestick is larger than that of the first
         cand3.close>cand2.close) // the third day is closed higher than the second
        {
         comment=_language?"Three Outside Up";
         if(_forex)// if forex
           {
            if(cand1.close>=cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second
              {
               DrawSignal(prefix+"Three Outside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
         else
           {
            if(cand1.close>cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second
              {
               DrawSignal(prefix+"Three Outside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
        }
      // Three Outside Down the bear model
      if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick
         cand2.bodysize>cand1.bodysize && // the body of the second candlestick is larger than that of the first
         cand3.close<cand2.close) // the third day is closed lower than the second
        {
         comment=_language?"Three Outside Down";
         if(_forex)// if forex
           {
            if(cand1.close<=cand2.open && cand1.open>cand2.close) // the body of the first candlestick is inside the body of the second
              {
               DrawSignal(prefix+"Three Outside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
         else
           {
            if(cand1.close<cand2.open && cand1.open>cand2.close) // the body of the first candlestick is inside the body of the second
              {
               DrawSignal(prefix+"Three Outside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Três por dentro de alta
(otimista)

Compra



Tendência em baixa.
Nas primeiras duas seções o padrão harami (alta) é formado: um pequeno corpo branco é engolfado por um grande e preto.
Fechamento da terceira seção é mais alto do que o máximo das duas primeiras velas.
A confirmação não é necessária: o padrão em si é uma confirmação para o Harami otimista.
Três por dentro de baixa
(pessimista)

Venda



Tendência em alta.
Nas primeiras duas seções o padrão harami (baixa) é formado: um pequeno corpo preto é engolfado por um grande e branco.
Fechamento da terceira seção é mais baixo do que o mínimo das duas primeiras velas.
A confirmação não é necessária: o padrão em si é uma confirmação para o Harami pessimista.

      //------      
      // Three Inside Up the bull model
      if(cand1.trend==DOWN  &&  !cand1.bull  &&  cand2.bull && cand3.bull && //check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) &&  //checking the "long" candlestick 
         cand1.bodysize>cand2.bodysize && // the body of the first candlestick is larger than that of the second one
         cand3.close>cand2.close) // the third day closes higher than the second
        {
         comment=_language?"Three Inside Up";
         if(_forex)// if forex
           {
            if(cand1.close<=cand2.open && cand1.close<=cand2.close && cand1.open>cand2.close) // the body of the second candlestick is inside the body of the first one
              {
               DrawSignal(prefix+"Three Inside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
         else
           {
            if(cand1.close<cand2.open && cand1.close<cand2.close && cand1.open>cand2.close) // the body of the second candlestick is inside the body of the first one
              {
               DrawSignal(prefix+"Three Inside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
        }
      // Three Inside Down the bear model
      if(cand1.trend==UPPER && cand1.bull && !cand2.bull && !cand3.bull &&//check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick 
         cand1.bodysize>cand2.bodysize && // the body of the first candlestick is larger than that of the second one
         cand3.close<cand2.close) // the third day closes lower than the second
        {
         comment=_language?"Three Inside Down";
         if(_forex)// if forex
           {
            if(cand1.close>=cand2.open && cand1.close>=cand2.close && cand1.close>=cand2.close) // inside the body of the first candlestick
              {
               DrawSignal(prefix+"Three Inside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
         else
           {
            if(cand1.close>cand2.open && cand1.close>cand2.close && cand1.open<cand2.close) // inside the body of the first candlestick
              {
               DrawSignal(prefix+"Three Inside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Três estrelas
(otimista)

Compra



Tendência em baixa.
A lacuna entre o primeiro doji e as velas anteriores não é necessária.
Todas as três velas são doji.
O doji do meio possui uma lacuna superior ou inferior.
Forex: todos os três doji estão em um nível.
Confirmação é sugerida.
Três estrelas
(pessimista)

Venda



Tendência em alta.
A lacuna entre o primeiro doji e as velas anteriores não é necessária.
Todas as três velas são doji.
O doji do meio possui uma lacuna superior ou inferior.
Forex: todos os três doji estão em um nível.
Confirmação é sugerida.

      //------      
      // Three Stars the bull model
      if(cand1.trend==DOWN  && // check the trend direction
         cand1.type==CAND_DOJI && cand2.type==CAND_DOJI && cand3.type==CAND_DOJI) // check doji
        {
         comment=_language?"Bullish Three Stars";
         if(_forex)// if forex
           {
               DrawSignal(prefix+"Three Stars the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
           }
         else
           {
            if(cand2.open!=cand1.close && cand2.close!=cand3.open) // the second candlestick is on a different level
              {
               DrawSignal(prefix+"Three Stars the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
              }
           }
        }
      // Three Stars the bear model
      if(cand1.trend==UPPER && // check the trend direction
         cand1.type==CAND_DOJI && cand2.type==CAND_DOJI && cand3.type==CAND_DOJI) // check doji
        {
         comment=_language?"Bearish Three Stars";
         if(_forex)// if forex
           {
               DrawSignal(prefix+"Three Stars the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
           }
         else
           {
            if(cand2.open!=cand1.close && cand2.close!=cand3.open) //  the second candlestick is on a different level
              {
               DrawSignal(prefix+"Three Stars the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Três corvos idênticos
(pessimista)

Venda



Tendência em alta.
Três velas pretas longas surgem uma depois da outra, preços de fechamento de cada uma delas é mais baixo do que da anterior.
O preço de cada corvo é aproximadamente igual ao fechamento da vela anterior.
As sombras inferiores dos corvos são curtas.
Confirmação não é necessária.

      // Identical Three Crows the bear model
      if(cand1.trend==UPPER && !cand1.bull && !cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick or marubozu
         (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG)) // checking the "long" candlestick or marubozu
        {
         comment=_language?"Identical Three Crows";
         if(_forex)// if forex
           {
            DrawSignal(prefix+"Identical Three Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
           }
         else // a different market
           {
            if(cand1.close>=cand2.open && cand2.close>=cand3.open) // open is less or equal to close of the preceding candlestick
              {
               DrawSignal(prefix+"Identical Three Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
              }
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Fundo único de três rios
(otimista)

Compra


O padrão
não está
implementado
Tendência em baixa.
A primeira vela do modelo é longa e preta com sombras curtas.
No segundo dia o harami aparece, mas com um corpo preto.
A sombra inferior do segundo dia fornece um novo mínimo.
O terceiro dia é um dia curto e branco mais baixo que o dia do meio.
A confirmação não é necessárias, mas desejável.

      // Unique Three River Bottom the bull model
      if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && cand3.bull && // check the trend direction and the candlestick direction
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand3.type==CAND_SHORT && // check the "long" candlestick or "marubozu" third short day
         cand2.open<cand1.open && cand2.close>cand1.close && cand2.low<cand1.low && // body of the second candlestick is inside the first, Low is lower than the first
         cand3.close<cand2.close) // the third candlestick is below the second
        {
         comment=_language?"Unique Three River Bottom";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Unique Three River Bottom the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
           }
        }

3.1.4. Padrões consistindo de quatro velas

/* Checking patterns with four candlesticks */      
      CANDLE_STRUCTURE cand4;
      cand4=cand3;
      cand3=cand2;
      cand2=cand1;
      if(!RecognizeCandle(_Symbol,_Period,time[i-3],InpPeriodSMA,cand1))
         continue

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Bebê engolido (otimista)


Compra

O padrão
não está
implementado
Tendência em baixa.
As primeiras duas seções são dois marubozus pretos.
A terceira seção abre com um colapso, mas a negociação é conduzida dentro do corpo da segunda vela, o que leva a formação de uma sombra superior longa.
A quarta vela preta engolfa completamente a terceira, incluindo a sombra.
Confirmação não é necessária.

      //------      
      // Concealing Baby Swallow the bull model
      if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand3.bull && !cand4.bull && // check the trend direction and the candlestick direction
         cand1.type==CAND_MARIBOZU_LONG && cand2.type==CAND_MARIBOZU_LONG && cand3.type==CAND_SHORT && // checking "marubozu"
         cand3.open<cand2.close && cand3.high>cand2.close && // third candlestick with a gap down, High is inside the 2nd candlestick
         cand4.open>cand3.high && cand4.close<cand3.low) // the fourth candlestick completely engulfs the third
        {
         comment=_language?"Concealing Baby Swallow";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Concealing Baby Swallow the bull model"+string(objcount++),cand1,cand2,cand4,InpColorBull,comment);
           }
        }

3.1.5. Padrões consistindo de duas velas

/* Checking patterns with five candlesticks */
      CANDLE_STRUCTURE cand5;
      cand5=cand4;
      cand4=cand3;
      cand3=cand2;
      cand2=cand1;
      if(!RecognizeCandle(_Symbol,_Period,time[i-4],InpPeriodSMA,cand1))
         continue

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Rompimento
(otimista)

Compra

O padrão
não está
implementado
Tendência em baixa.
As primeiras duas seções — uma vela preta e "longa" e uma vela preta e "curta" (estrela) com uma lacuna.
A terceira seção é "curta", pode ser de qualquer cor.
A quarta vela é preta e "curta".
A quinta vela é branca e "Longa" com fechamento dentro da lacuna.
Confirmação é sugerida.
Rompimento
(pessimista)

Venda

O padrão
não está
implementado
Tendência em alta.
As primeiras duas seções — uma vela branca e "longa" e uma vela branca e "curta" (estrela) com uma lacuna.
A terceira seção é uma vela "curta", pode ser de qualquer cor.
A quarta vela é branca e "curta".
A quinta vela é preta e "Longa" com fechamento dentro da lacuna.
Confirmação é sugerida.

      //------      
      // Breakaway the bull model
      if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand4.bull && cand5.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG|| cand1.type==CAND_MARIBOZU_LONG) &&  //checking the "long" first candlestick
         cand2.type==CAND_SHORT && cand2.open<cand1.close && // the second is "short", separated from the first
         cand3.type==CAND_SHORT && cand4.type==CAND_SHORT && // third and fourth are "short"
         (cand5.type==CAND_LONG || cand5.type==CAND_MARIBOZU_LONG) && cand5.close<cand1.close && cand5.close>cand2.open) // fifth is "long" white with close inside the gap
        {
         comment=_language?"Bullish Breakaway";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Breakaway the bull model"+string(objcount++),cand1,cand2,cand5,InpColorBull,comment);
           }
        }
      // Breakaway the bear model
      if(cand1.trend==UPPER && cand1.bull && cand2.bull && cand4.bull && !cand5.bull && //  check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG|| cand1.type==CAND_MARIBOZU_LONG) &&  // checking the "long" first candlestick
         cand2.type==CAND_SHORT && cand2.open<cand1.close && // the second is "short", separated from the first
         cand3.type==CAND_SHORT && cand4.type==CAND_SHORT && // third and fourth are "short"
         (cand5.type==CAND_LONG || cand5.type==CAND_MARIBOZU_LONG) && cand5.close>cand1.close && cand5.close<cand2.open) // fifth is "long" black with close inside the gap
        {
         comment=_language?"Bearish Breakaway";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Breakaway the bear model"+string(objcount++),cand1,cand2,cand5,InpColorBear,comment);
           }
        }

3.2. PADRÕES DE CONTINUAÇÃO

Padrões de continuação são o tempo em que o mercado está descansando.

Qualquer o modelo, você precisa tomar uma decisão quanto a posição atual, mesmo que ela não mude nada.

3.2.1. Padrões consistindo de uma única vela

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Chute
(otimista)

Compra

O padrão
não está
implementado
O "marubozu" preto é seguido por um "marubozu" branco.
Há uma lacuna entre os dois corpos.
Confirmação não é necessária.
Chute
(pessimista)

Venda

O padrão
não está
implementado
O "marubozu" branco é seguido por um "marubozu" preto.
Há uma lacuna entre os dois corpos.
Confirmação não é necessária.

      //------      
      // Kicking the bull model
      if(!cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick
         cand1.type==CAND_MARIBOZU_LONG && cand2.type==CAND_MARIBOZU_LONG && // two marubozu
         cand1.open<cand2.open) // a gap between them
        {
         comment=_language?"Bullish Kicking";
         if(!_forex)// if non-forex
           {
            DrawSignal(prefix+"Kicking the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment);
           }
        }
      // Kicking the bear model
      if(cand1.bull && !cand2.bull && // check the trend direction and direction of the candlestick
         cand1.type==CAND_MARIBOZU_LONG && cand2.type==CAND_MARIBOZU_LONG && // two marubozu
         cand1.open>cand2.open) // a gap between them
        {
         comment=_language?"Bearish Kicking";
         if(!_forex)// if non-forex
           {
            DrawSignal(prefix+"Kicking the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
           }
        }

3.2.2. Padrões consistindo de duas velas

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Pessimismo na linha do pescoço

Venda

O padrão
não está
implementado
Tendência em baixa.
A primeira vela do padrão é longa e preta.
A vela branca fecha abaixo do mínimo da preta e fecha em cerca do mínimo da vela preta.
A vela branca - não necessariamente um dia longo.
Confirmação é sugerida.
Na linha do pescoço
(pessimista)

Venda

O padrão
não está
implementado
Tendência em baixa.
A primeira vela do padrão é longa e preta.
A vela branca abre abaixo do mínimo da preta e fecha um pouco acima do fechamento da vela preta.
A vela branca - não necessariamente um dia longo.
O corpo da vela branca é menor do que o corpo da vela preta.
A sombra superior da vela branca é muito pequena.
Confirmação é sugerida.
Linha de confiança
(pessimista)

Venda


O padrão
não está
implementado
Tendência em baixa.
A primeira vela do padrão é longa e preta.
A vela branca abre abaixo do mínimo da preta e fecha acima do fechamento da preta, mas o preço de fechamento ainda está abaixo do meio da vela preta.
A vela branca - não necessariamente um dia longo.
Confirmação é sugerida.

Esses três modelos possuem muito em comum, então sua implementação é, de alguma forma, diferente, por favor, fique atento a isso.

      //------ Check On Neck patterns
      if(cand1.trend==DOWN && !cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG)) // the first candlestick is "long"
        {
         // On Neck Line the bear model
         if(cand2.open<cand1.low && cand2.close==cand1.low) // the second candlestick opens below 1st and closes at Low of the first
           {
            comment=_language?"On Neck Line Bear";
            if(!_forex)// if not forex
              {
               DrawSignal(prefix+"On Neck Line the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
              }
           }
         else
           {
            // In Neck Line the bear model
            if(cand1.trend==DOWN && !cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick
               (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // the first candlestick is "long"
               cand1.bodysize>cand2.bodysize && // body of 2nd candlestick is smaller than that of the 1st one
               cand2.open<cand1.low && cand2.close>=cand1.close && cand2.close<(cand1.close+cand1.bodysize*0.01)) // the second candlestick opens lower than first and closes a little higher than Close of the first
              {
               comment=_language?"In Neck Line Bear";
               if(!_forex)// если не форекс
                 {
                  DrawSignal(prefix+"In Neck Line the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
                 }
              }
            else
              {
               // Thrusting Line the bear model
               if(cand1.trend==DOWN && !cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick
                  (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // the first candlestick is "long"
                  cand2.open<cand1.low && cand2.close>cand1.close && cand2.close<(cand1.open+cand1.close)/2) //  the second candlestick opens lower than first and closes a higher than Close of the first but lower than middle
                 {
                  comment=_language?"Thrusting Line Bea";
                  if(!_forex)// if non-forex
                    {
                     DrawSignal(prefix+"Thrusting Line the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment);
                    }
                 }
              }
           }
        }

3.2.3. Padrões consistindo de três velas

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Gap de alta três métodos
(otimista)


Compra


O padrão
não está
implementado
Tendência em alta.
As duas primeiras velas são duas velas brancas "longas" com uma lacuna.
A terceira vela abre dentro do corpo da segunda e preenche a lacuna.
Confirmação é sugerida.
Gap de alta três métodos
(pessimista)


Venda


O padrão
não está
implementado
Tendência em baixa.
As duas primeiras velas são duas velas pretas "longas" com uma lacuna.
A terceira vela abre dentro do corpo da segunda e preenche a lacuna.
Confirmação é sugerida.

      //------      
      // Upside Gap Three Methods the bull model
      if(cand1.trend==UPPER && cand1.bull && cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // the first two candlesticks are "long"
         cand2.open>cand1.close && // a gap between the first and the second
         cand3.open>cand2.open && cand3.open<cand2.close && cand3.close<cand1.close) // the third candlestick opens inside the body of the second and fills in the gap
        {
         comment=_language?"Upside Gap Three Methods";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Upside Gap Three Methods the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
           }
        }
      //------      
      // Downside Gap Three Methods the bull model
      if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // the first two candlesticks are "long"
         cand2.open<cand1.close && // a gap between the first and the second
         cand3.open<cand2.open && cand3.open>cand2.close && cand3.close>cand1.close) //the third candlestick opens inside the body of the second and fills in the gap
        {
         comment=_language?"Downside Gap Three Methods";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Downside Gap Three Methods the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
           }
        }

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Gap de alta de Tasuki
(otimista)


Compra


<
O padrão
não está
implementado
Tendência em alta.
A lacuna entre as duas velas brancas vizinhas. Velas brancas não são necessariamente longas.
A terceira vela abre dentro do corpo da segunda vela.
A terceira seção fecha dentro da lacuna mas a lacuna é parcialmente não preenchida.
Confirmação é sugerida.
Gap de baixa Tasuki
(pessimista)


Venda

O padrão
não está
implementado
Tendência em baixa.
A lacuna entre as duas velas pretas vizinhas. Velas pretas não são necessariamente longas.
A terceira vela abre dentro do corpo da segunda vela.
A terceira seção fecha dentro da lacuna mas a lacuna é parcialmente não preenchida.
Confirmação é sugerida.

      //------      
      // Upside Tasuki Gap the bull model
      if(cand1.trend==UPPER && cand1.bull && cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick
         cand1.type!=CAND_DOJI && cand2.type!=CAND_DOJI && // the first two candlesticks are not doji
         cand2.open>cand1.close && // a gap between the first and the second
         cand3.open>cand2.open && cand3.open<cand2.close && cand3.close<cand2.open && cand3.close>cand1.close) // 3rd candlestick opens inside 2nd and closes inside the gap
        {
         comment=_language?"Upside Tasuki Gap";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Upside Tasuki Gap the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment);
           }
        }
      //------      
      // Downside Tasuki Gap the bull model
      if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick
         cand1.type!=CAND_DOJI && cand2.type!=CAND_DOJI && // the first two candlesticks are not doji
         cand2.open<cand1.close && // a gap between the first and the second
         cand3.open<cand2.open && cand3.open>cand2.close && cand3.close>cand2.open && cand3.close<cand1.close) // 3rd candlestick opens inside 2nd and closes inside the gap
        {
         comment=_language?"Downside Tasuki Gap";
         if(!_forex)// non-forex
           {
            DrawSignal(prefix+"Downside Tasuki Gap the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment);
           }
        }

3.2.4. Padrões consistindo de quatro velas

Nome do padrão Ordem Padrão clássico Forex Reconhecimento do padrão
Strike de três linhas
(otimista)

Compra

A tendência otimista está continuando com três velas, similar ao padrão dos três soldados brancos: longas velas brancas com sombras curtas.
Forex: preços de abertura/fechamento das velas brancas são os mesmos.
A quarta vela abre com uma lacuna acima e fecha abaixo da abertura da primeira vela branca.
Forex: fechamento da terceira e abertura da quarta vela são iguais.
Confirmação é sugerida.
Strike de três linhas (pessimista)

Venda

A tendência pessimista está continuando com três velas, similar ao padrão dos três corvos pretos: longas velas pretas com sombras curtas.
Forex: preços de abertura/fechamento das velas pretas são os mesmos (similar aos três corvos idênticos).
A quarta vela abre com uma lacuna abaixo e fecha acima da abertura da primeira vela negra.
Forex: fechamento da terceira e abertura da quarta vela são iguais.
Confirmação é sugerida.

      //------      
      // Three-line strike the bull model
      if(cand1.trend==UPPER && cand1.bull && cand2.bull && cand3.bull && !cand4.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // check the "long: candlestick or "maruozu"
         (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && //  check the "long: candlestick or "maruozu"
         cand2.close>cand1.close && cand3.close>cand2.close && cand4.close<cand1.open) // close of 2nd is higher than 1st, that of 3rd is higher than 2nd, the fourth candlestick closes lower than the 1st
        {
         comment=_language?"Three-line strike";
         if(_forex)// if forex
           {
            if(cand4.open>=cand3.close) // 4th opens higher than the 3rd
              {
               DrawSignal(prefix+"Three-line strike the bull model"+string(objcount++),cand1,cand3,cand4,InpColorBull,comment);
              }
           }
         else // a different market
           {
            if(cand4.open>cand3.close) // 4th opens higher than th 3rd
              {
               DrawSignal(prefix+"Three-line strike the bull model"+string(objcount++),cand1,cand3,cand4,InpColorBull,comment);
              }
           }
        }
      //------      
      // Three-line strike the bear model 
      if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand3.bull && cand4.bull && // check the trend direction and direction of the candlestick
         (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && //  check the "long: candlestick or "maruozu"
         (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && //  check the "long: candlestick or "maruozu"
         cand2.close<cand1.close && cand3.close<cand2.close && cand4.close>cand1.open) // close of 2nd is lower than 1st, close of 3rd is lower than 2nd, the fourth candlestick closes higher than 1st
        {
         comment=_language?"Three-line strike";
         if(_forex)// if forex
           {
            if(cand4.open<=cand3.close) // the fourth opens lower than or equal to the third
              {
               DrawSignal(prefix+"Three-line strike the bear model"+string(objcount++),cand1,cand3,cand4,InpColorBear,comment);
              }
           }
         else // a different market
           {
            if(cand4.open<cand3.close) // the fourth opens lower than 3rd
              {
               DrawSignal(prefix+"Three-line strike the bear model"+string(objcount++),cand1,cand3,cand4,InpColorBear,comment);
              }
           }
        }

4. A implementação do indicador

Vamos selecionar parâmetros de entrada exigidos.

Parâmetros de entrada do indicador doa padrões das velas

Figura 3. Parâmetros de entrada do indicador doa padrões das velas

O primeiro parâmetro do "período de média" - precisamos dele para determinar a direção da tendência, definindo velas "longas" e "curtas".

O próximo parâmetro é "Habilitar sinal" - responsável por habilitar/desabilitar o sinal. O sinal notifica que um novo padrão apareceu.

Sinais gerados pelo indicador de padrões de velas

Figura 4. Sinais gerados pelo indicador de padrões de velas

Parâmetro "Número de barras para cálculo" é projetado para facilitar o trabalho do indicador. Se seu valor é menor ou igual a 0 os padrões das velas são pesquisados em todo histórico disponível, caso contrário um número certo de barras é utilizado para a pesquisa, o que facilita consideravelmente o trabalho do indicador.

Acho que tudo está claro com cores...

"Habilitar comentários" significa habilitar/desabilitar nomes de padrões de velas.

"Tamanho da fonte" configura o tamanho da fonte para os comentários.

A implementação do indicador é muito simples.

Espere o surgimento de uma nova barra:

//--- Wait for a new bar
   if(rates_total==prev_calculated)
     {
      return(rates_total);
     }

Então calcule o valor inicial do contador para iniciar o ciclo.

   int limit;
   if(prev_calculated==0)
     {
      if(InpCountBars<=0 || InpCountBars>=rates_total)
         limit=InpPeriodSMA*2;
      else
         limit=rates_total-InpCountBars;
     }
   else
      limit=prev_calculated-1;

No loop, verificamos as combinações das velas e as exibimos como mostra a Figura 5.

  • Combinação com uma vela: uma seta com o nome do padrão acima ou abaixo dela.
  • Combinação com duas velas: um retângulo fino com o nome do padrão acima ou abaixo da primeira vela.
  • Combinação com três ou mais velas: um retângulo espesso com o nome do padrão acima ou abaixo da primeira vela.

Exemplo de como indicadores de padrões de velas funcionam

Figura 5. Exemplo de como indicadores de padrões de velas funcionam

Por favor observe que, devido a possibilidade de sobrecarregar a função, os sinais de saída de diferentes padrões é feito pelas funções com o mesmo nome DrawSignal(), mas com diferentes números de parâmetros.

void DrawSignal(string objname,CANDLE_STRUCTURE &cand,color Col,string comment)
void DrawSignal(string objname,CANDLE_STRUCTURE &cand1,CANDLE_STRUCTURE &cand2,color Col,string comment)
void DrawSignal(string objname,CANDLE_STRUCTURE &cand1,CANDLE_STRUCTURE &cand2,CANDLE_STRUCTURE &cand3,color Col,string comment)

O texto completo do indicador está no arquivo Candlestick_Patterns.mq5 anexo a esse artigo.

Conclusão

Nesse artigo revisamos a maior parte dos padrões de velas, métodos para detectá-los e fornecemos exemplos de como implementá-los na linguagem de programação do MQL5. O anexo ao arquivo contém dois indicadores em um arquivo incluso. Para utilizá-los, posicione os indicadores na pasta \Indicators e inclua o arquivo na pasta \Include, e então compile eles.

Espero que a análise dos padrões de velas tenha ajudado você a melhorar os resultados do seu trabalho.

Em termos prospectivos, gostaria de adicionar que as velas filtradas fornecem resultados melhores do que a maioria dos indicadores técnicos, mas consideraremos esse assunto no próximo artigo, no qual criarei um sistema de negócio e uma negociação de Expert Advisor pelos padrões de vela.

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

Últimos Comentários | Ir para discussão (3)
Reinaldo Ferreira
Reinaldo Ferreira | 6 fev 2015 em 16:51
Olá achei muito interessante esse indicador que você desenvolveu, utilizo o Price Action para minhas operações, e gostaria de saber se você parou na versão 1.0 e tem outra mais nova.

Obrigado
Allan Jheyson Ramos Goncalves
Allan Jheyson Ramos Goncalves | 23 jun 2021 em 08:57

Parabéns!

Obrigado!!!

Edson Carvalho Do Nascimento
Edson Carvalho Do Nascimento | 28 abr 2023 em 11:47
Muito obrigado, você enriqueceu muito meu conhecimento sobre padrões de velas.
Criando um Consultor Especialista, que negocia em um número de instrumentos Criando um Consultor Especialista, que negocia em um número de instrumentos
O conceito da diversificação de ativos nos mercados financeiros é bastante antigo e sempre atraiu negociantes iniciantes. Neste artigo, o autor propõe uma abordagem maximamente simples para a construção de um Expert Advisor de moeda múltipla, para uma introdução inicial a esta direção das estratégias de negócio.
Guia para escrever uma DLL para MQL5 em Delphi Guia para escrever uma DLL para MQL5 em Delphi
O artigo examina o mecanismo de criação de um módulo DLL, usando a linguagem de programação popular de ObjectPascal, dentro de um ambiente de programação Delphi. Os materiais, fornecidos neste artigo, são designados a focar principalmente em programadores iniciantes, que estejam trabalhando com problemas que rompem os limites da linguagem de programação embutidos do MQL5, conectando os módulos DLL externos.
Testando o desempenho do cálculo das médias móveis no MQL5 Testando o desempenho do cálculo das médias móveis no MQL5
Uma série de indicadores apareceu desde o momento da criação do primeiro indicador de média móvel. Muitos deles usam métodos de suavização similares, mas os desempenhos de diferentes algorítimos de médias móveis não foram estudados. Neste artigo, considerarei meios possíveis de uso de Média móveis no MQL5 e comparar seus desempenhos.
Um exemplo de um Sistema de Comércio Baseado no indicador Heiken-Ashi Um exemplo de um Sistema de Comércio Baseado no indicador Heiken-Ashi
Neste artigo veremos a questão de uso de um indicador Heiken-Ashi na negociação. Com base neste indicador, um simples sistema de negócio é considerado e um Expert Advisor MQL5 é escrito. As operações de negócio são implementadas nas bases de classes da biblioteca de classe padrão. São fornecidos neste artigo os resultados de teste da estratégia de negócio revisada que são baseados no histórico e obtidos usando o strategy tester do MetaTrader 5 embutido.