i-MaZZSig-T01





//+------------------------------------------------------------------+
//|                                                i-MaZZSig-T01.mq4 |
//|            25.07.2006 Tranlated on MT4 by Êèì Èãîðü Â. aka KimIV |
//|                                             http://www.kimiv.ru  |
//+------------------------------------------------------------------+
/*[[
  Name := Urovny
  Author := HomeSoft Corp.
  Link := spiky@transkeino.ru
  Separate Window := No
  First Color := Gold
  First Draw Type := Symbol
  First Symbol := 241
  Use Second Data := Yes
  Second Color := Lime
  Second Draw Type := Symbol
  Second Symbol := 242
]]*/
#property copyright "HomeSoft Corp."
#property link      "spiky@transkeino.ru"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 LightBlue
#property indicator_width1 1
#property indicator_color2 Salmon
#property indicator_width2 1

//------- Âíåøíèå ïàðàìåòðû èíäèêòîðà --------------------------------
extern int depth = 20;
extern int deviation = 5;
extern int backstep = 3;
extern int per = 55;
extern int nBars = 1000;

//------- Ãëîáàëüíûå ïåðåìåííûå èíäèêòîðà ----------------------------
double dBuf0[], dBuf1[];


//+------------------------------------------------------------------+
//| Indicator initialization function                                |
//+------------------------------------------------------------------+
void init() {
  SetIndexArrow     (0, 241);
  SetIndexBuffer    (0, dBuf0);
  SetIndexEmptyValue(0, EMPTY_VALUE);
  SetIndexStyle     (0, DRAW_ARROW);
  SetIndexArrow     (1, 242);
  SetIndexBuffer    (1, dBuf1);
  SetIndexEmptyValue(1, EMPTY_VALUE);
  SetIndexStyle     (1, DRAW_ARROW);
}

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start() {
  double zz=0, zzold, S2Ma, S0Ma;
  int    LoopBegin, shift;

 	if (nBars==0) LoopBegin=Bars-500;
  else LoopBegin=nBars;
  LoopBegin=MathMin(Bars-500, LoopBegin);

  for (shift=LoopBegin; shift>=0; shift--) {
    if (zz!=0 && zz!=zzold) zzold=zz;
    zz=iCustom(NULL, 0, "ZigZag", depth, deviation, backstep, 0, shift);
    S2Ma=iMA(NULL, 0, per, 0, MODE_EMA, PRICE_CLOSE, shift+4);
    S0Ma=iMA(NULL, 0, per, 0, MODE_EMA, PRICE_CLOSE, shift);

    if (zz!=0 && zzold<zz && zz>S0Ma && zz>S2Ma && S2Ma>S0Ma) {
      dBuf1[shift]=zz+5*Point;
    }
    if (zz!=0 && zzold>zz && zz<S0Ma && zz<S2Ma && S2Ma<S0Ma) {
      dBuf0[shift]=zz-5*Point;
    }
  }
}
//+------------------------------------------------------------------+





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:


Moving average indicator


Custom Indicators Used:
ZigZag

Order Management characteristics:

Other Features: