FullFiboPiv_Weekly_DK





//+------------------------------------------------------------------+
//|                                                   FullFiboPiv_Weekly_DK.mq4 |
//|                                                          Kalenzo |
//|                                      bartlomiej.gorski@gmail.com
//|                                             modified by darkkiller
//+------------------------------------------------------------------+
#property copyright "c. 2007-08, Kalenzo"
#property link      "bartlomiej.gorski@gmail.com"
#property indicator_buffers   3
#property indicator_color1 C'62,62,62'
#property indicator_style1 1
#property indicator_color2 Red 
#property indicator_style1 1
#property indicator_color3 C'62,62,62' 
#property indicator_style1 1


/*extern color Resistance_3 = Sienna;
extern color Resistance_2 = Red;
extern color Resistance_1 = Magenta;
extern color Pivot = Goldenrod;
extern color Support_1 = Lime;
extern color Support_2 = Green;
extern color Support_3 = DarkGreen;
*/
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete("S1");
   ObjectDelete("S2");
   ObjectDelete("S3");
   ObjectDelete("S4");
   ObjectDelete("S5");
   ObjectDelete("S6");
   ObjectDelete("S7");
   ObjectDelete("S8");
   ObjectDelete("S9");
   ObjectDelete("S10");
   ObjectDelete("S11");
   ObjectDelete("S12");

   ObjectDelete("R1");
   ObjectDelete("R2");
   ObjectDelete("R3");
   ObjectDelete("R4");
   ObjectDelete("R5");
   ObjectDelete("R6");
   ObjectDelete("R7");
   ObjectDelete("R8");
   ObjectDelete("R9");
   ObjectDelete("R10");
   ObjectDelete("R11");
   ObjectDelete("R12");
 
   ObjectDelete("PIVOT");
   ObjectDelete("Daily Pivot");
   
   ObjectDelete("-FIB 23.6");
   ObjectDelete("-FIB 38.2");
   ObjectDelete("-FIB 50.0");
   ObjectDelete("-FIB 61.8");
   ObjectDelete("-FIB 76.4");
   ObjectDelete("-FIB 100.0");
   ObjectDelete("-FIB 123.6");
   ObjectDelete("-FIB 138.2");
   ObjectDelete("-FIB 150.0");
   ObjectDelete("-FIB 161.8");
   ObjectDelete("-FIB 176.4");
   ObjectDelete("-FIB 200.0");
   
   ObjectDelete("+FIB 23.6");
   ObjectDelete("+FIB 38.2");
   ObjectDelete("+FIB 50.0");
   ObjectDelete("+FIB 61.8");
   ObjectDelete("+FIB 76.4");
   ObjectDelete("+FIB 100.0");
   ObjectDelete("+FIB 123.6");
   ObjectDelete("+FIB 138.2");
   ObjectDelete("+FIB 150.0");
   ObjectDelete("+FIB 161.8");
   ObjectDelete("+FIB 176.4");
   ObjectDelete("+FIB 200.0");
   Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
//----
double rates[1][6],yesterday_close,yesterday_high,yesterday_low;
ArrayCopyRates(rates, Symbol(), PERIOD_W1);

if(DayOfWeek() == 1)
{
   if(TimeDayOfWeek(iTime(Symbol(),PERIOD_W1,1)) == 5)
   {
       yesterday_close = rates[1][4];
       yesterday_high = rates[1][3];
       yesterday_low = rates[1][2];
   }
   else
   {
      for(int d = 5;d>=0;d--)
      {
         if(TimeDayOfWeek(iTime(Symbol(),PERIOD_W1,d)) == 5)
         {
             yesterday_close = rates[d][4];
             yesterday_high = rates[d][3];
             yesterday_low = rates[d][2];
         }
         
      }  
      
   }
}
else
{
    yesterday_close = rates[1][4];
    yesterday_high = rates[1][3];
    yesterday_low = rates[1][2];
}


//---- Calculate Pivots

Comment("");
double R = yesterday_high - yesterday_low;//range
double p = (yesterday_high + yesterday_low + yesterday_close)/3;// Standard Pivot

double r12 = p + (R * 2.000);
double r11 = p + (R * 1.764);
double r10 = p + (R * 1.618);
double r9 = p + (R * 1.500);
double r8 = p + (R * 1.382);
double r7 = p + (R * 1.236);
double r6 = p + (R * 1.000);
double r5 = p + (R * 0.764);
double r4 = p + (R * 0.618);
double r3 = p + (R * 0.500);
double r2 = p + (R * 0.382);
double r1 = p + (R * 0.236);
double s1 = p - (R * 0.236);
double s2 = p - (R * 0.382);
double s3 = p - (R * 0.500);
double s4 = p - (R * 0.618);
double s5 = p - (R * 0.764);
double s6 = p - (R * 1.000);
double s7 = p - (R * 1.236);
double s8 = p - (R * 1.382);
double s9 = p - (R * 1.500);
double s10 = p - (R * 1.618);
double s11 = p - (R * 1.764);
double s12 = p - (R * 2.000);

