Navigation:Home > Content >

fibopiv_weekly.mq4

Time: 2015-02-22 | Download file:fibopiv_weekly.mq4

//+------------------------------------------------------------------+
//|                                               fibopiv weekly.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete("WS1");
   ObjectDelete("WS2");
   ObjectDelete("WS3");
   ObjectDelete("WR1");
   ObjectDelete("WR2");
   ObjectDelete("WR3");
   ObjectDelete("WEEKLY PIVOT");
   ObjectDelete("Weekly Support 1");
   ObjectDelete("Weekly 2");
   ObjectDelete("Weekly 3");
   ObjectDelete("Weekly Pivot level");
   ObjectDelete("Weekly Resistance 1");
   ObjectDelete("Weekly Resistance 2");
   ObjectDelete("Weekly Resistance 3");
   Comment(" ");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
//----
double rates[1][6],weekly_close,weekly_high,weekly_low;
ArrayCopyRates(rates, Symbol(), PERIOD_W1);

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


//---- Calculate Pivots

Comment("\nWeekly quotations:\nH ",weekly_high,"\nL ",weekly_low, "\nC ",weekly_close);
double R = weekly_high - weekly_low;//range
double wp = (weekly_high + weekly_low + weekly_close)/3;// Standard Pivot
double wr3 = wp + (R * 1.000);
double wr2 = wp + (R * 0.618);
double wr1 = wp + (R * 0.382);
double ws1 = wp - (R * 0.382);
double ws2 = wp - (R * 0.618);
double ws3 = wp - (R * 1.000);

drawLine(wr3,"WR3", DarkGreen,0);
drawLabel("Weekly Resistance 3",wr3,White);
drawLine(wr2,"WR2", DarkGreen,0);
drawLabel("Weekly Resistance 2",wr2,White);
drawLine(wr1,"WR1", DarkGreen,0);
drawLabel("Weekly Resistance 1",wr1,White);

drawLine(wp,"WEEKLY PIVOT",White,1);
drawLabel("Weekly Pivot ",wp,White);

drawLine(ws1,"WS1",DarkSlateBlue,0);
drawLabel("Weekly Support 1",ws1,White);
drawLine(ws2,"WS2",DarkSlateBlue,0);
drawLabel("Weekly Support 2",ws2,White);
drawLine(ws3,"WS3",DarkSlateBlue,0);
drawLabel("Weekly Support 3",ws3,White);


//----
   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, "Lucida Handwriting", 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
            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
            ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
            
            ObjectSet(name, OBJPROP_COLOR, Col);        
            ObjectSet(name,OBJPROP_WIDTH,1);
          
         }
}

Recommend