Navigation´╝ÜHome > Content >

ZMFX_all_pivot_levels_v2.mq4

Time: 2013-05-02 | Download file:ZMFX_all_pivot_levels_v2.mq4

//+------------------------------------------------------------------+
//|                                                                  
//|                       ZMFX All pivot levels.mq4              
//|                                         
//|                       ZoomInForex.com              
//|                                                                  
//+------------------------------------------------------------------+

#property indicator_chart_window
#property link "http://www.ZoomInForex.com/"

   extern bool Use_Sunday_Data   = True;
   extern bool Daily             = True;
   extern bool Daily_SR_Levels   = True;
   extern bool Weekly            = True;
   extern bool Weekly_SR_Levels  = true;
   extern bool Monthly           = true;
   extern bool Monthly_SR_Levels = true;
   
extern double D_label_pos=1;
extern double W_label_pos=1.5;
extern double M_label_pos=5;

extern int pivot_line_type=1;
extern int resist_line_type=2;
extern int support_line_type=2;
extern int pivot_width=2;
extern int resist_width=1;
extern int support_width=1;

extern string Daily_Colors;   
   extern color cdpivot=Black;
   extern color cds1=LimeGreen;
   extern color cds2=LimeGreen;
   extern color cds3=LimeGreen;
   extern color cdr1=DarkOrange;
   extern color cdr2=DarkOrange;
   extern color cdr3=DarkOrange;

extern string Weekly_Colors; 
   extern color cwpivot=Black;
   extern color cws1=Green;
   extern color cws2=Green;
   extern color cws3=Green;
   extern color cwr1=Red;
   extern color cwr2=Red;
   extern color cwr3=Red;

extern string Monthly_Colors;   
   extern color cmpivot=Black;
   extern color cms1=DarkGreen;
   extern color cms2=DarkGreen;
   extern color cms3=DarkGreen;
   extern color cmr1=FireBrick;
   extern color cmr2=FireBrick;
   extern color cmr3=FireBrick;
   

   double YesterdayHigh;
   double YesterdayLow;
   double YesterdayClose;
   double Day_Price[][6];
   double Pivot,S1,S2,S3,R1,R2,R3;
      
   double WeekHigh;
   double WeekLow;
   double WeekClose;
   double Weekly_Price[][6];
   double WeekPivot,WS1,WS2,WS3,WR1,WR2,WR3;
   
   double MonthHigh;
   double MonthLow;
   double MonthClose;
   double Month_Price[][6];
   double MonthPivot,MS1,MS2,MS3,MR1,MR2,MR3;
   
int init()
  {
   return(0);
  }
  
//-------------------------------------------------------- 
  