drawLine(r12,"R12", indicator_color1,indicator_style1);
drawLabel("+FIB 200.0",r12,indicator_color1);
drawLine(r11,"R11", indicator_color1,indicator_style1);
drawLabel("+FIB 176.4",r11,indicator_color1);
drawLine(r10,"R10", indicator_color1,indicator_style1);
drawLabel("+FIB 161.8",r10,indicator_color1);
drawLine(r9,"R9", indicator_color1,indicator_style1);
drawLabel("+FIB 150.0",r9,indicator_color1);
drawLine(r8,"R8", indicator_color1,indicator_style1);
drawLabel("+FIB 138.2",r8,indicator_color1);
drawLine(r7,"R7", indicator_color1,indicator_style1);
drawLabel("+FIB 123.6",r7,indicator_color1);
drawLine(r6,"R6", indicator_color1,indicator_style1);
drawLabel("+FIB 100.0",r6,indicator_color1);
drawLine(r5,"R5", indicator_color1,indicator_style1);
drawLabel("+FIB 76.4",r5,indicator_color1);
drawLine(r4,"R4", indicator_color1,indicator_style1);
drawLabel("+FIB 61.8",r4,indicator_color1);
drawLine(r3,"R3", indicator_color1,indicator_style1);
drawLabel("+FIB 50.0",r3,indicator_color1);
drawLine(r2,"R2", indicator_color1,indicator_style1);
drawLabel("+FIB 38.2",r2,indicator_color1);
drawLine(r1,"R1", indicator_color1,indicator_style1);
drawLabel("+FIB 23.6",r1,indicator_color1);

drawLine(p,"PIVOT",indicator_color2,indicator_style1);
drawLabel("Daily Pivot",p,indicator_color2);

drawLine(s1,"S1",indicator_color3,indicator_style1);
drawLabel("-FIB 23.6",s1,indicator_color3);
drawLine(s2,"S2",indicator_color3,indicator_style1);
drawLabel("-FIB 38.2",s2,indicator_color3);
drawLine(s3,"S3",indicator_color3,indicator_style1);
drawLabel("-FIB 50.0",s3,indicator_color3);
drawLine(s4,"S4",indicator_color3,indicator_style1);
drawLabel("-FIB 61.8",s4,indicator_color3);
drawLine(s5,"S5",indicator_color3,indicator_style1);
drawLabel("-FIB 76.4",s5,indicator_color3);
drawLine(s6,"S6",indicator_color3,indicator_style1);
drawLabel("-FIB 100.0",s6,indicator_color3);
drawLine(s7,"S7",indicator_color3,indicator_style1);
drawLabel("-FIB 123.6",s7,indicator_color3);
drawLine(s8,"S8",indicator_color3,indicator_style1);
drawLabel("-FIB 138.2",s8,indicator_color3);
drawLine(s9,"S9",indicator_color3,indicator_style1);
drawLabel("-FIB 150.0",s9,indicator_color3);
drawLine(s10,"S10",indicator_color3,indicator_style1);
drawLabel("-FIB 161.8",s10,indicator_color3);
drawLine(s11,"S11",indicator_color3,indicator_style1);
drawLabel("-FIB 176.4",s11,indicator_color3);
drawLine(s12,"S12",indicator_color3,indicator_style1);
drawLabel("-FIB 200.0",s12,indicator_color3);

//----
   return(0);
  }
//+------------------------------------------------------------------+
void drawLabel(string name,double lvl,color Color)
{
    if(ObjectFind(name) != 0)
    {
        ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);
        ObjectSetText(name, name, 8, "Arial", EMPTY);
        ObjectSet(name, OBJPROP_COLOR, Color);
    }
    else
    {
        ObjectMove(name, 0, Time[10], lvl);
    }
}


void drawLine(double lvl,string name, color Col,int type)
{
         if(ObjectFind(name) != 0)
         {
            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
            
            if(type == 1)
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            else if(type == 2)
            ObjectSet(name, OBJPROP_STYLE, STYLE_DASHDOTDOT);
            else
            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
            
            ObjectSet(name, OBJPROP_COLOR, Col);
            ObjectSet(name,OBJPROP_WIDTH,1);
            
         }
         else
         {
            ObjectDelete(name);
            ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);
            
            if(type == 1)
            ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);
            else if(type == 2)
            ObjectSet(name, OBJPROP_STYLE, STYLE_DASHDOTDOT);
            else
            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
            
            ObjectSet(name, OBJPROP_COLOR, Col);        
            ObjectSet(name,OBJPROP_WIDTH,1);
          
         }
}



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: