Boa_ZigZag_Arrows_Duplex Indicator For MT5

Boa_ZigZag_Arrows_Duplex Indicator For MT5

O Boa_ZigZag_Arrows_Duplex Indicator For MT5 funciona com base no indicador em zigue-zague e nos pontos críticos de rotação. Depois de instalar este indicador na tabela de preços, você notará pontos coloridos acima e abaixo dos castiçais. Formação dos pontos vermelhos ou círculo acima do castiçal significa, os ursos vão empurrar o preço para baixo no futuro próximo. Pelo contrário, a formação dos pontos azuis abaixo do castiçal significa que os compradores vão aumentar o preço. Você também pode encontrar a menor retração do preço com a ajuda de pequenos pontos nas cores marrom e azul. Pontos de cor marrom formando acima do castiçal significa que a retração de baixa ocorrerá. Pelo contrário, quando você vê um ponto azul, pode ver uma retração de alta no preço. Aprenda a usar essa ferramenta na conta demo para poder obter um lucro decente sem perder muito dinheiro.

FREE Boa_ZigZag_Arrows_Duplex Indicator

Download the FREE Boa_ZigZag_Arrows_Duplex Indicator for MT5.

To receive my email 100% sure: 
Put my email on your whitelist!

 

Partially Automated Trading Besides Your Day Job

Alerts In Real-Time When Divergences Occur

 

Instalando o Boa_ZigZag_Arrows_Duplex Indicator For MT5

Depois de baixar o indicador através do formulário acima, você precisa descompactar o arquivo zip. Em seguida, você precisa copiar o arquivo Boa_ZigZag_Arrows_Duplex.mq5 na pasta MQL5Indicators da sua instalação do MT5 . Depois disso, reinicie o MT5 e você poderá ver o indicador na lista de indicadores.

Parâmetros da Boa_ZigZag_Arrows_Duplex Indicator For MT5

O Boa_ZigZag_Arrows_Duplex Indicator For MT5 possui parâmetros 2 para configurar.

input uint SlowLength=42; // ?5@8>4 <54;5==>3> 7837030
input uint FastLength=6; // ?5@8>4 1KAB@>3> 7837030

Buffers of the Boa_ZigZag_Arrows_Duplex Indicator For MT5

O Boa_ZigZag_Arrows_Duplex Indicator For MT5 fornece buffers 4 .

SetIndexBuffer(0,ZigzagLawnBuffer1,INDICATOR_DATA);
SetIndexBuffer(1,ZigzagPeakBuffer1,INDICATOR_DATA);
SetIndexBuffer(2,ZigzagLawnBuffer2,INDICATOR_DATA);
SetIndexBuffer(3,ZigzagPeakBuffer2,INDICATOR_DATA);

Principais partes do código