int deinit()
  {
ObjectDelete("PivotLine");
ObjectDelete("R1_Line");
ObjectDelete("R2_Line");
ObjectDelete("R3_Line");
ObjectDelete("S1_Line");
ObjectDelete("S2_Line");
ObjectDelete("S3_Line");  

//--------------------------------

ObjectDelete("PivotLabel");
ObjectDelete("R1_Label");
ObjectDelete("R2_Label");
ObjectDelete("R3_Label");
ObjectDelete("S1_Label");
ObjectDelete("S2_Label");
ObjectDelete("S3_Label"); 

//--------------------------------------------------------

ObjectDelete("WeekPivotLine");
ObjectDelete("WR1_Line");
ObjectDelete("WR2_Line");
ObjectDelete("WR3_Line");
ObjectDelete("WS1_Line");
ObjectDelete("WS2_Line");
ObjectDelete("WS3_Line");  

//--------------------------------

ObjectDelete("WeekPivotLabel");
ObjectDelete("WR1_Label");
ObjectDelete("WR2_Label");
ObjectDelete("WR3_Label");
ObjectDelete("WS1_Label");
ObjectDelete("WS2_Label");
ObjectDelete("WS3_Label");  

//--------------------------------------------------------

ObjectDelete("MonthPivotLine");
ObjectDelete("MR1_Line");
ObjectDelete("MR2_Line");
ObjectDelete("MR3_Line");
ObjectDelete("MS1_Line");
ObjectDelete("MS2_Line");
ObjectDelete("MS3_Line");  

//--------------------------------

ObjectDelete("MonthPivotLabel");
ObjectDelete("MR1_Label");
ObjectDelete("MR2_Label");
ObjectDelete("MR3_Label");
ObjectDelete("MS1_Label");
ObjectDelete("MS2_Label");
ObjectDelete("MS3_Label");

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

int start()
{

ArrayCopyRates(Day_Price,(Symbol()), 1440);

   YesterdayHigh  = Day_Price[1][3];
   YesterdayLow   = Day_Price[1][2];
   YesterdayClose = Day_Price[1][4];
   
   Pivot = ((YesterdayHigh + YesterdayLow + YesterdayClose)/3);

   R1 = (2*Pivot)-YesterdayLow;
   S1 = (2*Pivot)-YesterdayHigh;

   R2 = Pivot+(R1-S1);
   S2 = Pivot-(R1-S1);
   
   R3 = (YesterdayHigh + (2*(Pivot-YesterdayLow)));
   S3 = (YesterdayLow - (2*(YesterdayHigh-Pivot)));  
  
  
if (Use_Sunday_Data == false)
 {   
   while (DayOfWeek() == 1)
      {      
       YesterdayHigh  = Day_Price[2][3];
       YesterdayLow   = Day_Price[2][2];
       YesterdayClose = Day_Price[2][4];
   
       Pivot = ((YesterdayHigh + YesterdayLow + YesterdayClose)/3);

       R1 = (2*Pivot)-YesterdayLow;
       S1 = (2*Pivot)-YesterdayHigh;

       R2 = Pivot+(R1-S1);
       S2 = Pivot-(R1-S1);
   
       R3 = (YesterdayHigh + (2*(Pivot-YesterdayLow)));
       S3 = (YesterdayLow - (2*(YesterdayHigh-Pivot)));
       break;
      }
 }
  
//--------------------------------------------------------
//--------------------------------------------------------


ArrayCopyRates(Weekly_Price, Symbol(), 10080);

WeekHigh  = Weekly_Price[1][3];
WeekLow   = Weekly_Price[1][2];
WeekClose = Weekly_Price[1][4];

WeekPivot = ((WeekHigh + WeekLow + WeekClose)/3);

      WR1 = (2*WeekPivot)-WeekLow;
      WS1 = (2*WeekPivot)-WeekHigh;

      WR2 = WeekPivot+(WR1-WS1);
      WS2 = WeekPivot-(WR1-WS1);

      WS3 = (WeekLow - (2*(WeekHigh-WeekPivot)));
      WR3 = (WeekHigh + (2*(WeekPivot-WeekLow)));

//--------------------------------------------------------
//--------------------------------------------------------


ArrayCopyRates(Month_Price, Symbol(), 43200);

MonthHigh  = Month_Price[1][3];
MonthLow   = Month_Price[1][2];
MonthClose = Month_Price[1][4];

MonthPivot = ((MonthHigh + MonthLow + MonthClose)/3);

      MR1 = (2*MonthPivot)-MonthLow;
      MS1 = (2*MonthPivot)-MonthHigh;

      MR2 = MonthPivot+(MR1-MS1);
      MS2 = MonthPivot-(MR1-MS1);

      MS3 = (MonthLow - (2*(MonthHigh-MonthPivot)));
      MR3 = (MonthHigh + (2*(MonthPivot-MonthLow)));

//--------------------------------------------------------
datetime dopen=iTime(Symbol(),PERIOD_D1,0);

if (Daily==true)
 {
  TimeToStr(CurTime());
  ObjectCreate("PivotLine", OBJ_TREND, 0, dopen, Pivot, CurTime(), Pivot);
  ObjectSet("PivotLine", OBJPROP_COLOR, cdpivot);
  ObjectSet("PivotLine", OBJPROP_STYLE, pivot_line_type);
  ObjectSet("PivotLine", OBJPROP_WIDTH, pivot_width);

 if(ObjectFind("PivotLabel") != 0)
  {
   ObjectCreate("PivotLabel", OBJ_TEXT, 0, CurTime()+(240*60)*D_label_pos, Pivot);
   ObjectSetText("PivotLabel", ("D Pivot"), 8, "Arial", cdpivot);
  }
 else
  {
   ObjectMove("PivotLabel", 0, CurTime()+(240*60)*D_label_pos, Pivot);
  }
ObjectsRedraw();

//--------------------------------------------------------

if (Daily_SR_Levels==true)
 {
  ObjectCreate("R1_Line", OBJ_TREND,0, dopen, R1, CurTime(),R1);
  ObjectSet("R1_Line", OBJPROP_COLOR, cdr1);
  ObjectSet("R1_Line", OBJPROP_STYLE, resist_line_type);
  ObjectSet("R1_Line", OBJPROP_WIDTH, resist_width);

 if(ObjectFind("R1_Label") != 0)
  {
   ObjectCreate("R1_Label", OBJ_TEXT, 0, CurTime()+(240*60)*D_label_pos, R1);
   ObjectSetText("R1_Label", "D R1", 8, "Arial", cdr1);
  }
 else
  {
   ObjectMove("R1_Label", 0, CurTime()+(240*60)*D_label_pos, R1);
  }

//--------------------------------------------------------

   ObjectCreate("R2_Line", OBJ_TREND,0, dopen, R2, CurTime(),R2);
   ObjectSet("R2_Line", OBJPROP_COLOR, cdr2);
   ObjectSet("R2_Line", OBJPROP_STYLE, resist_line_type);
   ObjectSet("R2_Line", OBJPROP_WIDTH, resist_width);
 if(ObjectFind("R2_Label") != 0)
  {
   ObjectCreate("R2_Label", OBJ_TEXT, 0, CurTime()+(240*60)*D_label_pos, R2);
   ObjectSetText("R2_Label", "D R2", 8, "Arial", cdr2);
  }
 else
  {
   ObjectMove("R2_Label", 0, CurTime()+(240*60)*D_label_pos, R2);
  }

//---------------------------------------------------------

   ObjectCreate("R3_Line", OBJ_TREND,0, dopen, R3, CurTime(),R3);
   ObjectSet("R3_Line", OBJPROP_COLOR, cdr3);
   ObjectSet("R3_Line", OBJPROP_STYLE, resist_line_type);
   ObjectSet("R3_Line", OBJPROP_WIDTH, resist_width);

 if(ObjectFind("R3_Label") != 0)
  {
   ObjectCreate("R3_Label", OBJ_TEXT, 0, CurTime()+(240*60)*D_label_pos, R3);
   ObjectSetText("R3_Label", "D R3", 8, "Arial", cdr3);
  }
 else
  {
   ObjectMove("R3_Label", 0, CurTime()+(240*60)*D_label_pos, R3);
  }

//---------------------------------------------------------

   ObjectCreate("S1_Line", OBJ_TREND,0, dopen, S1, CurTime(),S1);
   ObjectSet("S1_Line", OBJPROP_COLOR, cds1);
   ObjectSet("S1_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("S1_Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("S1_Label") != 0)
  {
   ObjectCreate("S1_Label", OBJ_TEXT, 0, CurTime()+(240*60)*D_label_pos, S1);
   ObjectSetText("S1_Label", "D S1", 8, "Arial", cds1);
  }
 else
  {
   ObjectMove("S1_Label", 0, CurTime()+(240*60)*D_label_pos, S1);
  }

//---------------------------------------------------------

   ObjectCreate("S2_Line", OBJ_TREND,0, dopen, S2, CurTime(),S2);
   ObjectSet("S2_Line", OBJPROP_COLOR, cds2);
   ObjectSet("S2_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("S2_Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("S2_Label") != 0)
  {
   ObjectCreate("S2_Label", OBJ_TEXT, 0, CurTime()+(240*60)*D_label_pos, S2);
   ObjectSetText("S2_Label", "D S2", 8, "Arial", cds2);
  }
 else
  {
   ObjectMove("S2_Label", 0, CurTime()+(240*60)*D_label_pos, S2);
  }

//---------------------------------------------------------

   ObjectCreate("S3_Line", OBJ_TREND,0, dopen, S3, CurTime(),S3);
   ObjectSet("S3_Line", OBJPROP_COLOR, cds3);
   ObjectSet("S3_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("S3 _Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("S3_Label") != 0)
  {
   ObjectCreate("S3_Label", OBJ_TEXT, 0, CurTime()+(240*60)*D_label_pos, S3);
   ObjectSetText("S3_Label", "D S3", 8, "Arial", cds3);
  }
 else
  {
   ObjectMove("S3_Label", 0, CurTime()+(240*60)*D_label_pos, S3);
  }
 }
ObjectsRedraw();
}

//---------------------------------------------------------
//---------------------------------------------------------
//---------------------------------------------------------
datetime wopen=iTime(Symbol(),PERIOD_W1,0);

if (Weekly==true)
 {
  ObjectCreate("WeekPivotLine", OBJ_TREND,0, wopen,WeekPivot,CurTime(),WeekPivot);
  ObjectSet("WeekPivotLine", OBJPROP_COLOR, cwpivot);
  ObjectSet("WeekPivotLine", OBJPROP_STYLE, pivot_line_type);
  ObjectSet("WeekPivotLine", OBJPROP_WIDTH, pivot_width);
 if(ObjectFind("WeekPivotLabel") != 0)
  {
   ObjectCreate("WeekPivotLabel", OBJ_TEXT, 0, CurTime()+(240*60)*W_label_pos, WeekPivot);
   ObjectSetText("WeekPivotLabel", "W Pivot", 8, "Arial", cwpivot);
  }
 else
  {
   ObjectMove("WeekPivotLabel", 0, CurTime()+(240*60)*W_label_pos, WeekPivot);
  }

//--------------------------------------------------------

if (Weekly_SR_Levels==true)
 {
  ObjectCreate("WR1_Line", OBJ_TREND,0, wopen, WR1, CurTime(),WR1);
  ObjectSet("WR1_Line", OBJPROP_COLOR, cwr1);
  ObjectSet("WR1_Line", OBJPROP_STYLE, resist_line_type);
  ObjectSet("WR1_Line", OBJPROP_WIDTH, resist_width);
 if(ObjectFind("WR1_Label") != 0)
  {
   ObjectCreate("WR1_Label", OBJ_TEXT, 0, CurTime()+(240*60)*W_label_pos, WR1);
   ObjectSetText("WR1_Label", "W R1", 8, "Arial", cwr1);
  }
 else
  {
   ObjectMove("WR1_Label", 0, CurTime()+(240*60)*W_label_pos, WR1);
  }

//--------------------------------------------------------

   ObjectCreate("WR2_Line", OBJ_TREND,0, wopen,WR2,CurTime(),WR2);
   ObjectSet("WR2_Line", OBJPROP_COLOR, cwr2);
   ObjectSet("WR2_Line", OBJPROP_STYLE, resist_line_type);
   ObjectSet("WR2_Line", OBJPROP_WIDTH, resist_width);
 if(ObjectFind("WR2_Label") != 0)
  {
   ObjectCreate("WR2_Label", OBJ_TEXT, 0, CurTime()+(240*60)*W_label_pos, WR2);
   ObjectSetText("WR2_Label", " W R2", 8, "Arial", cwr2);
  }
 else
  {
   ObjectMove("WR2_Label", 0, CurTime()+(240*60)*W_label_pos, WR2);
  }

//---------------------------------------------------------

   ObjectCreate("WR3_Line", OBJ_TREND,0, wopen,WR3, CurTime(),WR3);
   ObjectSet("WR3_Line", OBJPROP_COLOR, cwr3);
   ObjectSet("WR3_Line", OBJPROP_STYLE, resist_line_type);
   ObjectSet("WR3_Line", OBJPROP_WIDTH, resist_width);
 if(ObjectFind("WR3_Label") != 0)
  {
   ObjectCreate("WR3_Label", OBJ_TEXT, 0, CurTime()+(240*60)*W_label_pos, WR3);
   ObjectSetText("WR3_Label", " W R3", 8, "Arial", cwr3);
  }
 else
  {
   ObjectMove("WR3_Label", 0, CurTime()+(240*60)*W_label_pos, WR3);
  }

//---------------------------------------------------------

   ObjectCreate("WS1_Line", OBJ_TREND,0, wopen,WS1, CurTime(),WS1);
   ObjectSet("WS1_Line", OBJPROP_COLOR, cws1);
   ObjectSet("WS1_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("WS1_Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("WS1_Label") != 0)
  {
   ObjectCreate("WS1_Label", OBJ_TEXT, 0, CurTime()+(240*60)*W_label_pos, WS1);
   ObjectSetText("WS1_Label", "W S1", 8, "Arial", cws1);
  }
 else
  {
   ObjectMove("WS1_Label", 0, CurTime()+(240*60)*W_label_pos, WS1);
  }

//---------------------------------------------------------

   ObjectCreate("WS2_Line", OBJ_TREND,0, wopen,WS2, CurTime(),WS2);
   ObjectSet("WS2_Line", OBJPROP_COLOR, cws2);
   ObjectSet("WS2_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("WS2_Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("WS2_Label") != 0)
  {
   ObjectCreate("WS2_Label", OBJ_TEXT, 0, CurTime()+(240*60)*W_label_pos, WS2);
   ObjectSetText("WS2_Label", "W S2", 8, "Arial", cws2);
  }
 else
  {
   ObjectMove("WS2_Label", 0, CurTime()+(240*60)*W_label_pos, WS2);
  }

//---------------------------------------------------------

   ObjectCreate("WS3_Line", OBJ_TREND,0, wopen,WS3, CurTime(),WS3);
   ObjectSet("WS3_Line", OBJPROP_COLOR, cws3);
   ObjectSet("WS3_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("WS3_Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("WS3_Label") != 0)
  {
   ObjectCreate("WS3_Label", OBJ_TEXT, 0, CurTime()+(240*60)*W_label_pos, WS3);
   ObjectSetText("WS3_Label", "W S3", 8, "Arial", cws3);
  }
 else
  {
   ObjectMove("WS3_Label", 0, CurTime()+(240*60)*M_label_pos, WS3);
  }
 }
}

//---------------------------------------------------------
//---------------------------------------------------------
//---------------------------------------------------------
datetime mopen=iTime(Symbol(),PERIOD_MN1,0);


if (Monthly==true)
 {
  ObjectCreate("MonthPivotLine", OBJ_TREND,0, mopen, MonthPivot, CurTime(),MonthPivot);
  ObjectSet("MonthPivotLine", OBJPROP_COLOR, cmpivot);
  ObjectSet("MonthPivotLine", OBJPROP_STYLE, pivot_line_type);
  ObjectSet("MonthPivotLine", OBJPROP_WIDTH, pivot_width);
 if(ObjectFind("MonthPivotLabel") != 0)
  {
   ObjectCreate("MonthPivotLabel", OBJ_TEXT, 0, CurTime()+(240*60)*M_label_pos, MonthPivot);
   ObjectSetText("MonthPivotLabel", "M Pivot", 8, "Arial", cmpivot);
  }
 else
  {
   ObjectMove("MonthPivotLabel", 0, CurTime()+(240*60)*M_label_pos, MonthPivot);
  }

//--------------------------------------------------------

if (Monthly_SR_Levels==true)
 {
  ObjectCreate("MR1_Line", OBJ_TREND,0, mopen, MR1, CurTime(),MR1);
  ObjectSet("MR1_Line", OBJPROP_COLOR, cmr1);
  ObjectSet("MR1_Line", OBJPROP_STYLE, resist_line_type);
  ObjectSet("MR1_Line", OBJPROP_WIDTH, resist_width);
 if(ObjectFind("MR1_Label") != 0)
  {
   ObjectCreate("MR1_Label", OBJ_TEXT, 0, CurTime()+(240*60)*M_label_pos, MR1);
   ObjectSetText("MR1_Label", " M R1", 8, "Arial", cmr1);
  }
 else
  {
   ObjectMove("MR1_Label", 0, CurTime()+(240*60)*M_label_pos, MR1);
  }

//--------------------------------------------------------

   ObjectCreate("MR2_Line", OBJ_TREND,0, mopen, MR2, CurTime(),MR2);
   ObjectSet("MR2_Line", OBJPROP_COLOR, cmr2);
   ObjectSet("MR2_Line", OBJPROP_STYLE, resist_line_type);
   ObjectSet("MR2_Line", OBJPROP_WIDTH, resist_width);
 if(ObjectFind("MR2_Label") != 0)
  {
   ObjectCreate("MR2_Label", OBJ_TEXT, 0, CurTime()+(240*60)*M_label_pos, MR2);
   ObjectSetText("MR2_Label", " M R2", 8, "Arial", cmr2);
  }
 else
  {
   ObjectMove("MR2_Label", 0, CurTime()+(240*60)*M_label_pos, MR2);
  }

//---------------------------------------------------------

   ObjectCreate("MR3_Line", OBJ_TREND,0, mopen, MR3, CurTime(),MR3);
   ObjectSet("MR3_Line", OBJPROP_COLOR, cmr3);
   ObjectSet("MR3_Line", OBJPROP_STYLE, resist_line_type);
   ObjectSet("MR3_Line", OBJPROP_WIDTH, resist_width);
 if(ObjectFind("MR3_Label") != 0)
  {
   ObjectCreate("MR3_Label", OBJ_TEXT, 0, CurTime()+(240*60)*M_label_pos, MR3);
   ObjectSetText("MR3_Label", " M R3", 8, "Arial", cmr3);
  }
 else
  {
   ObjectMove("MR3_Label", 0, CurTime()+(240*60)*M_label_pos, MR3);
  }

//---------------------------------------------------------

   ObjectCreate("MS1_Line", OBJ_TREND,0, mopen, MS1, CurTime(),MS1);
   ObjectSet("MS1_Line", OBJPROP_COLOR, cms1);
   ObjectSet("MS1_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("MS1_Line", OBJPROP_WIDTH, support_width);

 if(ObjectFind("MS1_Label") != 0)
  {
   ObjectCreate("MS1_Label", OBJ_TEXT, 0, CurTime()+(240*60)*M_label_pos, MS1);
   ObjectSetText("MS1_Label", "M S1", 8, "Arial", cms1);
  }
 else
  {
   ObjectMove("MS1_Label", 0, CurTime()+(240*60)*M_label_pos, MS1);
  }

//---------------------------------------------------------

   ObjectCreate("MS2_Line", OBJ_TREND,0, mopen, MS2, CurTime(),MS2);
   ObjectSet("MS2_Line", OBJPROP_COLOR, cms2);
   ObjectSet("MS2_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("MS2_Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("MS2_Label") != 0)
  {
   ObjectCreate("MS2_Label", OBJ_TEXT, 0, CurTime()+(240*60)*M_label_pos, MS2);
   ObjectSetText("MS2_Label", "M S2", 8, "Arial", cms2);
  }
 else
  {
   ObjectMove("MS2_Label", 0, CurTime()+(240*60)*M_label_pos, MS2);
  }

//---------------------------------------------------------

   ObjectCreate("MS3_Line", OBJ_TREND,0, mopen, MS3, CurTime(),MS3);
   ObjectSet("MS3_Line", OBJPROP_COLOR, cms3);
   ObjectSet("MS3_Line", OBJPROP_STYLE, support_line_type);
   ObjectSet("MS3_Line", OBJPROP_WIDTH, support_width);
 if(ObjectFind("MS3_Label") != 0)
  {
   ObjectCreate("MS3_Label", OBJ_TEXT, 0, CurTime()+(240*60)*M_label_pos, MS3);
   ObjectSetText("MS3_Label", "M S3", 8, "Arial", cms3);
  }
 else
  {
   ObjectMove("MS3_Label", 0, CurTime()+(240*60)*M_label_pos, MS3);
  }
 }
}
//---------------------------------------------------------

ObjectsRedraw();

   return(0);
}   

Recommend