i-SKB-F





//+------------------------------------------------------------------+
//|                                                      i-SKB-F.mq4 |
//|                                           Êèì Èãîðü Â. aka KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//|  13.06.2006  Ñêîëüçÿùèå êàíàëû Áàðèøïîëüöà íà Ôðàêòàëàõ.         |
//+------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link      "http://www.kimiv.ru"
//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 SkyBlue
#property indicator_color2 Salmon
//------- Ïîêëþ÷åíèå âíåøíèõ ìîäóëåé ---------------------------------
//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà -------------------------------
extern int  FixedTF=60;
extern int  OffSet =-3;
extern bool ShowRay=True;
//------- Ãëîáàëüíûå ïåðåìåííûå èíäèêàòîðà ---------------------------
double dBuf0[];
double dBuf1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
  void init() 
  {
     if (ShowRay) 
     {
      ObjectCreate("HL", OBJ_TREND, 0, 0,0,0,0);
      ObjectCreate("LL", OBJ_TREND, 0, 0,0,0,0);
     }
   SetIndexBuffer(0, dBuf0);
   SetIndexLabel (0, "HL");
   SetIndexStyle (0, DRAW_LINE, STYLE_SOLID, 2);
   SetIndexBuffer(1, dBuf1);
   SetIndexLabel (1, "LL");
   SetIndexStyle (1, DRAW_LINE, STYLE_SOLID, 2);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
  void deinit() 
  {
   ObjectDelete("HL");
   ObjectDelete("LL");
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
  void start() 
  {
   double y3=0, y2=0, y1=0, zz;    // ôðàêòàëû
   double y4, u2, u1, d2, d1;      // öåíîâûå óðîâíè ëèíèé
   int    x3, x2, x1, sh=2;        // íîìåðà áàðîâ
   string sL1, sL2;
   color  clU, clD;
   // Áåð¸ì òðè ýêñòðåìóìà Çèã-Çàãà
     while(y3==0) 
     {
      zz=iFractals(NULL, FixedTF, MODE_UPPER, sh);
      if (zz==0) zz=iFractals(NULL, FixedTF, MODE_LOWER, sh);
        if (zz!=0) 
        {
         if      (y1==0) { x1=sh; y1=zz; }
         else if (y2==0) { x2=sh; y2=zz; }
            else if (y3==0) { x3=sh; y3=zz; }
        }
      sh++;
     }
   y4=EquationDirect(x3, y3, x1, y1, x2);
     if (y2>y1) 
     {
      u2=y3+y2-y4;
      u1=EquationDirect(x3, u2, x2, y2, 0);
      d2=y3;
      d1=EquationDirect(x3, y3, x1, y1, 0);
      }
       else 
      {
      u2=y3;
      u1=EquationDirect(x3, y3, x1, y1, 0);
      d2=y3+y2-y4;
      d1=EquationDirect(x3, d2, x2, y2, 0);
     }
   u2+=OffSet*Point; u1+=OffSet*Point;
   d2-=OffSet*Point; d1-=OffSet*Point;
   x2=iBarShift(NULL, 0, iTime(NULL, FixedTF, x3));
     for(sh=x2; sh>=0; sh--) 
     {
      dBuf0[sh]=EquationDirect(x2, u2, 0, u1, sh);
      dBuf1[sh]=EquationDirect(x2, d2, 0, d1, sh);
     }
     if (ShowRay) 
     {
      ObjectSet("HL", OBJPROP_TIME1 , iTime(NULL, FixedTF, x3));
      ObjectSet("HL", OBJPROP_TIME2 , Time[0]);
      ObjectSet("HL", OBJPROP_PRICE1, u2);
      ObjectSet("HL", OBJPROP_PRICE2, u1);
      ObjectSet("HL", OBJPROP_BACK  , True);
      ObjectSet("HL", OBJPROP_RAY   , True);
      ObjectSet("HL", OBJPROP_STYLE , STYLE_DOT);
      ObjectSet("HL", OBJPROP_WIDTH , 1);
      ObjectSet("HL", OBJPROP_COLOR , indicator_color1);
      //
      ObjectSet("LL", OBJPROP_TIME1 , iTime(NULL, FixedTF, x3));
      ObjectSet("LL", OBJPROP_TIME2 , Time[0]);
      ObjectSet("LL", OBJPROP_PRICE1, d2);
      ObjectSet("LL", OBJPROP_PRICE2, d1);
      ObjectSet("LL", OBJPROP_BACK  , True);
      ObjectSet("LL", OBJPROP_RAY   , True);
      ObjectSet("LL", OBJPROP_STYLE , STYLE_DOT);
      ObjectSet("LL", OBJPROP_WIDTH , 1);
      ObjectSet("LL", OBJPROP_COLOR , indicator_color2);
     }
  }
//+------------------------------------------------------------------+
//| Óðàâíåíèå ïðÿìîé.                                                |
//| Âû÷èñëÿåò çíà÷åíèå Y äëÿ X â òî÷êå ïåðåñå÷åíèÿ ñ ïðÿìîé.         |
//| Ïàðàìåòðû:                                                       |
//|   x1,y1 - êîîðäèíàòû ïåðâîé òî÷êè,                               |
//|   x2,y2 - êîîðäèíàòû âòîðîé òî÷êè,                               |
//|   x     - çíà÷åíèå, äëÿ êîòîðîãî âû÷èñëèòü Y                     |
//+------------------------------------------------------------------+
  double EquationDirect(double x1, double y1, double x2, double y2, double x) 
  {
   if ((x2-x1)*(x-x1)==0) return(y1);
   return((y2-y1)/(x2-x1)*(x-x1)+y1);
  }
//+------------------------------------------------------------------+





Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:



Indicators Used:

Fractals


Custom Indicators Used:

Order Management characteristics:

Other Features: