Join The Community

19 Aug 2014

Indikator Forex Cara modified High Low v2 (ZigZag)

//+------------------------------------------------------------------+
//|                                         High_Low v2 (ZigZag).mq4 |
//|                                          rewritten by OnyengCopet |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "rewritten by CrazyChart, modify by  bankerforex.blogspot.com"
#property link      ""

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
//---- input parameters
//extern double    TakeProfit=250.0;
//extern double    Lots=1;
extern int       barn=1300;
extern int       Length=1;
//---- buffers
double ExtMapBuffer1[];
//double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexEmptyValue(0,0.0);
  //SetIndexDrawBegin(0, barn);
   SetIndexStyle(0,DRAW_SECTION);
   SetIndexBuffer(0,ExtMapBuffer1);
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    cnt,ticket,counted_bars=IndicatorCounted();
   int shift,Swing,Swing_n,uzl,i,zu,zd,mv;
   double LL,HH,BH,BL,NH,NL;
   double Uzel[10000][3];
   string text;
   
if (High[1]> High[0]) {Comment("SELL !!");}

 else if (High[1]< High[0]) {Comment("BUY !!");}
// loop from first bar to current bar (with shift=0)
      Swing_n=0;Swing=0;uzl=0;
      BH =High[barn];BL=Low[barn];zu=barn;zd=barn;

for (shift=barn;shift>=0;shift--) {
      LL=10000000;HH=-100000000;
   for (i=shift+Length;i>=shift+1;i--) {
         if (Low[i]< LL) {LL=Low[i];}
         if (High[i]>HH) {HH=High[i];}
         //====
        // if (High[1]> High[0]) {Comment("SELL !!"); {
         //  ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,Ask+TakeProfit*Point,"My EA",12345,0,Red);
         //  if(ticket>0)
         //    {
         //    if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
          //    }
        //   else Print("Error opening BUY order : ",GetLastError());
      //     return(0);
     //   }}
  //=====
   }
//If (High[i]< High[i-1]) Comment(High[i],High[i-1]," ","STAY AWAY !!");

        
         //

   if (Low[shift]<LL && High[shift]>HH){
      Swing=2;
      if (Swing_n==1) {zu=shift+1;}
      if (Swing_n==-1) {zd=shift+1;}
   } else {
      if (Low[shift]<LL) {Swing=-1;}
      if (High[shift]>HH) {Swing=1;}
   }

   if (Swing!=Swing_n && Swing_n!=0) {
   if (Swing==2) {
      Swing=-Swing_n;BH = High[shift];BL = Low[shift];
   }
      uzl=uzl+1;
   if (Swing==1) {
      Uzel[uzl][1]=zd;
      Uzel[uzl][2]=BL;
   }
   if (Swing==-1) {
      Uzel[uzl][1]=zu;
      Uzel[uzl][2]=BH;
   }
      BH = High[shift];
      BL = Low[shift];
   }

   if (Swing==1) {
      if (High[shift]>=BH) {BH=High[shift];zu=shift;}}
      if (Swing==-1) {
          if (Low[shift]<=BL) {BL=Low[shift]; zd=shift;}}
      Swing_n=Swing;
   }
   for (i=1;i<=uzl;i++) {
      //text=DoubleToStr(Uzel[i][1],0);
      //text=;
         mv=StrToInteger(DoubleToStr(Uzel[i][1],0));
      ExtMapBuffer1[mv]=Uzel[i][2];
   }





   return(0);
  }
//+------------------------------------------------------------------+

0 comments:

Post a Comment