Hello,
Firstly, I have no experience with code. I just had a few questions as where in this code can I change the font size, and how can I move the label location closer to the y-axis price. Because I have little to offer in return, I attached this indicator as a token of gratitude.
Thank you in advance.
//+------------------------------------------------------------------+
//| Day Range Highlight.mq4 |
//| Copyright 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
extern bool FourHourly = false;
extern bool incFH_M2_M3 = false;
extern bool Daily = true;
extern bool incD_M2_M3 = false;
extern bool Weekly = true;
extern bool incW_M2_M3 = true;
extern bool Monthly = true;
extern bool incM_M2_M3 = true;
extern bool Yearly = true;
extern bool incY_M2_M3 = true;
extern color PPColour = Black;
extern color SupportColour = Green;
extern color ResistanceColour = Red;
extern bool HighlightCloseLevels = false;
extern int CloseLevelRange = 10;
extern color HighlightColour = OrangeRed;
//---- input parameters
double FHPreviousHigh;
double FHPreviousLow;
double FHPreviousClose;
double DPreviousHigh;
double DPreviousLow;
double DPreviousClose;
double WPreviousHigh;
double WPreviousLow;
double WPreviousClose;
double MPreviousHigh;
double MPreviousLow;
double MPreviousClose;
double YPreviousHigh;
double YPreviousLow;
double YPreviousClose;
double FHPeriod_Price[][6];
double DPeriod_Price[][6];
double WPeriod_Price[][6];
double MPeriod_Price[][6];
double YPeriod_Price[][6];
double FHPivot,FHS1,FHS2,FHR1,FHR2,FHM4,FHM1,FHM2,FHM3,FHS3,FHR3;
double DPivot,DS1,DS2,DR1,DR2,DM4,DM1,DM2,DM3,DS3,DR3;
double WPivot,WS1,WS2,WR1,WR2,WM4,WM1,WM2,WM3,WS3,WR3;
double MPivot,MS1,MS2,MR1,MR2,MM4,MM1,MM2,MM3,MS3,MR3;
double YPivot,YS1,YS2,YR1,YR2,YM4,YM1,YM2,YM3,YS3,YR3;
double AllLevels[44]; //Not including 4H Pivots
double Poin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
Poin = Point;
//Checking for unconvetional Point digits number
if ((Point == 0.00001) || (Point == 0.001))
{
Poin *= 10;
}
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
for(int i=0;i<44;i++)
{
ObjectDelete("L" + i);
}
ObjectDelete("FHR2");
ObjectDelete("FHR1");
ObjectDelete("FHPP");
ObjectDelete("FHS1");
ObjectDelete("FHS2");
ObjectDelete("FHM4");
ObjectDelete("FHM1");
ObjectDelete("FHM2");
ObjectDelete("FHM3");
ObjectDelete("FHS3");
ObjectDelete("FHR3");
ObjectDelete("DR2");
ObjectDelete("DR1");
ObjectDelete("DPP");
ObjectDelete("DS1");
ObjectDelete("DS2");
ObjectDelete("DM4");
ObjectDelete("DM1");
ObjectDelete("DM2");
ObjectDelete("DM3");
ObjectDelete("DS3");
ObjectDelete("DR3");
ObjectDelete("WR2");
ObjectDelete("WR1");
ObjectDelete("WPP");
ObjectDelete("WS1");
ObjectDelete("WS2");
ObjectDelete("WM4");
ObjectDelete("WM1");
ObjectDelete("WM2");
ObjectDelete("WM3");
ObjectDelete("WS3");
ObjectDelete("WR3");
ObjectDelete("MR2");
ObjectDelete("MR1");
ObjectDelete("MPP");
ObjectDelete("MS1");
ObjectDelete("MS2");
ObjectDelete("MM4");
ObjectDelete("MM1");
ObjectDelete("MM2");
ObjectDelete("MM3");
ObjectDelete("MS3");
ObjectDelete("MR3");
ObjectDelete("YR2");
ObjectDelete("YR1");
ObjectDelete("YPP");
ObjectDelete("YS1");
ObjectDelete("YS2");
ObjectDelete("YM4");
ObjectDelete("YM1");
ObjectDelete("YM2");
ObjectDelete("YM3");
ObjectDelete("YS3");
ObjectDelete("YR3");
ObjectDelete("FHPivotLabel");
ObjectDelete("FHR1_Label");
ObjectDelete("FHR2_Label");
ObjectDelete("FHS1_Label");
ObjectDelete("FHS2_Label");
ObjectDelete("FHM4_Label");
ObjectDelete("FHM1_Label");
ObjectDelete("FHM2_Label");
ObjectDelete("FHM3_Label");
ObjectDelete("FHS3_Label");
ObjectDelete("FHR3_Label");
ObjectDelete("DPivotLabel");
ObjectDelete("DR1_Label");
ObjectDelete("DR2_Label");
ObjectDelete("DS1_Label");
ObjectDelete("DS2_Label");
ObjectDelete("DM4_Label");
ObjectDelete("DM1_Label");
ObjectDelete("DM2_Label");
ObjectDelete("DM3_Label");
ObjectDelete("DS3_Label");
ObjectDelete("DR3_Label");
ObjectDelete("WPivotLabel");
ObjectDelete("WR1_Label");
ObjectDelete("WR2_Label");
ObjectDelete("WS1_Label");
ObjectDelete("WS2_Label");
ObjectDelete("WM4_Label");
ObjectDelete("WM1_Label");
ObjectDelete("WM2_Label");
ObjectDelete("WM3_Label");
ObjectDelete("WS3_Label");
ObjectDelete("WR3_Label");
ObjectDelete("MPivotLabel");
ObjectDelete("MR1_Label");
ObjectDelete("MR2_Label");
ObjectDelete("MS1_Label");
ObjectDelete("MS2_Label");
ObjectDelete("MM4_Label");
ObjectDelete("MM1_Label");
ObjectDelete("MM2_Label");
ObjectDelete("MM3_Label");
ObjectDelete("MS3_Label");
ObjectDelete("MR3_Label");
ObjectDelete("YPivotLabel");
ObjectDelete("YR1_Label");
ObjectDelete("YR2_Label");
ObjectDelete("YS1_Label");
ObjectDelete("YS2_Label");
ObjectDelete("YM4_Label");
ObjectDelete("YM1_Label");
ObjectDelete("YM2_Label");
ObjectDelete("YM3_Label");
ObjectDelete("YS3_Label");
ObjectDelete("YR3_Label");
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
deinit();
int counter=0;
// 4 Hourly
if(FourHourly)
{
//ArrayInitialize(FHPeriod_Price,0);
ArrayCopyRates(FHPeriod_Price,(Symbol()), 240);
FHPreviousHigh = FHPeriod_Price[1][3];
FHPreviousLow = FHPeriod_Price[1][2];
FHPreviousClose = FHPeriod_Price[1][4];
FHPivot = ((FHPreviousHigh + FHPreviousLow + FHPreviousClose)/3);
FHR1 = (2*FHPivot)-FHPreviousLow;
FHS1 = (2*FHPivot)-FHPreviousHigh;
FHR2 = FHPivot+(FHR1-FHS1);
FHS2 = FHPivot-(FHR1-FHS1);
FHM1 = (FHS2+FHS1)/2;
FHM4 = (FHR1+FHR2)/2;
FHM2 = (FHS1+FHPivot)/2;
FHM3 = (FHPivot+FHR1)/2;
FHS3 = (FHPreviousLow - (2*(FHPreviousHigh-FHPivot)));
FHR3 = (FHPreviousHigh + (2*(FHPivot-FHPreviousLow)));
ObjectCreate("FHPP", OBJ_TREND,0, FHPeriod_Price[0][0],FHPivot);
ObjectSet("FHPP",10,false);
ObjectSet("FHPP", OBJPROP_COLOR, PPColour);
ObjectSet("FHPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHPP",OBJPROP_WIDTH,3);
ObjectSet("FHPP",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHPP",3,FHPivot);
ObjectSetText("FHPP","4 Hourly PP: " + DoubleToStr(FHPivot,4));
ObjectCreate("FHR1", OBJ_TREND,0, FHPeriod_Price[0][0],FHR1);
ObjectSet("FHR1",10,false);
ObjectSet("FHR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHR1",OBJPROP_WIDTH,1);
ObjectSet("FHR1",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHR1",3,FHR1);
ObjectSetText("FHR1","4 Hourly R1: " + DoubleToStr(FHR1,4));
ObjectCreate("FHS1", OBJ_TREND,0, FHPeriod_Price[0][0],FHS1);
ObjectSet("FHS1",10,false);
ObjectSet("FHS1", OBJPROP_COLOR, SupportColour);
ObjectSet("FHS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHS1",OBJPROP_WIDTH,1);
ObjectSet("FHS1",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHS1",3,FHS1);
ObjectSetText("FHS1","4 Hourly S1: " + DoubleToStr(FHS1,4));
ObjectCreate("FHR2", OBJ_TREND,0, FHPeriod_Price[0][0],FHR2);
ObjectSet("FHR2",10,false);
ObjectSet("FHR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHR2",OBJPROP_WIDTH,2);
ObjectSet("FHR2",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHR2",3,FHR2);
ObjectSetText("FHR2","4 Hourly R2: " + DoubleToStr(FHR2,4));
ObjectCreate("FHR3", OBJ_TREND,0, FHPeriod_Price[0][0],FHR3);
ObjectSet("FHR3",10,false);
ObjectSet("FHR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHR3",OBJPROP_WIDTH,2);
ObjectSet("FHR3",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHR3",3,FHR3);
ObjectSetText("FHR3","4 Hourly R3: " + DoubleToStr(FHR3,4));
ObjectCreate("FHS2", OBJ_TREND,0, FHPeriod_Price[0][0],FHS2);
ObjectSet("FHS2",10,false);
ObjectSet("FHS2", OBJPROP_COLOR, SupportColour);
ObjectSet("FHS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHS2",OBJPROP_WIDTH,2);
ObjectSet("FHS2",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHS2",3,FHS2);
ObjectSetText("FHS2","4 Hourly S2: " + DoubleToStr(FHS2,4));
ObjectCreate("FHS3", OBJ_TREND,0, FHPeriod_Price[0][0],FHS3);
ObjectSet("FHS3",10,false);
ObjectSet("FHS3", OBJPROP_COLOR, SupportColour);
ObjectSet("FHS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHS3",OBJPROP_WIDTH,2);
ObjectSet("FHS3",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHS3",3,FHS3);
ObjectSetText("FHS3","4 Hourly S3: " + DoubleToStr(FHS3,4));
ObjectCreate("FHM4", OBJ_TREND,0, FHPeriod_Price[0][0],FHM4);
ObjectSet("FHM4",10,false);
ObjectSet("FHM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHM4",OBJPROP_WIDTH,1);
ObjectSet("FHM4",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM4",3,FHM4);
ObjectSetText("FHM4","4 Hourly M4: " + DoubleToStr(FHM4,4));
ObjectCreate("FHM1", OBJ_TREND,0, FHPeriod_Price[0][0],FHM1);
ObjectSet("FHM1",10,false);
ObjectSet("FHM1", OBJPROP_COLOR, SupportColour);
ObjectSet("FHM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHM1",OBJPROP_WIDTH,1);
ObjectSet("FHM1",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM1",3,FHM1);
ObjectSetText("FHM1","4 Hourly M1: " + DoubleToStr(FHM1,4));
if(incFH_M2_M3)
{
ObjectCreate("FHM2", OBJ_TREND,0, FHPeriod_Price[0][0],FHM2);
ObjectSet("FHM2",10,false);
ObjectSet("FHM2", OBJPROP_COLOR, SupportColour);
ObjectSet("FHM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("FHM2",OBJPROP_WIDTH,1);
ObjectSet("FHM2",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM2",3,FHM2);
ObjectSetText("FHM2","4 Hourly M2: " + DoubleToStr(FHM2,4));
ObjectCreate("FHM3", OBJ_TREND,0, FHPeriod_Price[0][0],FHM3);
ObjectSet("FHM3",10,false);
ObjectSet("FHM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("FHM3",OBJPROP_WIDTH,1);
ObjectSet("FHM3",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM3",3,FHM1);
ObjectSetText("FHM3","4 Hourly M3: " + DoubleToStr(FHM3,4));
}
}
// Daily
if(Daily)
{
//ArrayInitialize(DPeriod_Price,0);
ArrayCopyRates(DPeriod_Price,(Symbol()), 1440);
DPreviousHigh = DPeriod_Price[1][3];
DPreviousLow = DPeriod_Price[1][2];
DPreviousClose = DPeriod_Price[1][4];
DPivot = ((DPreviousHigh + DPreviousLow + DPreviousClose)/3);
DR1 = (2*DPivot)-DPreviousLow;
DS1 = (2*DPivot)-DPreviousHigh;
DR2 = DPivot+(DR1-DS1);
DS2 = DPivot-(DR1-DS1);
DM1 = (DS2+DS1)/2;
DM4 = (DR1+DR2)/2;
DM2 = (DS1+DPivot)/2;
DM3 = (DPivot+DR1)/2;
DS3 = (DPreviousLow - (2*(DPreviousHigh-DPivot)));
DR3 = (DPreviousHigh + (2*(DPivot-DPreviousLow)));
AllLevels[0] = DR1;
AllLevels[1] = DS1;
AllLevels[2] = DR2;
AllLevels[3] = DS2;
AllLevels[4] = DM1;
AllLevels[5] = DM4;
AllLevels[6] = DM2;
AllLevels[7] = DM3;
AllLevels[8] = DS3;
AllLevels[9] = DR3;
AllLevels[10] = DPivot;
ObjectCreate("DPP", OBJ_TREND,0, DPeriod_Price[0][0],DPivot);
ObjectSet("DPP",10,false);
ObjectSet("DPP", OBJPROP_COLOR, PPColour);
ObjectSet("DPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DPP",OBJPROP_WIDTH,3);
ObjectSet("DPP",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DPP",3,DPivot);
ObjectSetText("DPP","Daily PP: " + DoubleToStr(DPivot,4));
ObjectCreate("DR1", OBJ_TREND,0, DPeriod_Price[0][0],DR1);
ObjectSet("DR1",10,false);
ObjectSet("DR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DR1",OBJPROP_WIDTH,1);
ObjectSet("DR1",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DR1",3,DR1);
ObjectSetText("DR1","Daily R1: " + DoubleToStr(DR1,4));
ObjectCreate("DS1", OBJ_TREND,0, DPeriod_Price[0][0],DS1);
ObjectSet("DS1",10,false);
ObjectSet("DS1", OBJPROP_COLOR, SupportColour);
ObjectSet("DS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DS1",OBJPROP_WIDTH,1);
ObjectSet("DS1",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DS1",3,DS1);
ObjectSetText("DS1","Daily S1: " + DoubleToStr(DS1,4));
ObjectCreate("DR2", OBJ_TREND,0, DPeriod_Price[0][0],DR2);
ObjectSet("DR2",10,false);
ObjectSet("DR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DR2",OBJPROP_WIDTH,2);
ObjectSet("DR2",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DR2",3,DR2);
ObjectSetText("DR2","Daily R2: " + DoubleToStr(DR2,4));
ObjectCreate("DR3", OBJ_TREND,0, DPeriod_Price[0][0],DR3);
ObjectSet("DR3",10,false);
ObjectSet("DR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DR3",OBJPROP_WIDTH,2);
ObjectSet("DR3",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DR3",3,DR3);
ObjectSetText("DR3","Daily R3: " + DoubleToStr(DR3,4));
ObjectCreate("DS2", OBJ_TREND,0, DPeriod_Price[0][0],DS2);
ObjectSet("DS2",10,false);
ObjectSet("DS2", OBJPROP_COLOR, SupportColour);
ObjectSet("DS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DS2",OBJPROP_WIDTH,2);
ObjectSet("DS2",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DS2",3,DS2);
ObjectSetText("DS2","Daily S2: " + DoubleToStr(DS2,4));
ObjectCreate("DS3", OBJ_TREND,0, DPeriod_Price[0][0],DS3);
ObjectSet("DS3",10,false);
ObjectSet("DS3", OBJPROP_COLOR, SupportColour);
ObjectSet("DS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DS3",OBJPROP_WIDTH,2);
ObjectSet("DS3",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DS3",3,DS3);
ObjectSetText("DS3","Daily S3: " + DoubleToStr(DS3,4));
ObjectCreate("DM4", OBJ_TREND,0, DPeriod_Price[0][0],DM4);
ObjectSet("DM4",10,false);
ObjectSet("DM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DM4",OBJPROP_WIDTH,2);
ObjectSet("DM4",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM4",3,DM4);
ObjectSetText("DM4","Daily M4: " + DoubleToStr(DM4,4));
ObjectCreate("DM1", OBJ_TREND,0, DPeriod_Price[0][0],DM1);
ObjectSet("DM1",10,false);
ObjectSet("DM1", OBJPROP_COLOR, SupportColour);
ObjectSet("DM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DM1",OBJPROP_WIDTH,2);
ObjectSet("DM1",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM1",3,DM1);
ObjectSetText("DM1","Daily M1: " + DoubleToStr(DM1,4));
if(incD_M2_M3)
{
ObjectCreate("DM2", OBJ_TREND,0, DPeriod_Price[0][0],DM2);
ObjectSet("DM2",10,false);
ObjectSet("DM2", OBJPROP_COLOR, SupportColour);
ObjectSet("DM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("DM2",OBJPROP_WIDTH,1);
ObjectSet("DM2",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM2",3,DM2);
ObjectSetText("DM2","Daily M2: " + DoubleToStr(DM2,4));
ObjectCreate("DM3", OBJ_TREND,0, DPeriod_Price[0][0],DM3);
ObjectSet("DM3",10,false);
ObjectSet("DM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("DM3",OBJPROP_WIDTH,1);
ObjectSet("DM3",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM3",3,DM3);
ObjectSetText("DM3","Daily M3: " + DoubleToStr(DM3,4));
}
}
// Weekly
if(Weekly)
{
//ArrayInitialize(WPeriod_Price,0);
ArrayCopyRates(WPeriod_Price,(Symbol()), 10080);
WPreviousHigh = WPeriod_Price[1][3];
WPreviousLow = WPeriod_Price[1][2];
WPreviousClose = WPeriod_Price[1][4];
WPivot = ((WPreviousHigh + WPreviousLow + WPreviousClose)/3);
WR1 = (2*WPivot)-WPreviousLow;
WS1 = (2*WPivot)-WPreviousHigh;
WR2 = WPivot+(WR1-WS1);
WS2 = WPivot-(WR1-WS1);
WM1 = (WS2+WS1)/2;
WM4 = (WR1+WR2)/2;
WM2 = (WS1+WPivot)/2;
WM3 = (WPivot+WR1)/2;
WS3 = (WPreviousLow - (2*(WPreviousHigh-WPivot)));
WR3 = (WPreviousHigh + (2*(WPivot-WPreviousLow)));
AllLevels[11] = WR1;
AllLevels[12] = WS1;
AllLevels[13] = WR2;
AllLevels[14] = WS2;
AllLevels[15] = WM1;
AllLevels[16] = WM4;
AllLevels[17] = WM2;
AllLevels[18] = WM3;
AllLevels[19] = WS3;
AllLevels[20] = WR3;
AllLevels[21] = WPivot;
ObjectCreate("WPP", OBJ_TREND,0, WPeriod_Price[0][0],WPivot);
ObjectSet("WPP",10,false);
ObjectSet("WPP", OBJPROP_COLOR, PPColour);
ObjectSet("WPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WPP",OBJPROP_WIDTH,3);
ObjectSet("WPP",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WPP",3,WPivot);
ObjectSetText("WPP","Weekly PP: " + DoubleToStr(WPivot,4));
ObjectCreate("WR1", OBJ_TREND,0, WPeriod_Price[0][0],WR1);
ObjectSet("WR1",10,false);
ObjectSet("WR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WR1",OBJPROP_WIDTH,1);
ObjectSet("WR1",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WR1",3,WR1);
ObjectSetText("WR1","Weekly R1: " + DoubleToStr(WR1,4));
ObjectCreate("WS1", OBJ_TREND,0, WPeriod_Price[0][0],WS1);
ObjectSet("WS1",10,false);
ObjectSet("WS1", OBJPROP_COLOR, SupportColour);
ObjectSet("WS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WS1",OBJPROP_WIDTH,1);
ObjectSet("WS1",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WS1",3,WS1);
ObjectSetText("WS1","Weekly S1: " + DoubleToStr(WS1,4));
ObjectCreate("WR2", OBJ_TREND,0, WPeriod_Price[0][0],WR2);
ObjectSet("WR2",10,false);
ObjectSet("WR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WR2",OBJPROP_WIDTH,2);
ObjectSet("WR2",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WR2",3,WR2);
ObjectSetText("WR2","Weekly R2: " + DoubleToStr(WR2,4));
ObjectCreate("WR3", OBJ_TREND,0, WPeriod_Price[0][0],WR3);
ObjectSet("WR3",10,false);
ObjectSet("WR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WR3",OBJPROP_WIDTH,2);
ObjectSet("WR3",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WR3",3,WR3);
ObjectSetText("WR3","Weekly R3: " + DoubleToStr(WR3,4));
ObjectCreate("WS2", OBJ_TREND,0, WPeriod_Price[0][0],WS2);
ObjectSet("WS2",10,false);
ObjectSet("WS2", OBJPROP_COLOR, SupportColour);
ObjectSet("WS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WS2",OBJPROP_WIDTH,2);
ObjectSet("WS2",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WS2",3,WS2);
ObjectSetText("WS2","Weekly S2: " + DoubleToStr(WS2,4));
ObjectCreate("WS3", OBJ_TREND,0, WPeriod_Price[0][0],WS3);
ObjectSet("WS3",10,false);
ObjectSet("WS3", OBJPROP_COLOR, SupportColour);
ObjectSet("WS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WS3",OBJPROP_WIDTH,2);
ObjectSet("WS3",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WS3",3,WS3);
ObjectSetText("WS3","Weekly S3: " + DoubleToStr(WS3,4));
ObjectCreate("WM4", OBJ_TREND,0, WPeriod_Price[0][0],WM4);
ObjectSet("WM4",10,false);
ObjectSet("WM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WM4",OBJPROP_WIDTH,2);
ObjectSet("WM4",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM4",3,WM4);
ObjectSetText("WM4","Weekly M4: " + DoubleToStr(WM4,4));
ObjectCreate("WM1", OBJ_TREND,0, WPeriod_Price[0][0],WM1);
ObjectSet("WM1",10,false);
ObjectSet("WM1", OBJPROP_COLOR, SupportColour);
ObjectSet("WM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WM1",OBJPROP_WIDTH,2);
ObjectSet("WM1",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM1",3,WM1);
ObjectSetText("WM1","Weekly M1: " + DoubleToStr(WM1,4));
if(incW_M2_M3)
{
ObjectCreate("WM2", OBJ_TREND,0, WPeriod_Price[0][0],WM2);
ObjectSet("WM2",10,false);
ObjectSet("WM2", OBJPROP_COLOR, SupportColour);
ObjectSet("WM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("WM2",OBJPROP_WIDTH,1);
ObjectSet("WM2",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM2",3,WM2);
ObjectSetText("WM2","Weekly M2: " + DoubleToStr(WM2,4));
ObjectCreate("WM3", OBJ_TREND,0, WPeriod_Price[0][0],WM3);
ObjectSet("WM3",10,false);
ObjectSet("WM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("WM3",OBJPROP_WIDTH,1);
ObjectSet("WM3",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM3",3,WM3);
ObjectSetText("WM3","Weekly M3: " + DoubleToStr(WM3,4));
}
}
// Monthly
if(Monthly)
{
//ArrayInitialize(MPeriod_Price,0);
ArrayCopyRates(MPeriod_Price,(Symbol()), 43200);
MPreviousHigh = MPeriod_Price[1][3];
MPreviousLow = MPeriod_Price[1][2];
MPreviousClose = MPeriod_Price[1][4];
MPivot = ((MPreviousHigh + MPreviousLow + MPreviousClose)/3);
MR1 = (2*MPivot)-MPreviousLow;
MS1 = (2*MPivot)-MPreviousHigh;
MR2 = MPivot+(MR1-MS1);
MS2 = MPivot-(MR1-MS1);
MM1 = (MS2+MS1)/2;
MM4 = (MR1+MR2)/2;
MM2 = (MS1+MPivot)/2;
MM3 = (MPivot+MR1)/2;
MS3 = (MPreviousLow - (2*(MPreviousHigh-MPivot)));
MR3 = (MPreviousHigh + (2*(MPivot-MPreviousLow)));
AllLevels[22] = MR1;
AllLevels[23] = MS1;
AllLevels[24] = MR2;
AllLevels[25] = MS2;
AllLevels[26] = MM1;
AllLevels[27] = MM4;
AllLevels[28] = MM2;
AllLevels[29] = MM3;
AllLevels[30] = MS3;
AllLevels[31] = MR3;
AllLevels[32] = MPivot;
ObjectCreate("MPP", OBJ_TREND,0, MPeriod_Price[0][0],MPivot);
ObjectSet("MPP",10,false);
ObjectSet("MPP", OBJPROP_COLOR, PPColour);
ObjectSet("MPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MPP",OBJPROP_WIDTH,3);
ObjectSet("MPP",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MPP",3,MPivot);
ObjectSetText("MPP","Monthly PP: " + DoubleToStr(MPivot,4));
ObjectCreate("MR1", OBJ_TREND,0, MPeriod_Price[0][0],MR1);
ObjectSet("MR1",10,false);
ObjectSet("MR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MR1",OBJPROP_WIDTH,1);
ObjectSet("MR1",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MR1",3,MR1);
ObjectSetText("MR1","Monthly R1: " + DoubleToStr(MR1,4));
ObjectCreate("MS1", OBJ_TREND,0, MPeriod_Price[0][0],MS1);
ObjectSet("MS1",10,false);
ObjectSet("MS1", OBJPROP_COLOR, SupportColour);
ObjectSet("MS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MS1",OBJPROP_WIDTH,1);
ObjectSet("MS1",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MS1",3,MS1);
ObjectSetText("MS1","Monthly S1: " + DoubleToStr(MS1,4));
ObjectCreate("MR2", OBJ_TREND,0, MPeriod_Price[0][0],MR2);
ObjectSet("MR2",10,false);
ObjectSet("MR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MR2",OBJPROP_WIDTH,2);
ObjectSet("MR2",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MR2",3,MR2);
ObjectSetText("MR2","Monthly R2: " + DoubleToStr(MR2,4));
ObjectCreate("MR3", OBJ_TREND,0, MPeriod_Price[0][0],MR3);
ObjectSet("MR3",10,false);
ObjectSet("MR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MR3",OBJPROP_WIDTH,2);
ObjectSet("MR3",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MR3",3,MR3);
ObjectSetText("MR3","Monthly R3: " + DoubleToStr(MR3,4));
ObjectCreate("MS2", OBJ_TREND,0, MPeriod_Price[0][0],MS2);
ObjectSet("MS2",10,false);
ObjectSet("MS2", OBJPROP_COLOR, SupportColour);
ObjectSet("MS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MS2",OBJPROP_WIDTH,2);
ObjectSet("MS2",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MS2",3,MS2);
ObjectSetText("MS2","Monthly S2: " + DoubleToStr(MS2,4));
ObjectCreate("MS3", OBJ_TREND,0, MPeriod_Price[0][0],MS3);
ObjectSet("MS3",10,false);
ObjectSet("MS3", OBJPROP_COLOR, SupportColour);
ObjectSet("MS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MS3",OBJPROP_WIDTH,2);
ObjectSet("MS3",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MS3",3,MS3);
ObjectSetText("MS3","Monthly S3: " + DoubleToStr(MS3,4));
ObjectCreate("MM4", OBJ_TREND,0, MPeriod_Price[0][0],MM4);
ObjectSet("MM4",10,false);
ObjectSet("MM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MM4",OBJPROP_WIDTH,2);
ObjectSet("MM4",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM4",3,MM4);
ObjectSetText("MM4","Monthly M4: " + DoubleToStr(MM4,4));
ObjectCreate("MM1", OBJ_TREND,0, MPeriod_Price[0][0],MM1);
ObjectSet("MM1",10,false);
ObjectSet("MM1", OBJPROP_COLOR, SupportColour);
ObjectSet("MM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MM1",OBJPROP_WIDTH,2);
ObjectSet("MM1",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM1",3,MM1);
ObjectSetText("MM1","Monthly M1: " + DoubleToStr(MM1,4));
if(incM_M2_M3)
{
ObjectCreate("MM2", OBJ_TREND,0, MPeriod_Price[0][0],MM2);
ObjectSet("MM2",10,false);
ObjectSet("MM2", OBJPROP_COLOR, SupportColour);
ObjectSet("MM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("MM2",OBJPROP_WIDTH,1);
ObjectSet("MM2",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM2",3,MM2);
ObjectSetText("MM2","Monthly M2: " + DoubleToStr(MM2,4));
ObjectCreate("MM3", OBJ_TREND,0, MPeriod_Price[0][0],MM3);
ObjectSet("MM3",10,false);
ObjectSet("MM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("MM3",OBJPROP_WIDTH,1);
ObjectSet("MM3",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM3",3,MM3);
ObjectSetText("MM3","Monthly M3: " + DoubleToStr(MM3,4));
}
}
// Yearly
if(Yearly)
{
ArrayCopyRates(YPeriod_Price,(Symbol()), 43200);
int year = Year() - (1);
double close,high,low=10000;
for (int x=0;x<30;x++)
{
if(TimeYear(YPeriod_Price[x][0]) == year)
{
if(YPeriod_Price[x][3] > high)
high = YPeriod_Price[x][3];
if(YPeriod_Price[x][2] < low)
low = YPeriod_Price[x][2];
if (TimeMonth(YPeriod_Price[x][0]) == 12)
close = YPeriod_Price[x][4];
}
}
YPreviousHigh = high;
YPreviousLow = low;
YPreviousClose = close;
YPivot = ((YPreviousHigh + YPreviousLow + YPreviousClose)/3);
YR1 = (2*YPivot)-YPreviousLow;
YS1 = (2*YPivot)-YPreviousHigh;
YR2 = YPivot+(YR1-YS1);
YS2 = YPivot-(YR1-YS1);
YM1 = (YS2+YS1)/2;
YM4 = (YR1+YR2)/2;
YM2 = (YS1+YPivot)/2;
YM3 = (YPivot+YR1)/2;
YS3 = (YPreviousLow - (2*(YPreviousHigh-YPivot)));
YR3 = (YPreviousHigh + (2*(YPivot-YPreviousLow)));
AllLevels[33] = YR1;
AllLevels[34] = YS1;
AllLevels[35] = YR2;
AllLevels[36] = YS2;
AllLevels[37] = YM1;
AllLevels[38] = YM4;
AllLevels[39] = YM2;
AllLevels[40] = YM3;
AllLevels[41] = YS3;
AllLevels[42] = YR3;
AllLevels[43] = YPivot;
ObjectCreate("YPP", OBJ_TREND,0, YPeriod_Price[0][0],YPivot);
ObjectSet("YPP",10,false);
ObjectSet("YPP", OBJPROP_COLOR, PPColour);
ObjectSet("YPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YPP",OBJPROP_WIDTH,3);
ObjectSet("YPP",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YPP",3,YPivot);
ObjectSetText("YPP","Yearly PP: " + DoubleToStr(YPivot,4));
ObjectCreate("YR1", OBJ_TREND,0, YPeriod_Price[0][0],YR1);
ObjectSet("YR1",10,false);
ObjectSet("YR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YR1",OBJPROP_WIDTH,1);
ObjectSet("YR1",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YR1",3,YR1);
ObjectSetText("YR1","Yearly R1: " + DoubleToStr(YR1,4));
ObjectCreate("YS1", OBJ_TREND,0, YPeriod_Price[0][0],YS1);
ObjectSet("YS1",10,false);
ObjectSet("YS1", OBJPROP_COLOR, SupportColour);
ObjectSet("YS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YS1",OBJPROP_WIDTH,1);
ObjectSet("YS1",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YS1",3,YS1);
ObjectSetText("YS1","Yearly S1: " + DoubleToStr(YS1,4));
ObjectCreate("YR2", OBJ_TREND,0, YPeriod_Price[0][0],YR2);
ObjectSet("YR2",10,false);
ObjectSet("YR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YR2",OBJPROP_WIDTH,2);
ObjectSet("YR2",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YR2",3,YR2);
ObjectSetText("YR2","Yearly R2: " + DoubleToStr(YR2,4));
ObjectCreate("YR3", OBJ_TREND,0, YPeriod_Price[0][0],YR3);
ObjectSet("YR3",10,false);
ObjectSet("YR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YR3",OBJPROP_WIDTH,2);
ObjectSet("YR3",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YR3",3,YR3);
ObjectSetText("YR3","Yearly R3: " + DoubleToStr(YR3,4));
ObjectCreate("YS2", OBJ_TREND,0, YPeriod_Price[0][0],YS2);
ObjectSet("YS2",10,false);
ObjectSet("YS2", OBJPROP_COLOR, SupportColour);
ObjectSet("YS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YS2",OBJPROP_WIDTH,2);
ObjectSet("YS2",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YS2",3,YS2);
ObjectSetText("YS2","Yearly S2: " + DoubleToStr(YS2,4));
ObjectCreate("YS3", OBJ_TREND,0, YPeriod_Price[0][0],YS3);
ObjectSet("YS3",10,false);
ObjectSet("YS3", OBJPROP_COLOR, SupportColour);
ObjectSet("YS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YS3",OBJPROP_WIDTH,2);
ObjectSet("YS3",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YS3",3,YS3);
ObjectSetText("YS3","Yearly S3: " + DoubleToStr(YS3,4));
ObjectCreate("YM4", OBJ_TREND,0, YPeriod_Price[0][0],YM4);
ObjectSet("YM4",10,false);
ObjectSet("YM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YM4",OBJPROP_WIDTH,2);
ObjectSet("YM4",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM4",3,YM4);
ObjectSetText("YM4","Yearly M4: " + DoubleToStr(YM4,4));
ObjectCreate("YM1", OBJ_TREND,0, YPeriod_Price[0][0],YM1);
ObjectSet("YM1",10,false);
ObjectSet("YM1", OBJPROP_COLOR, SupportColour);
ObjectSet("YM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YM1",OBJPROP_WIDTH,2);
ObjectSet("YM1",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM1",3,YM1);
ObjectSetText("YM1","Yearly M1: " + DoubleToStr(YM1,4));
if(incY_M2_M3)
{
ObjectCreate("YM2", OBJ_TREND,0, YPeriod_Price[0][0],YM2);
ObjectSet("YM2",10,false);
ObjectSet("YM2", OBJPROP_COLOR, SupportColour);
ObjectSet("YM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("YM2",OBJPROP_WIDTH,1);
ObjectSet("YM2",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM2",3,YM2);
ObjectSetText("YM2","Yearly M2: " + DoubleToStr(YM2,4));
ObjectCreate("YM3", OBJ_TREND,0, YPeriod_Price[0][0],YM3);
ObjectSet("YM3",10,false);
ObjectSet("YM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("YM3",OBJPROP_WIDTH,1);
ObjectSet("YM3",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM3",3,YM3);
ObjectSetText("YM3","Yearly M3: " + DoubleToStr(YM3,4));
}
}
if(HighlightCloseLevels)
HighlightCloseLevels(AllLevels);
{
}
WindowRedraw();
return(0);
}
void HighlightCloseLevels(double levels[])
{
int year = Year() - 1;
ArraySort(levels);
for(int i = 0;i < 43; i++)
{
if(MathAbs(levels[i] - levels[i+1]) / (Point * 10) <= CloseLevelRange)
{
ObjectCreate("L" + i,OBJ_RECTANGLE,0,StrToTime((year + 1) + ".01.01 00:00"),levels[i]);
ObjectSet("L" + i,2,StrToTime((year + 1) + ".12.31 23:59"));
ObjectSet("L" + i,3,levels[i+1]);
ObjectSet("L" + i,6,HighlightColour);
}
}
}
Firstly, I have no experience with code. I just had a few questions as where in this code can I change the font size, and how can I move the label location closer to the y-axis price. Because I have little to offer in return, I attached this indicator as a token of gratitude.
Thank you in advance.
//+------------------------------------------------------------------+
//| Day Range Highlight.mq4 |
//| Copyright 2009, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2009, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
extern bool FourHourly = false;
extern bool incFH_M2_M3 = false;
extern bool Daily = true;
extern bool incD_M2_M3 = false;
extern bool Weekly = true;
extern bool incW_M2_M3 = true;
extern bool Monthly = true;
extern bool incM_M2_M3 = true;
extern bool Yearly = true;
extern bool incY_M2_M3 = true;
extern color PPColour = Black;
extern color SupportColour = Green;
extern color ResistanceColour = Red;
extern bool HighlightCloseLevels = false;
extern int CloseLevelRange = 10;
extern color HighlightColour = OrangeRed;
//---- input parameters
double FHPreviousHigh;
double FHPreviousLow;
double FHPreviousClose;
double DPreviousHigh;
double DPreviousLow;
double DPreviousClose;
double WPreviousHigh;
double WPreviousLow;
double WPreviousClose;
double MPreviousHigh;
double MPreviousLow;
double MPreviousClose;
double YPreviousHigh;
double YPreviousLow;
double YPreviousClose;
double FHPeriod_Price[][6];
double DPeriod_Price[][6];
double WPeriod_Price[][6];
double MPeriod_Price[][6];
double YPeriod_Price[][6];
double FHPivot,FHS1,FHS2,FHR1,FHR2,FHM4,FHM1,FHM2,FHM3,FHS3,FHR3;
double DPivot,DS1,DS2,DR1,DR2,DM4,DM1,DM2,DM3,DS3,DR3;
double WPivot,WS1,WS2,WR1,WR2,WM4,WM1,WM2,WM3,WS3,WR3;
double MPivot,MS1,MS2,MR1,MR2,MM4,MM1,MM2,MM3,MS3,MR3;
double YPivot,YS1,YS2,YR1,YR2,YM4,YM1,YM2,YM3,YS3,YR3;
double AllLevels[44]; //Not including 4H Pivots
double Poin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
Poin = Point;
//Checking for unconvetional Point digits number
if ((Point == 0.00001) || (Point == 0.001))
{
Poin *= 10;
}
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
for(int i=0;i<44;i++)
{
ObjectDelete("L" + i);
}
ObjectDelete("FHR2");
ObjectDelete("FHR1");
ObjectDelete("FHPP");
ObjectDelete("FHS1");
ObjectDelete("FHS2");
ObjectDelete("FHM4");
ObjectDelete("FHM1");
ObjectDelete("FHM2");
ObjectDelete("FHM3");
ObjectDelete("FHS3");
ObjectDelete("FHR3");
ObjectDelete("DR2");
ObjectDelete("DR1");
ObjectDelete("DPP");
ObjectDelete("DS1");
ObjectDelete("DS2");
ObjectDelete("DM4");
ObjectDelete("DM1");
ObjectDelete("DM2");
ObjectDelete("DM3");
ObjectDelete("DS3");
ObjectDelete("DR3");
ObjectDelete("WR2");
ObjectDelete("WR1");
ObjectDelete("WPP");
ObjectDelete("WS1");
ObjectDelete("WS2");
ObjectDelete("WM4");
ObjectDelete("WM1");
ObjectDelete("WM2");
ObjectDelete("WM3");
ObjectDelete("WS3");
ObjectDelete("WR3");
ObjectDelete("MR2");
ObjectDelete("MR1");
ObjectDelete("MPP");
ObjectDelete("MS1");
ObjectDelete("MS2");
ObjectDelete("MM4");
ObjectDelete("MM1");
ObjectDelete("MM2");
ObjectDelete("MM3");
ObjectDelete("MS3");
ObjectDelete("MR3");
ObjectDelete("YR2");
ObjectDelete("YR1");
ObjectDelete("YPP");
ObjectDelete("YS1");
ObjectDelete("YS2");
ObjectDelete("YM4");
ObjectDelete("YM1");
ObjectDelete("YM2");
ObjectDelete("YM3");
ObjectDelete("YS3");
ObjectDelete("YR3");
ObjectDelete("FHPivotLabel");
ObjectDelete("FHR1_Label");
ObjectDelete("FHR2_Label");
ObjectDelete("FHS1_Label");
ObjectDelete("FHS2_Label");
ObjectDelete("FHM4_Label");
ObjectDelete("FHM1_Label");
ObjectDelete("FHM2_Label");
ObjectDelete("FHM3_Label");
ObjectDelete("FHS3_Label");
ObjectDelete("FHR3_Label");
ObjectDelete("DPivotLabel");
ObjectDelete("DR1_Label");
ObjectDelete("DR2_Label");
ObjectDelete("DS1_Label");
ObjectDelete("DS2_Label");
ObjectDelete("DM4_Label");
ObjectDelete("DM1_Label");
ObjectDelete("DM2_Label");
ObjectDelete("DM3_Label");
ObjectDelete("DS3_Label");
ObjectDelete("DR3_Label");
ObjectDelete("WPivotLabel");
ObjectDelete("WR1_Label");
ObjectDelete("WR2_Label");
ObjectDelete("WS1_Label");
ObjectDelete("WS2_Label");
ObjectDelete("WM4_Label");
ObjectDelete("WM1_Label");
ObjectDelete("WM2_Label");
ObjectDelete("WM3_Label");
ObjectDelete("WS3_Label");
ObjectDelete("WR3_Label");
ObjectDelete("MPivotLabel");
ObjectDelete("MR1_Label");
ObjectDelete("MR2_Label");
ObjectDelete("MS1_Label");
ObjectDelete("MS2_Label");
ObjectDelete("MM4_Label");
ObjectDelete("MM1_Label");
ObjectDelete("MM2_Label");
ObjectDelete("MM3_Label");
ObjectDelete("MS3_Label");
ObjectDelete("MR3_Label");
ObjectDelete("YPivotLabel");
ObjectDelete("YR1_Label");
ObjectDelete("YR2_Label");
ObjectDelete("YS1_Label");
ObjectDelete("YS2_Label");
ObjectDelete("YM4_Label");
ObjectDelete("YM1_Label");
ObjectDelete("YM2_Label");
ObjectDelete("YM3_Label");
ObjectDelete("YS3_Label");
ObjectDelete("YR3_Label");
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
deinit();
int counter=0;
// 4 Hourly
if(FourHourly)
{
//ArrayInitialize(FHPeriod_Price,0);
ArrayCopyRates(FHPeriod_Price,(Symbol()), 240);
FHPreviousHigh = FHPeriod_Price[1][3];
FHPreviousLow = FHPeriod_Price[1][2];
FHPreviousClose = FHPeriod_Price[1][4];
FHPivot = ((FHPreviousHigh + FHPreviousLow + FHPreviousClose)/3);
FHR1 = (2*FHPivot)-FHPreviousLow;
FHS1 = (2*FHPivot)-FHPreviousHigh;
FHR2 = FHPivot+(FHR1-FHS1);
FHS2 = FHPivot-(FHR1-FHS1);
FHM1 = (FHS2+FHS1)/2;
FHM4 = (FHR1+FHR2)/2;
FHM2 = (FHS1+FHPivot)/2;
FHM3 = (FHPivot+FHR1)/2;
FHS3 = (FHPreviousLow - (2*(FHPreviousHigh-FHPivot)));
FHR3 = (FHPreviousHigh + (2*(FHPivot-FHPreviousLow)));
ObjectCreate("FHPP", OBJ_TREND,0, FHPeriod_Price[0][0],FHPivot);
ObjectSet("FHPP",10,false);
ObjectSet("FHPP", OBJPROP_COLOR, PPColour);
ObjectSet("FHPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHPP",OBJPROP_WIDTH,3);
ObjectSet("FHPP",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHPP",3,FHPivot);
ObjectSetText("FHPP","4 Hourly PP: " + DoubleToStr(FHPivot,4));
ObjectCreate("FHR1", OBJ_TREND,0, FHPeriod_Price[0][0],FHR1);
ObjectSet("FHR1",10,false);
ObjectSet("FHR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHR1",OBJPROP_WIDTH,1);
ObjectSet("FHR1",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHR1",3,FHR1);
ObjectSetText("FHR1","4 Hourly R1: " + DoubleToStr(FHR1,4));
ObjectCreate("FHS1", OBJ_TREND,0, FHPeriod_Price[0][0],FHS1);
ObjectSet("FHS1",10,false);
ObjectSet("FHS1", OBJPROP_COLOR, SupportColour);
ObjectSet("FHS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHS1",OBJPROP_WIDTH,1);
ObjectSet("FHS1",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHS1",3,FHS1);
ObjectSetText("FHS1","4 Hourly S1: " + DoubleToStr(FHS1,4));
ObjectCreate("FHR2", OBJ_TREND,0, FHPeriod_Price[0][0],FHR2);
ObjectSet("FHR2",10,false);
ObjectSet("FHR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHR2",OBJPROP_WIDTH,2);
ObjectSet("FHR2",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHR2",3,FHR2);
ObjectSetText("FHR2","4 Hourly R2: " + DoubleToStr(FHR2,4));
ObjectCreate("FHR3", OBJ_TREND,0, FHPeriod_Price[0][0],FHR3);
ObjectSet("FHR3",10,false);
ObjectSet("FHR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHR3",OBJPROP_WIDTH,2);
ObjectSet("FHR3",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHR3",3,FHR3);
ObjectSetText("FHR3","4 Hourly R3: " + DoubleToStr(FHR3,4));
ObjectCreate("FHS2", OBJ_TREND,0, FHPeriod_Price[0][0],FHS2);
ObjectSet("FHS2",10,false);
ObjectSet("FHS2", OBJPROP_COLOR, SupportColour);
ObjectSet("FHS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHS2",OBJPROP_WIDTH,2);
ObjectSet("FHS2",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHS2",3,FHS2);
ObjectSetText("FHS2","4 Hourly S2: " + DoubleToStr(FHS2,4));
ObjectCreate("FHS3", OBJ_TREND,0, FHPeriod_Price[0][0],FHS3);
ObjectSet("FHS3",10,false);
ObjectSet("FHS3", OBJPROP_COLOR, SupportColour);
ObjectSet("FHS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHS3",OBJPROP_WIDTH,2);
ObjectSet("FHS3",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHS3",3,FHS3);
ObjectSetText("FHS3","4 Hourly S3: " + DoubleToStr(FHS3,4));
ObjectCreate("FHM4", OBJ_TREND,0, FHPeriod_Price[0][0],FHM4);
ObjectSet("FHM4",10,false);
ObjectSet("FHM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHM4",OBJPROP_WIDTH,1);
ObjectSet("FHM4",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM4",3,FHM4);
ObjectSetText("FHM4","4 Hourly M4: " + DoubleToStr(FHM4,4));
ObjectCreate("FHM1", OBJ_TREND,0, FHPeriod_Price[0][0],FHM1);
ObjectSet("FHM1",10,false);
ObjectSet("FHM1", OBJPROP_COLOR, SupportColour);
ObjectSet("FHM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("FHM1",OBJPROP_WIDTH,1);
ObjectSet("FHM1",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM1",3,FHM1);
ObjectSetText("FHM1","4 Hourly M1: " + DoubleToStr(FHM1,4));
if(incFH_M2_M3)
{
ObjectCreate("FHM2", OBJ_TREND,0, FHPeriod_Price[0][0],FHM2);
ObjectSet("FHM2",10,false);
ObjectSet("FHM2", OBJPROP_COLOR, SupportColour);
ObjectSet("FHM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("FHM2",OBJPROP_WIDTH,1);
ObjectSet("FHM2",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM2",3,FHM2);
ObjectSetText("FHM2","4 Hourly M2: " + DoubleToStr(FHM2,4));
ObjectCreate("FHM3", OBJ_TREND,0, FHPeriod_Price[0][0],FHM3);
ObjectSet("FHM3",10,false);
ObjectSet("FHM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("FHM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("FHM3",OBJPROP_WIDTH,1);
ObjectSet("FHM3",2,FHPeriod_Price[0][0] + 2629743);
ObjectSet("FHM3",3,FHM1);
ObjectSetText("FHM3","4 Hourly M3: " + DoubleToStr(FHM3,4));
}
}
// Daily
if(Daily)
{
//ArrayInitialize(DPeriod_Price,0);
ArrayCopyRates(DPeriod_Price,(Symbol()), 1440);
DPreviousHigh = DPeriod_Price[1][3];
DPreviousLow = DPeriod_Price[1][2];
DPreviousClose = DPeriod_Price[1][4];
DPivot = ((DPreviousHigh + DPreviousLow + DPreviousClose)/3);
DR1 = (2*DPivot)-DPreviousLow;
DS1 = (2*DPivot)-DPreviousHigh;
DR2 = DPivot+(DR1-DS1);
DS2 = DPivot-(DR1-DS1);
DM1 = (DS2+DS1)/2;
DM4 = (DR1+DR2)/2;
DM2 = (DS1+DPivot)/2;
DM3 = (DPivot+DR1)/2;
DS3 = (DPreviousLow - (2*(DPreviousHigh-DPivot)));
DR3 = (DPreviousHigh + (2*(DPivot-DPreviousLow)));
AllLevels[0] = DR1;
AllLevels[1] = DS1;
AllLevels[2] = DR2;
AllLevels[3] = DS2;
AllLevels[4] = DM1;
AllLevels[5] = DM4;
AllLevels[6] = DM2;
AllLevels[7] = DM3;
AllLevels[8] = DS3;
AllLevels[9] = DR3;
AllLevels[10] = DPivot;
ObjectCreate("DPP", OBJ_TREND,0, DPeriod_Price[0][0],DPivot);
ObjectSet("DPP",10,false);
ObjectSet("DPP", OBJPROP_COLOR, PPColour);
ObjectSet("DPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DPP",OBJPROP_WIDTH,3);
ObjectSet("DPP",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DPP",3,DPivot);
ObjectSetText("DPP","Daily PP: " + DoubleToStr(DPivot,4));
ObjectCreate("DR1", OBJ_TREND,0, DPeriod_Price[0][0],DR1);
ObjectSet("DR1",10,false);
ObjectSet("DR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DR1",OBJPROP_WIDTH,1);
ObjectSet("DR1",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DR1",3,DR1);
ObjectSetText("DR1","Daily R1: " + DoubleToStr(DR1,4));
ObjectCreate("DS1", OBJ_TREND,0, DPeriod_Price[0][0],DS1);
ObjectSet("DS1",10,false);
ObjectSet("DS1", OBJPROP_COLOR, SupportColour);
ObjectSet("DS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DS1",OBJPROP_WIDTH,1);
ObjectSet("DS1",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DS1",3,DS1);
ObjectSetText("DS1","Daily S1: " + DoubleToStr(DS1,4));
ObjectCreate("DR2", OBJ_TREND,0, DPeriod_Price[0][0],DR2);
ObjectSet("DR2",10,false);
ObjectSet("DR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DR2",OBJPROP_WIDTH,2);
ObjectSet("DR2",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DR2",3,DR2);
ObjectSetText("DR2","Daily R2: " + DoubleToStr(DR2,4));
ObjectCreate("DR3", OBJ_TREND,0, DPeriod_Price[0][0],DR3);
ObjectSet("DR3",10,false);
ObjectSet("DR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DR3",OBJPROP_WIDTH,2);
ObjectSet("DR3",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DR3",3,DR3);
ObjectSetText("DR3","Daily R3: " + DoubleToStr(DR3,4));
ObjectCreate("DS2", OBJ_TREND,0, DPeriod_Price[0][0],DS2);
ObjectSet("DS2",10,false);
ObjectSet("DS2", OBJPROP_COLOR, SupportColour);
ObjectSet("DS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DS2",OBJPROP_WIDTH,2);
ObjectSet("DS2",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DS2",3,DS2);
ObjectSetText("DS2","Daily S2: " + DoubleToStr(DS2,4));
ObjectCreate("DS3", OBJ_TREND,0, DPeriod_Price[0][0],DS3);
ObjectSet("DS3",10,false);
ObjectSet("DS3", OBJPROP_COLOR, SupportColour);
ObjectSet("DS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DS3",OBJPROP_WIDTH,2);
ObjectSet("DS3",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DS3",3,DS3);
ObjectSetText("DS3","Daily S3: " + DoubleToStr(DS3,4));
ObjectCreate("DM4", OBJ_TREND,0, DPeriod_Price[0][0],DM4);
ObjectSet("DM4",10,false);
ObjectSet("DM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DM4",OBJPROP_WIDTH,2);
ObjectSet("DM4",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM4",3,DM4);
ObjectSetText("DM4","Daily M4: " + DoubleToStr(DM4,4));
ObjectCreate("DM1", OBJ_TREND,0, DPeriod_Price[0][0],DM1);
ObjectSet("DM1",10,false);
ObjectSet("DM1", OBJPROP_COLOR, SupportColour);
ObjectSet("DM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("DM1",OBJPROP_WIDTH,2);
ObjectSet("DM1",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM1",3,DM1);
ObjectSetText("DM1","Daily M1: " + DoubleToStr(DM1,4));
if(incD_M2_M3)
{
ObjectCreate("DM2", OBJ_TREND,0, DPeriod_Price[0][0],DM2);
ObjectSet("DM2",10,false);
ObjectSet("DM2", OBJPROP_COLOR, SupportColour);
ObjectSet("DM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("DM2",OBJPROP_WIDTH,1);
ObjectSet("DM2",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM2",3,DM2);
ObjectSetText("DM2","Daily M2: " + DoubleToStr(DM2,4));
ObjectCreate("DM3", OBJ_TREND,0, DPeriod_Price[0][0],DM3);
ObjectSet("DM3",10,false);
ObjectSet("DM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("DM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("DM3",OBJPROP_WIDTH,1);
ObjectSet("DM3",2,DPeriod_Price[0][0] + 2629743);
ObjectSet("DM3",3,DM3);
ObjectSetText("DM3","Daily M3: " + DoubleToStr(DM3,4));
}
}
// Weekly
if(Weekly)
{
//ArrayInitialize(WPeriod_Price,0);
ArrayCopyRates(WPeriod_Price,(Symbol()), 10080);
WPreviousHigh = WPeriod_Price[1][3];
WPreviousLow = WPeriod_Price[1][2];
WPreviousClose = WPeriod_Price[1][4];
WPivot = ((WPreviousHigh + WPreviousLow + WPreviousClose)/3);
WR1 = (2*WPivot)-WPreviousLow;
WS1 = (2*WPivot)-WPreviousHigh;
WR2 = WPivot+(WR1-WS1);
WS2 = WPivot-(WR1-WS1);
WM1 = (WS2+WS1)/2;
WM4 = (WR1+WR2)/2;
WM2 = (WS1+WPivot)/2;
WM3 = (WPivot+WR1)/2;
WS3 = (WPreviousLow - (2*(WPreviousHigh-WPivot)));
WR3 = (WPreviousHigh + (2*(WPivot-WPreviousLow)));
AllLevels[11] = WR1;
AllLevels[12] = WS1;
AllLevels[13] = WR2;
AllLevels[14] = WS2;
AllLevels[15] = WM1;
AllLevels[16] = WM4;
AllLevels[17] = WM2;
AllLevels[18] = WM3;
AllLevels[19] = WS3;
AllLevels[20] = WR3;
AllLevels[21] = WPivot;
ObjectCreate("WPP", OBJ_TREND,0, WPeriod_Price[0][0],WPivot);
ObjectSet("WPP",10,false);
ObjectSet("WPP", OBJPROP_COLOR, PPColour);
ObjectSet("WPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WPP",OBJPROP_WIDTH,3);
ObjectSet("WPP",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WPP",3,WPivot);
ObjectSetText("WPP","Weekly PP: " + DoubleToStr(WPivot,4));
ObjectCreate("WR1", OBJ_TREND,0, WPeriod_Price[0][0],WR1);
ObjectSet("WR1",10,false);
ObjectSet("WR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WR1",OBJPROP_WIDTH,1);
ObjectSet("WR1",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WR1",3,WR1);
ObjectSetText("WR1","Weekly R1: " + DoubleToStr(WR1,4));
ObjectCreate("WS1", OBJ_TREND,0, WPeriod_Price[0][0],WS1);
ObjectSet("WS1",10,false);
ObjectSet("WS1", OBJPROP_COLOR, SupportColour);
ObjectSet("WS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WS1",OBJPROP_WIDTH,1);
ObjectSet("WS1",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WS1",3,WS1);
ObjectSetText("WS1","Weekly S1: " + DoubleToStr(WS1,4));
ObjectCreate("WR2", OBJ_TREND,0, WPeriod_Price[0][0],WR2);
ObjectSet("WR2",10,false);
ObjectSet("WR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WR2",OBJPROP_WIDTH,2);
ObjectSet("WR2",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WR2",3,WR2);
ObjectSetText("WR2","Weekly R2: " + DoubleToStr(WR2,4));
ObjectCreate("WR3", OBJ_TREND,0, WPeriod_Price[0][0],WR3);
ObjectSet("WR3",10,false);
ObjectSet("WR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WR3",OBJPROP_WIDTH,2);
ObjectSet("WR3",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WR3",3,WR3);
ObjectSetText("WR3","Weekly R3: " + DoubleToStr(WR3,4));
ObjectCreate("WS2", OBJ_TREND,0, WPeriod_Price[0][0],WS2);
ObjectSet("WS2",10,false);
ObjectSet("WS2", OBJPROP_COLOR, SupportColour);
ObjectSet("WS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WS2",OBJPROP_WIDTH,2);
ObjectSet("WS2",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WS2",3,WS2);
ObjectSetText("WS2","Weekly S2: " + DoubleToStr(WS2,4));
ObjectCreate("WS3", OBJ_TREND,0, WPeriod_Price[0][0],WS3);
ObjectSet("WS3",10,false);
ObjectSet("WS3", OBJPROP_COLOR, SupportColour);
ObjectSet("WS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WS3",OBJPROP_WIDTH,2);
ObjectSet("WS3",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WS3",3,WS3);
ObjectSetText("WS3","Weekly S3: " + DoubleToStr(WS3,4));
ObjectCreate("WM4", OBJ_TREND,0, WPeriod_Price[0][0],WM4);
ObjectSet("WM4",10,false);
ObjectSet("WM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WM4",OBJPROP_WIDTH,2);
ObjectSet("WM4",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM4",3,WM4);
ObjectSetText("WM4","Weekly M4: " + DoubleToStr(WM4,4));
ObjectCreate("WM1", OBJ_TREND,0, WPeriod_Price[0][0],WM1);
ObjectSet("WM1",10,false);
ObjectSet("WM1", OBJPROP_COLOR, SupportColour);
ObjectSet("WM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("WM1",OBJPROP_WIDTH,2);
ObjectSet("WM1",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM1",3,WM1);
ObjectSetText("WM1","Weekly M1: " + DoubleToStr(WM1,4));
if(incW_M2_M3)
{
ObjectCreate("WM2", OBJ_TREND,0, WPeriod_Price[0][0],WM2);
ObjectSet("WM2",10,false);
ObjectSet("WM2", OBJPROP_COLOR, SupportColour);
ObjectSet("WM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("WM2",OBJPROP_WIDTH,1);
ObjectSet("WM2",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM2",3,WM2);
ObjectSetText("WM2","Weekly M2: " + DoubleToStr(WM2,4));
ObjectCreate("WM3", OBJ_TREND,0, WPeriod_Price[0][0],WM3);
ObjectSet("WM3",10,false);
ObjectSet("WM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("WM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("WM3",OBJPROP_WIDTH,1);
ObjectSet("WM3",2,WPeriod_Price[0][0] + 2629743);
ObjectSet("WM3",3,WM3);
ObjectSetText("WM3","Weekly M3: " + DoubleToStr(WM3,4));
}
}
// Monthly
if(Monthly)
{
//ArrayInitialize(MPeriod_Price,0);
ArrayCopyRates(MPeriod_Price,(Symbol()), 43200);
MPreviousHigh = MPeriod_Price[1][3];
MPreviousLow = MPeriod_Price[1][2];
MPreviousClose = MPeriod_Price[1][4];
MPivot = ((MPreviousHigh + MPreviousLow + MPreviousClose)/3);
MR1 = (2*MPivot)-MPreviousLow;
MS1 = (2*MPivot)-MPreviousHigh;
MR2 = MPivot+(MR1-MS1);
MS2 = MPivot-(MR1-MS1);
MM1 = (MS2+MS1)/2;
MM4 = (MR1+MR2)/2;
MM2 = (MS1+MPivot)/2;
MM3 = (MPivot+MR1)/2;
MS3 = (MPreviousLow - (2*(MPreviousHigh-MPivot)));
MR3 = (MPreviousHigh + (2*(MPivot-MPreviousLow)));
AllLevels[22] = MR1;
AllLevels[23] = MS1;
AllLevels[24] = MR2;
AllLevels[25] = MS2;
AllLevels[26] = MM1;
AllLevels[27] = MM4;
AllLevels[28] = MM2;
AllLevels[29] = MM3;
AllLevels[30] = MS3;
AllLevels[31] = MR3;
AllLevels[32] = MPivot;
ObjectCreate("MPP", OBJ_TREND,0, MPeriod_Price[0][0],MPivot);
ObjectSet("MPP",10,false);
ObjectSet("MPP", OBJPROP_COLOR, PPColour);
ObjectSet("MPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MPP",OBJPROP_WIDTH,3);
ObjectSet("MPP",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MPP",3,MPivot);
ObjectSetText("MPP","Monthly PP: " + DoubleToStr(MPivot,4));
ObjectCreate("MR1", OBJ_TREND,0, MPeriod_Price[0][0],MR1);
ObjectSet("MR1",10,false);
ObjectSet("MR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MR1",OBJPROP_WIDTH,1);
ObjectSet("MR1",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MR1",3,MR1);
ObjectSetText("MR1","Monthly R1: " + DoubleToStr(MR1,4));
ObjectCreate("MS1", OBJ_TREND,0, MPeriod_Price[0][0],MS1);
ObjectSet("MS1",10,false);
ObjectSet("MS1", OBJPROP_COLOR, SupportColour);
ObjectSet("MS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MS1",OBJPROP_WIDTH,1);
ObjectSet("MS1",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MS1",3,MS1);
ObjectSetText("MS1","Monthly S1: " + DoubleToStr(MS1,4));
ObjectCreate("MR2", OBJ_TREND,0, MPeriod_Price[0][0],MR2);
ObjectSet("MR2",10,false);
ObjectSet("MR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MR2",OBJPROP_WIDTH,2);
ObjectSet("MR2",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MR2",3,MR2);
ObjectSetText("MR2","Monthly R2: " + DoubleToStr(MR2,4));
ObjectCreate("MR3", OBJ_TREND,0, MPeriod_Price[0][0],MR3);
ObjectSet("MR3",10,false);
ObjectSet("MR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MR3",OBJPROP_WIDTH,2);
ObjectSet("MR3",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MR3",3,MR3);
ObjectSetText("MR3","Monthly R3: " + DoubleToStr(MR3,4));
ObjectCreate("MS2", OBJ_TREND,0, MPeriod_Price[0][0],MS2);
ObjectSet("MS2",10,false);
ObjectSet("MS2", OBJPROP_COLOR, SupportColour);
ObjectSet("MS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MS2",OBJPROP_WIDTH,2);
ObjectSet("MS2",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MS2",3,MS2);
ObjectSetText("MS2","Monthly S2: " + DoubleToStr(MS2,4));
ObjectCreate("MS3", OBJ_TREND,0, MPeriod_Price[0][0],MS3);
ObjectSet("MS3",10,false);
ObjectSet("MS3", OBJPROP_COLOR, SupportColour);
ObjectSet("MS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MS3",OBJPROP_WIDTH,2);
ObjectSet("MS3",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MS3",3,MS3);
ObjectSetText("MS3","Monthly S3: " + DoubleToStr(MS3,4));
ObjectCreate("MM4", OBJ_TREND,0, MPeriod_Price[0][0],MM4);
ObjectSet("MM4",10,false);
ObjectSet("MM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MM4",OBJPROP_WIDTH,2);
ObjectSet("MM4",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM4",3,MM4);
ObjectSetText("MM4","Monthly M4: " + DoubleToStr(MM4,4));
ObjectCreate("MM1", OBJ_TREND,0, MPeriod_Price[0][0],MM1);
ObjectSet("MM1",10,false);
ObjectSet("MM1", OBJPROP_COLOR, SupportColour);
ObjectSet("MM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("MM1",OBJPROP_WIDTH,2);
ObjectSet("MM1",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM1",3,MM1);
ObjectSetText("MM1","Monthly M1: " + DoubleToStr(MM1,4));
if(incM_M2_M3)
{
ObjectCreate("MM2", OBJ_TREND,0, MPeriod_Price[0][0],MM2);
ObjectSet("MM2",10,false);
ObjectSet("MM2", OBJPROP_COLOR, SupportColour);
ObjectSet("MM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("MM2",OBJPROP_WIDTH,1);
ObjectSet("MM2",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM2",3,MM2);
ObjectSetText("MM2","Monthly M2: " + DoubleToStr(MM2,4));
ObjectCreate("MM3", OBJ_TREND,0, MPeriod_Price[0][0],MM3);
ObjectSet("MM3",10,false);
ObjectSet("MM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("MM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("MM3",OBJPROP_WIDTH,1);
ObjectSet("MM3",2,MPeriod_Price[0][0] + 2629743);
ObjectSet("MM3",3,MM3);
ObjectSetText("MM3","Monthly M3: " + DoubleToStr(MM3,4));
}
}
// Yearly
if(Yearly)
{
ArrayCopyRates(YPeriod_Price,(Symbol()), 43200);
int year = Year() - (1);
double close,high,low=10000;
for (int x=0;x<30;x++)
{
if(TimeYear(YPeriod_Price[x][0]) == year)
{
if(YPeriod_Price[x][3] > high)
high = YPeriod_Price[x][3];
if(YPeriod_Price[x][2] < low)
low = YPeriod_Price[x][2];
if (TimeMonth(YPeriod_Price[x][0]) == 12)
close = YPeriod_Price[x][4];
}
}
YPreviousHigh = high;
YPreviousLow = low;
YPreviousClose = close;
YPivot = ((YPreviousHigh + YPreviousLow + YPreviousClose)/3);
YR1 = (2*YPivot)-YPreviousLow;
YS1 = (2*YPivot)-YPreviousHigh;
YR2 = YPivot+(YR1-YS1);
YS2 = YPivot-(YR1-YS1);
YM1 = (YS2+YS1)/2;
YM4 = (YR1+YR2)/2;
YM2 = (YS1+YPivot)/2;
YM3 = (YPivot+YR1)/2;
YS3 = (YPreviousLow - (2*(YPreviousHigh-YPivot)));
YR3 = (YPreviousHigh + (2*(YPivot-YPreviousLow)));
AllLevels[33] = YR1;
AllLevels[34] = YS1;
AllLevels[35] = YR2;
AllLevels[36] = YS2;
AllLevels[37] = YM1;
AllLevels[38] = YM4;
AllLevels[39] = YM2;
AllLevels[40] = YM3;
AllLevels[41] = YS3;
AllLevels[42] = YR3;
AllLevels[43] = YPivot;
ObjectCreate("YPP", OBJ_TREND,0, YPeriod_Price[0][0],YPivot);
ObjectSet("YPP",10,false);
ObjectSet("YPP", OBJPROP_COLOR, PPColour);
ObjectSet("YPP", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YPP",OBJPROP_WIDTH,3);
ObjectSet("YPP",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YPP",3,YPivot);
ObjectSetText("YPP","Yearly PP: " + DoubleToStr(YPivot,4));
ObjectCreate("YR1", OBJ_TREND,0, YPeriod_Price[0][0],YR1);
ObjectSet("YR1",10,false);
ObjectSet("YR1", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YR1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YR1",OBJPROP_WIDTH,1);
ObjectSet("YR1",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YR1",3,YR1);
ObjectSetText("YR1","Yearly R1: " + DoubleToStr(YR1,4));
ObjectCreate("YS1", OBJ_TREND,0, YPeriod_Price[0][0],YS1);
ObjectSet("YS1",10,false);
ObjectSet("YS1", OBJPROP_COLOR, SupportColour);
ObjectSet("YS1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YS1",OBJPROP_WIDTH,1);
ObjectSet("YS1",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YS1",3,YS1);
ObjectSetText("YS1","Yearly S1: " + DoubleToStr(YS1,4));
ObjectCreate("YR2", OBJ_TREND,0, YPeriod_Price[0][0],YR2);
ObjectSet("YR2",10,false);
ObjectSet("YR2", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YR2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YR2",OBJPROP_WIDTH,2);
ObjectSet("YR2",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YR2",3,YR2);
ObjectSetText("YR2","Yearly R2: " + DoubleToStr(YR2,4));
ObjectCreate("YR3", OBJ_TREND,0, YPeriod_Price[0][0],YR3);
ObjectSet("YR3",10,false);
ObjectSet("YR3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YR3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YR3",OBJPROP_WIDTH,2);
ObjectSet("YR3",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YR3",3,YR3);
ObjectSetText("YR3","Yearly R3: " + DoubleToStr(YR3,4));
ObjectCreate("YS2", OBJ_TREND,0, YPeriod_Price[0][0],YS2);
ObjectSet("YS2",10,false);
ObjectSet("YS2", OBJPROP_COLOR, SupportColour);
ObjectSet("YS2", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YS2",OBJPROP_WIDTH,2);
ObjectSet("YS2",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YS2",3,YS2);
ObjectSetText("YS2","Yearly S2: " + DoubleToStr(YS2,4));
ObjectCreate("YS3", OBJ_TREND,0, YPeriod_Price[0][0],YS3);
ObjectSet("YS3",10,false);
ObjectSet("YS3", OBJPROP_COLOR, SupportColour);
ObjectSet("YS3", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YS3",OBJPROP_WIDTH,2);
ObjectSet("YS3",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YS3",3,YS3);
ObjectSetText("YS3","Yearly S3: " + DoubleToStr(YS3,4));
ObjectCreate("YM4", OBJ_TREND,0, YPeriod_Price[0][0],YM4);
ObjectSet("YM4",10,false);
ObjectSet("YM4", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YM4", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YM4",OBJPROP_WIDTH,2);
ObjectSet("YM4",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM4",3,YM4);
ObjectSetText("YM4","Yearly M4: " + DoubleToStr(YM4,4));
ObjectCreate("YM1", OBJ_TREND,0, YPeriod_Price[0][0],YM1);
ObjectSet("YM1",10,false);
ObjectSet("YM1", OBJPROP_COLOR, SupportColour);
ObjectSet("YM1", OBJPROP_STYLE, STYLE_SOLID);
ObjectSet("YM1",OBJPROP_WIDTH,2);
ObjectSet("YM1",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM1",3,YM1);
ObjectSetText("YM1","Yearly M1: " + DoubleToStr(YM1,4));
if(incY_M2_M3)
{
ObjectCreate("YM2", OBJ_TREND,0, YPeriod_Price[0][0],YM2);
ObjectSet("YM2",10,false);
ObjectSet("YM2", OBJPROP_COLOR, SupportColour);
ObjectSet("YM2", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("YM2",OBJPROP_WIDTH,1);
ObjectSet("YM2",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM2",3,YM2);
ObjectSetText("YM2","Yearly M2: " + DoubleToStr(YM2,4));
ObjectCreate("YM3", OBJ_TREND,0, YPeriod_Price[0][0],YM3);
ObjectSet("YM3",10,false);
ObjectSet("YM3", OBJPROP_COLOR, ResistanceColour);
ObjectSet("YM3", OBJPROP_STYLE, STYLE_DASH);
ObjectSet("YM3",OBJPROP_WIDTH,1);
ObjectSet("YM3",2,YPeriod_Price[0][0] + 2629743);
ObjectSet("YM3",3,YM3);
ObjectSetText("YM3","Yearly M3: " + DoubleToStr(YM3,4));
}
}
if(HighlightCloseLevels)
HighlightCloseLevels(AllLevels);
{
}
WindowRedraw();
return(0);
}
void HighlightCloseLevels(double levels[])
{
int year = Year() - 1;
ArraySort(levels);
for(int i = 0;i < 43; i++)
{
if(MathAbs(levels[i] - levels[i+1]) / (Point * 10) <= CloseLevelRange)
{
ObjectCreate("L" + i,OBJ_RECTANGLE,0,StrToTime((year + 1) + ".01.01 00:00"),levels[i]);
ObjectSet("L" + i,2,StrToTime((year + 1) + ".12.31 23:59"));
ObjectSet("L" + i,3,levels[i+1]);
ObjectSet("L" + i,6,HighlightColour);
}
}
}