int OnCalculate(const int rates_total,    // : gt ;8G5AB2 gt  8AB gt @88 2 10@0E =0 B5:CI5 lt  B8:5
                const int prev_calculated,// : gt ;8G5AB2 gt  8AB gt @88 2 10@0E =0 ?@54K4CI5 lt  B8:5
                const datetime &time[],
                const double &open[],
                const double& high[],     // F5= gt 2 gt 9  lt 0AA82  lt 0:A8 lt C lt  gt 2 F5=K 4;O @0AG5B0 8=48:0B gt @0
                const double& low[],      // F5= gt 2 gt 9  lt 0AA82  lt 8=8 lt C lt  gt 2 F5=K 4;O @0AG5B0 8=48:0B gt @0
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---- ?@ gt 25@:0 : gt ;8G5AB20 10@ gt 2 =0 4 gt AB0B gt G= gt ABL 4;O @0AG5B0
   if(rates_total lt min_rates_total) return(0);

//----  gt 1JO2;5=8O ; gt :0;L=KE ?5@5 lt 5==KE 
   int limit,climit,bar;
   double HH,LL,BH,BL;
   int zu,zd,Swing,Swing_n;
//----

   limit=rates_total-min_rates_total; // AB0@B gt 2K9 = gt  lt 5@ 4;O @0AGQB0 2A5E 10@ gt 2
   climit=limit; // AB0@B gt 2K9 = gt  lt 5@ 4;O @0A:@0A:8 8=48:0B gt @0

//---- 8=45:A0F8O M;5 lt 5=B gt 2 2  lt 0AA820E :0: 2 B09 lt A5@8OE  
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
//----   
   Swing=0;
   Swing_n=0;
   zu=limit;
   zd=limit;
   BH=high[limit];
   BL=low[limit];
//---- &8:; @0AGQB0  lt 54;5== gt 3 gt  7837030
   for(bar=limit; bar gt =0 && !IsStopped(); bar--)
     {
      ZigzagLawnBuffer1[bar]=NULL;
      ZigzagPeakBuffer1[bar]=NULL;

      HH=high[ArrayMaximum(high,bar+1,SlowLength)];
      LL=low[ArrayMinimum(low,bar+1,SlowLength)];
      if(low[bar] lt LL && high[bar] gt HH)
        {
         Swing=2;
         if(Swing_n== 1) zu=bar+1;
         if(Swing_n==-1) zd=bar+1;
        }
      else
        {
         if(low [bar] lt LL) Swing=-1;
         if(high[bar] gt HH) Swing= 1;
        }
      if(Swing!=Swing_n && Swing_n!=0)
        {
         if(Swing==2) {Swing=-Swing_n; BH=high[bar]; BL=low[bar];}
         if(Swing== 1)
           {            
            if(BL==low[zd]) ZigzagLawnBuffer1[zd]=BL;
            else ZigzagLawnBuffer1[zd-1]=BL;
           }
         if(Swing==-1)
           {
            if(BH==high[zu]) ZigzagPeakBuffer1[zu]=BH;
            else ZigzagPeakBuffer1[zu-1]=BH;
           }
         BH=high[bar];
         BL=low [bar];
        }
      if(Swing== 1) {if(high[bar] gt =BH) {BH=high[bar]; zu=bar;}}
      if(Swing==-1) {if(low [bar] lt =BL) {BL=low [bar]; zd=bar;}}
      Swing_n=Swing;
     }
//----   
   Swing=0;
   Swing_n=0;
   zu=limit;
   zd=limit;
   BH=high[limit];
   BL=low[limit];
//---- &8:; @0AGQB0 1KAB@ gt 3 gt  7837030
   for(bar=limit; bar gt =0 && !IsStopped(); bar--)
     {
      ZigzagLawnBuffer2[bar]=NULL;
      ZigzagPeakBuffer2[bar]=NULL;

      HH=high[ArrayMaximum(high,bar+1,FastLength)];
      LL=low[ArrayMinimum(low,bar+1,FastLength)];
      if(low[bar] lt LL && high[bar] gt HH)
        {
         Swing=2;
         if(Swing_n== 1) zu=bar+1;
         if(Swing_n==-1) zd=bar+1;
        }
      else
        {
         if(low [bar] lt LL) Swing=-1;
         if(high[bar] gt HH) Swing= 1;
        }
      if(Swing!=Swing_n && Swing_n!=0)
        {
         if(Swing==2) {Swing=-Swing_n; BH=high[bar]; BL=low[bar];}
         if(Swing== 1)
           {            
            if(BL==low[zd]) ZigzagLawnBuffer2[zd]=BL;
            else ZigzagLawnBuffer2[zd-1]=BL;
           }
         if(Swing==-1)
           {
            if(BH==high[zu]) ZigzagPeakBuffer2[zu]=BH;
            else ZigzagPeakBuffer2[zu-1]=BH;
           }
         BH=high[bar];
         BL=low [bar];
        }
      if(Swing== 1) {if(high[bar] gt =BH) {BH=high[bar]; zu=bar;}}
      if(Swing==-1) {if(low [bar] lt =BL) {BL=low [bar]; zd=bar;}}
      Swing_n=Swing;
     }
//----     
   return(rates_total);
  }
//+------------------------------------------------------------------+

 

About Me

I'm Mike Semlitsch the owner of PerfectTrendSystem.com. My trading career started in 2007. Since 2013 I have helped thousands of traders to take their trading to the next level. Many of them are now constantly profitable traders. 

The following performance was achieved by me while trading live in front of hundreds of my clients:

Connect With Me:  

Results From 5 Months!
This service starts soon! Be the first who get's notified when it begins!

This FREE Indicator Can Transform
Your Trading!

FREE Indicator + Telegram Group


Request the Ultimate Double Top/Bottom Indicator which is used by 10,000+ traders.