//+------------------------------------------------------------------+
//| FerruFx_Multi_info+_2.mq4 |
//| Copyright © 2007, FerruFx |
//| |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 MediumSpringGreen
#property indicator_color2 FireBrick
#property indicator_color3 MediumBlue
#property indicator_color4 DarkOrange
#property indicator_color5 MediumBlue
#property indicator_color6 FireBrick
#property indicator_color7 MediumSpringGreen
extern double TrendStrongLevel = 75.00;
extern int Pivots_Period = 1440;
//---- buffers
double Piv_Buffer[];
double R1_Buffer[];
double R2_Buffer[];
double R3_Buffer[];
double S1_Buffer[];
double S2_Buffer[];
double S3_Buffer[];
// indicators parameters
extern int Ydist_line=20;
extern int Xdist_line=10;
int TimeZone=0;
bool pivots = true;
bool alert = true;
double yesterday_high=0;
double yesterday_open=0;
double yesterday_low=0;
double yesterday_close=0;
double today_open=0;
double today_high=0;
double today_low=0;
double rates_h1[2][6];
double rates_d1[2][6];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- 2 additional buffers are used for counting.
IndicatorBuffers(7);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,Piv_Buffer);
SetIndexStyle(4,DRAW_LINE);
SetIndexBuffer(4,R1_Buffer);
SetIndexStyle(5,DRAW_LINE);
SetIndexBuffer(5,R2_Buffer);
SetIndexStyle(6,DRAW_LINE);
SetIndexBuffer(6,R3_Buffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,S1_Buffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,S2_Buffer);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,S3_Buffer);
// short_name="Pivots("+S3_Buffer+"|"+S2_Buffer+"|"+S1_Buffer+"|"+Piv_Buffer+"|"+R1_Buffer+"|"+R2_Buffer+"|"+R3_Buffer+"|"+")";
// IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//----
SetIndexDrawBegin(0,S3_Buffer);
SetIndexDrawBegin(1,S2_Buffer);
SetIndexDrawBegin(2,S1_Buffer);
SetIndexDrawBegin(3,Piv_Buffer);
SetIndexDrawBegin(4,R1_Buffer);
SetIndexDrawBegin(5,R2_Buffer);
SetIndexDrawBegin(6,R3_Buffer);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("pivots");
ObjectDelete("line5");
ObjectDelete("R3_Label");
ObjectDelete("R2_Label");
ObjectDelete("R1_Label");
ObjectDelete("Pivot_Label");
ObjectDelete("S1_Label");
ObjectDelete("S2_Label");
ObjectDelete("S3_Label");
ObjectDelete("R3_Value");
ObjectDelete("R2_Value");
ObjectDelete("R1_Value");
ObjectDelete("Pivot_Value");
ObjectDelete("S1_Value");
ObjectDelete("S2_Value");
ObjectDelete("S3_Value");
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
i=Bars-counted_bars-1;
while(i>=0)
{
color color_common_line = White;
color color_common_text = White;
color color_ind = PowderBlue;
color color_indic;
color color_pivots_1=DarkOrange;
double x;
// DAILY PIVOTS AND RANGE
string Pivots_Label;
Pivots_Period=Period();
switch (Pivots_Period)
{
case 1 : Pivots_Label="+1 ìèí Pivots+";break;
case 5 : Pivots_Label="+5 ìèí Pivots+";break;
case 15 : Pivots_Label="+15ìèí Pivots+";break;
case 30 : Pivots_Label="+30ìèí Pivots+";break;
case 60 : Pivots_Label="+1 ÷àñ Pivots+";break;
case 240 : Pivots_Label="+4 ÷àñ Pivots+";break;
case 1440 : Pivots_Label="+Äíåâí Pivots+";break;
case 10080 : Pivots_Label="+Íåäåë Pivots+";break;
case 43200 : Pivots_Label="+Ìåñÿö Pivots+";break;
}
ObjectCreate("pivots", OBJ_LABEL, 0, 0, 0);
ObjectSetText("pivots",Pivots_Label,9, "Verdana", color_pivots_1);
ObjectSet("pivots", OBJPROP_CORNER, 0);
ObjectSet("pivots", OBJPROP_XDISTANCE, Xdist_line);
ObjectSet("pivots", OBJPROP_YDISTANCE, Ydist_line+5);
ObjectCreate("line5", OBJ_LABEL, 0, 0, 0);
ObjectSetText("line5","------------------",8, "Verdana", color_pivots_1);
ObjectSet("line5", OBJPROP_CORNER, 0);
ObjectSet("line5", OBJPROP_XDISTANCE, Xdist_line);
ObjectSet("line5", OBJPROP_YDISTANCE, Ydist_line+16);
//---- Get new daily prices
// ArrayCopyRates(rates_d1, Symbol(), PERIOD_D1);
ArrayCopyRates(rates_d1, Symbol(), 0);
//---- modifs ibfx
int offset = i;
// if(DayOfWeek()==1) offset=1;
//----
double day50_high = rates_d1[50+offset][3];
double day50_low = rates_d1[50+offset][2];
double day49_high = rates_d1[49+offset][3];
double day49_low = rates_d1[49+offset][2];
double day48_high = rates_d1[48+offset][3];
double day48_low = rates_d1[48+offset][2];
double day47_high = rates_d1[47+offset][3];
double day47_low = rates_d1[47+offset][2];
double day46_high = rates_d1[46+offset][3];
double day46_low = rates_d1[46+offset][2];
double day45_high = rates_d1[45+offset][3];
double day45_low = rates_d1[45+offset][2];
double day44_high = rates_d1[44+offset][3];
double day44_low = rates_d1[44+offset][2];
double day43_high = rates_d1[43+offset][3];
double day43_low = rates_d1[43+offset][2];
double day42_high = rates_d1[42+offset][3];
double day42_low = rates_d1[42+offset][2];
double day41_high = rates_d1[41+offset][3];
double day41_low = rates_d1[41+offset][2];
double day40_high = rates_d1[40+offset][3];
double day40_low = rates_d1[40+offset][2];
double day39_high = rates_d1[39+offset][3];
double day39_low = rates_d1[39+offset][2];
double day38_high = rates_d1[38+offset][3];
double day38_low = rates_d1[38+offset][2];
double day37_high = rates_d1[37+offset][3];
double day37_low = rates_d1[37+offset][2];
double day36_high = rates_d1[36+offset][3];
double day36_low = rates_d1[36+offset][2];
double day35_high = rates_d1[35+offset][3];
double day35_low = rates_d1[35+offset][2];
double day34_high = rates_d1[34+offset][3];
double day34_low = rates_d1[34+offset][2];
double day33_high = rates_d1[33+offset][3];
double day33_low = rates_d1[33+offset][2];
double day32_high = rates_d1[32+offset][3];
double day32_low = rates_d1[32+offset][2];
double day31_high = rates_d1[31+offset][3];
double day31_low = rates_d1[31+offset][2];
double day30_high = rates_d1[30+offset][3];
double day30_low = rates_d1[30+offset][2];
double day29_high = rates_d1[29+offset][3];
double day29_low = rates_d1[29+offset][2];
double day28_high = rates_d1[28+offset][3];
double day28_low = rates_d1[28+offset][2];
double day27_high = rates_d1[27+offset][3];
double day27_low = rates_d1[27+offset][2];
double day26_high = rates_d1[26+offset][3];
double day26_low = rates_d1[26+offset][2];
double day25_high = rates_d1[25+offset][3];
double day25_low = rates_d1[25+offset][2];
double day24_high = rates_d1[24+offset][3];
double day24_low = rates_d1[24+offset][2];
double day23_high = rates_d1[23+offset][3];
double day23_low = rates_d1[23+offset][2];
double day22_high = rates_d1[22+offset][3];
double day22_low = rates_d1[22+offset][2];
double day21_high = rates_d1[21+offset][3];
double day21_low = rates_d1[21+offset][2];
double day20_high = rates_d1[20+offset][3];
double day20_low = rates_d1[20+offset][2];
double day19_high = rates_d1[19+offset][3];
double day19_low = rates_d1[19+offset][2];
double day18_high = rates_d1[18+offset][3];
double day18_low = rates_d1[18+offset][2];
double day17_high = rates_d1[17+offset][3];
double day17_low = rates_d1[17+offset][2];
double day16_high = rates_d1[16+offset][3];
double day16_low = rates_d1[16+offset][2];
double day15_high = rates_d1[15+offset][3];
double day15_low = rates_d1[15+offset][2];
double day14_high = rates_d1[14+offset][3];
double day14_low = rates_d1[14+offset][2];
double day13_high = rates_d1[13+offset][3];
double day13_low = rates_d1[13+offset][2];
double day12_high = rates_d1[12+offset][3];
double day12_low = rates_d1[12+offset][2];
double day11_high = rates_d1[11+offset][3];
double day11_low = rates_d1[11+offset][2];
double day10_high = rates_d1[10+offset][3];
double day10_low = rates_d1[10+offset][2];
double day9_high = rates_d1[9+offset][3];
double day9_low = rates_d1[9+offset][2];
double day8_high = rates_d1[8+offset][3];
double day8_low = rates_d1[8+offset][2];
double day7_high = rates_d1[7+offset][3];
double day7_low = rates_d1[7+offset][2];
double day6_high = rates_d1[6+offset][3];
double day6_low = rates_d1[6+offset][2];
double day5_high = rates_d1[5+offset][3];
double day5_low = rates_d1[5+offset][2];
double day4_high = rates_d1[4+offset][3];
double day4_low = rates_d1[4+offset][2];
double day3_high = rates_d1[3+offset][3];
double day3_low = rates_d1[3+offset][2];
double day2_high = rates_d1[2+offset][3];
double day2_low = rates_d1[2+offset][2];
double yesterday_high = rates_d1[1+offset][3];
double yesterday_low = rates_d1[1+offset][2];
double yesterday_close = rates_d1[1+offset][4];
double day_high = rates_d1[0][3];
double day_low = rates_d1[0][2];
/*
int i=0;
ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);
for (i=0;i<=25;i++)
{
if (TimeMinute(rates_h1[i][0])==0 && (TimeHour(rates_h1[i][0])-TimeZone)==0)
{
yesterday_close = rates_h1[i+1][4];
yesterday_open = rates_h1[i+24][1];
today_open = rates_h1[i][1];
break;
}
}
*/
//---- Calculate Pivots et range
double D = (day_high - day_low);
double Q = (yesterday_high - yesterday_low);
double Q2 = (day2_high - day2_low);
double Q3 = (day3_high - day3_low);
double Q4 = (day4_high - day4_low);
double Q5 = (day5_high - day5_low);
double Q6 = (day6_high - day6_low);
double Q7 = (day7_high - day7_low);
double Q8 = (day8_high - day8_low);
double Q9 = (day9_high - day9_low);
double Q10 = (day10_high - day10_low);
double Q11 = (day11_high - day11_low);
double Q12 = (day12_high - day12_low);
double Q13 = (day13_high - day13_low);
double Q14 = (day14_high - day14_low);
double Q15 = (day15_high - day15_low);
double Q16 = (day16_high - day16_low);
double Q17 = (day17_high - day17_low);
double Q18 = (day18_high - day18_low);
double Q19 = (day19_high - day19_low);
double Q20 = (day20_high - day20_low);
double Q21 = (day21_high - day21_low);
double Q22 = (day22_high - day22_low);
double Q23 = (day23_high - day23_low);
double Q24 = (day24_high - day24_low);
double Q25 = (day25_high - day25_low);
double Q26 = (day26_high - day26_low);
double Q27 = (day27_high - day27_low);
double Q28 = (day28_high - day28_low);
double Q29 = (day29_high - day29_low);
double Q30 = (day30_high - day30_low);
double Q31 = (day31_high - day31_low);
double Q32 = (day32_high - day32_low);
double Q33 = (day33_high - day33_low);
double Q34 = (day34_high - day34_low);
double Q35 = (day35_high - day35_low);
double Q36 = (day36_high - day36_low);
double Q37 = (day37_high - day37_low);
double Q38 = (day38_high - day38_low);
double Q39 = (day39_high - day39_low);
double Q40 = (day40_high - day40_low);
double Q41 = (day41_high - day41_low);
double Q42 = (day42_high - day42_low);
double Q43 = (day43_high - day43_low);
double Q44 = (day44_high - day44_low);
double Q45 = (day45_high - day45_low);
double Q46 = (day46_high - day46_low);
double Q47 = (day47_high - day47_low);
double Q48 = (day48_high - day48_low);
double Q49 = (day49_high - day49_low);
double Q50 = (day50_high - day50_low);
double P = (yesterday_high + yesterday_low + yesterday_close) / 3;
double R1 = (2*P)-yesterday_low;
double S1 = (2*P)-yesterday_high;
double R2 = P+(R1 - S1);
double S2 = P-(R1 - S1);
double R3 = (2*P)+(yesterday_high-(2*yesterday_low));
double S3 = (2*P)-((2* yesterday_high)-yesterday_low);
int Precision, dig;
{
if( StringFind( Symbol(), "JPY", 0) != -1 ) { Precision = 100; dig = 2;}
else { Precision = 10000; dig = 4; }
}
//---- Set Pivots labels
ObjectCreate("R3_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("R3_Label","R3",9, "Verdana", Gainsboro);
ObjectSet("R3_Label", OBJPROP_CORNER, 0);
ObjectSet("R3_Label", OBJPROP_XDISTANCE, Xdist_line+3);
ObjectSet("R3_Label", OBJPROP_YDISTANCE, Ydist_line+30);
ObjectCreate("R3_Value", OBJ_LABEL, 0, 0, 0);
ObjectSetText("R3_Value"," "+DoubleToStr(R3,dig),9, "Verdana", Gainsboro);
ObjectSet("R3_Value", OBJPROP_CORNER, 0);
ObjectSet("R3_Value", OBJPROP_XDISTANCE, Xdist_line+40);
ObjectSet("R3_Value", OBJPROP_YDISTANCE, Ydist_line+30);
ObjectCreate("R2_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("R2_Label","R2",9, "Verdana", Silver);
ObjectSet("R2_Label", OBJPROP_CORNER, 0);
ObjectSet("R2_Label", OBJPROP_XDISTANCE, Xdist_line+3);
ObjectSet("R2_Label", OBJPROP_YDISTANCE, Ydist_line+45);
ObjectCreate("R2_Value", OBJ_LABEL, 0, 0, 0);
ObjectSetText("R2_Value"," "+DoubleToStr(R2,dig),9, "Verdana", Silver);
ObjectSet("R2_Value", OBJPROP_CORNER, 0);
ObjectSet("R2_Value", OBJPROP_XDISTANCE, Xdist_line+40);
ObjectSet("R2_Value", OBJPROP_YDISTANCE, Ydist_line+45);
ObjectCreate("R1_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("R1_Label","R1",9, "Verdana", DarkGray);
ObjectSet("R1_Label", OBJPROP_CORNER, 0);
ObjectSet("R1_Label", OBJPROP_XDISTANCE, Xdist_line+3);
ObjectSet("R1_Label", OBJPROP_YDISTANCE, Ydist_line+60);
ObjectCreate("R1_Value", OBJ_LABEL, 0, 0, 0);
ObjectSetText("R1_Value"," "+DoubleToStr(R1,dig),9, "Verdana", DarkGray);
ObjectSet("R1_Value", OBJPROP_CORNER, 0);
ObjectSet("R1_Value", OBJPROP_XDISTANCE, Xdist_line+40);
ObjectSet("R1_Value", OBJPROP_YDISTANCE, Ydist_line+60);
ObjectCreate("Pivot_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Pivot_Label","Pivot",9, "Verdana", Gray);
ObjectSet("Pivot_Label", OBJPROP_CORNER, 0);
ObjectSet("Pivot_Label", OBJPROP_XDISTANCE, Xdist_line+3);
ObjectSet("Pivot_Label", OBJPROP_YDISTANCE, Ydist_line+75);
ObjectCreate("Pivot_Value", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Pivot_Value"," "+DoubleToStr(P,dig),9, "Verdana", Gray);
ObjectSet("Pivot_Value", OBJPROP_CORNER, 0);
ObjectSet("Pivot_Value", OBJPROP_XDISTANCE, Xdist_line+40);
ObjectSet("Pivot_Value", OBJPROP_YDISTANCE, Ydist_line+75);
ObjectCreate("S1_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("S1_Label","S1",9, "Verdana", DarkGray);
ObjectSet("S1_Label", OBJPROP_CORNER, 0);
ObjectSet("S1_Label", OBJPROP_XDISTANCE, Xdist_line+3);
ObjectSet("S1_Label", OBJPROP_YDISTANCE, Ydist_line+90);
ObjectCreate("S1_Value", OBJ_LABEL, 0, 0, 0);
ObjectSetText("S1_Value"," "+DoubleToStr(S1,dig),9, "Verdana", DarkGray);
ObjectSet("S1_Value", OBJPROP_CORNER, 0);
ObjectSet("S1_Value", OBJPROP_XDISTANCE, Xdist_line+40);
ObjectSet("S1_Value", OBJPROP_YDISTANCE, Ydist_line+90);
ObjectCreate("S2_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("S2_Label","S2",9, "Verdana", Silver);
ObjectSet("S2_Label", OBJPROP_CORNER, 0);
ObjectSet("S2_Label", OBJPROP_XDISTANCE, Xdist_line+3);
ObjectSet("S2_Label", OBJPROP_YDISTANCE, Ydist_line+105);
ObjectCreate("S2_Value", OBJ_LABEL, 0, 0, 0);
ObjectSetText("S2_Value"," "+DoubleToStr(S2,dig),9, "Verdana", Silver);
ObjectSet("S2_Value", OBJPROP_CORNER, 0);
ObjectSet("S2_Value", OBJPROP_XDISTANCE, Xdist_line+40);
ObjectSet("S2_Value", OBJPROP_YDISTANCE, Ydist_line+105);
ObjectCreate("S3_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetText("S3_Label","S3",9, "Verdana", Gainsboro);
ObjectSet("S3_Label", OBJPROP_CORNER, 0);
ObjectSet("S3_Label", OBJPROP_XDISTANCE, Xdist_line+3);
ObjectSet("S3_Label", OBJPROP_YDISTANCE, Ydist_line+120);
ObjectCreate("S3_Value", OBJ_LABEL, 0, 0, 0);
ObjectSetText("S3_Value"," "+DoubleToStr(S3,dig),9, "Verdana", Gainsboro);
ObjectSet("S3_Value", OBJPROP_CORNER, 0);
ObjectSet("S3_Value", OBJPROP_XDISTANCE, Xdist_line+40);
ObjectSet("S3_Value", OBJPROP_YDISTANCE, Ydist_line+120);
S3_Buffer[i] =S3;
S2_Buffer[i] =S2;
S1_Buffer[i] =S1;
Piv_Buffer[i]=P;
R1_Buffer[i] =R1;
R2_Buffer[i] =R2;
R3_Buffer[i] =R3;
i--;
}
return(0);
}
Comments