//+-------------------------------------------------------------------+ //| Fibo Pivot Lines GMT.mq4 | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //| Modified by Hossein Paydar | //| You are free to use it | //+-------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window extern int GMT = 2; extern bool Fibonacci = true; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("P label"); ObjectDelete("P line"); ObjectDelete("FR1 line"); ObjectDelete("FR1 label"); ObjectDelete("FR2 line"); ObjectDelete("FR2 label"); ObjectDelete("FR3 line"); ObjectDelete("FR3 label"); ObjectDelete("FS1 line"); ObjectDelete("FS1 label"); ObjectDelete("FS2 line"); ObjectDelete("FS2 label"); ObjectDelete("FS3 line"); ObjectDelete("FS3 label"); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars = IndicatorCounted(); double day_high = 0; double day_low = 0; double yesterday_high = 0; double yesterday_open = 0; double yesterday_low = 0; double yesterday_close = 0; double today_open = 0; double P = 0, S = 0, R = 0, S1 = 0, R1 = 0, S2 = 0, R2 = 0, S3 = 0, R3 = 0; int cnt = 720; double cur_day = 0; double prev_day = 0; double rates_d1[2][6]; if(Period() >= 1440) { Print("Error"); return(-1); } while(cnt != 0) { cur_day = TimeDay(Time[cnt] - (GMT*3600)); if(prev_day != cur_day) { yesterday_close = Close[cnt+1]; today_open = Open[cnt]; yesterday_high = day_high; yesterday_low = day_low; day_high = High[cnt]; day_low = Low[cnt]; prev_day = cur_day; Comment ( yesterday_high + " " + yesterday_low + " " + yesterday_close ); } if(High[cnt] > day_high) { day_high = High[cnt]; } if(Low[cnt] < day_low) { day_low = Low[cnt]; } cnt--; } R = (yesterday_high - yesterday_low); P = (yesterday_high + yesterday_low + yesterday_close)/3; if(Fibonacci==true) { R1 = P + (R * 0.382); R2 = P + (R * 0.618); R3 = P + (R * 1); S1 = P - (R * 0.382); S2 = P - (R * 0.618); S3 = P - (R * 1); } else { R1 = (2*P)-yesterday_low; R2 = P+(yesterday_high - yesterday_low); R3 = (2*P)+(yesterday_high-(2*yesterday_low)); S1 = (2*P)-yesterday_high; S2 = P-(yesterday_high - yesterday_low); S3 = (2*P)-((2* yesterday_high)-yesterday_low); } if(ObjectFind("P label") != 0) { ObjectCreate("P label", OBJ_TEXT, 0, Time[20], P); ObjectSetText("P label", "PivotPoint", 8, "Arial", Blue); } else {ObjectMove("P label", 0, Time[20], P);} if(ObjectFind("FR1 label") != 0) { ObjectCreate("FR1 label", OBJ_TEXT, 0, Time[20], R1); ObjectSetText("FR1 label", "Resistance 1", 8, "Arial", DarkGreen); } else {ObjectMove("FR1 label", 0, Time[20], R1);} if(ObjectFind("FR2 label") != 0) { ObjectCreate("FR2 label", OBJ_TEXT, 0, Time[20], R2); ObjectSetText("FR2 label", "Resistance 2", 8, "Arial", Green); } else {ObjectMove("FR2 label", 0, Time[20], R2);} if(ObjectFind("FR3 label") != 0) { ObjectCreate("FR3 label", OBJ_TEXT, 0, Time[20], R3); ObjectSetText("FR3 label", "Resistance 3", 8, "Arial", Lime); } else {ObjectMove("FR3 label", 0, Time[20], R3);} if(ObjectFind("FS1 label") != 0) { ObjectCreate("FS1 label", OBJ_TEXT, 0, Time[20], S1); ObjectSetText("FS1 label", "Support 1", 8, "Arial", Maroon); } else {ObjectMove("FS1 label", 0, Time[20], S1);} if(ObjectFind("FS2 label") != 0) { ObjectCreate("FS2 label", OBJ_TEXT, 0, Time[20], S2); ObjectSetText("FS2 label", "Support 2", 8, "Arial", Crimson); } else {ObjectMove("FS2 label", 0, Time[20], S2);} if(ObjectFind("FS3 label") != 0) { ObjectCreate("FS3 label", OBJ_TEXT, 0, Time[20], S3); ObjectSetText("FS3 label", "Support 3", 8, "Arial", Red); } else {ObjectMove("FS3 label", 0, Time[20], S3);} if(ObjectFind("P line") != 0) { ObjectCreate("P line", OBJ_HLINE, 0, Time[40], P); ObjectSet("P line", OBJPROP_STYLE, STYLE_DOT); ObjectSet("P line", OBJPROP_COLOR, Blue); } else { ObjectMove("P line", 0, Time[40], P); } if(ObjectFind("FR1 line") != 0) { ObjectCreate("FR1 line", OBJ_HLINE, 0, Time[40], R1); ObjectSet("FR1 line", OBJPROP_STYLE, STYLE_DOT); ObjectSet("FR1 line", OBJPROP_COLOR, DarkGreen); } else { ObjectMove("FR1 line", 0, Time[40], R1); } //---- if(ObjectFind("FS1 line") != 0) { ObjectCreate("FS1 line", OBJ_HLINE, 0, Time[40], S1); ObjectSet("FS1 line", OBJPROP_STYLE, STYLE_DOT); ObjectSet("FS1 line", OBJPROP_COLOR, Maroon); } else { ObjectMove("FS1 line", 0, Time[40], S1); } //---- if(ObjectFind("FR2 line") != 0) { ObjectCreate("FR2 line", OBJ_HLINE, 0, Time[40], R2); ObjectSet("FR2 line", OBJPROP_STYLE, STYLE_DOT); ObjectSet("FR2 line", OBJPROP_COLOR, Green); } else { ObjectMove("FR2 line", 0, Time[40], R2); } if(ObjectFind("FS2 line") != 0) { ObjectCreate("FS2 line", OBJ_HLINE, 0, Time[40], S2); ObjectSet("FS2 line", OBJPROP_STYLE, STYLE_DOT); ObjectSet("FS2 line", OBJPROP_COLOR, Crimson); } else { ObjectMove("FS2 line", 0, Time[40], S2); } //---- if(ObjectFind("FR3 line") != 0) { ObjectCreate("FR3 line", OBJ_HLINE, 0, Time[40], R3); ObjectSet("FR3 line", OBJPROP_STYLE, STYLE_DOT); ObjectSet("FR3 line", OBJPROP_COLOR, Lime); } else { ObjectMove("FR3 line", 0, Time[40], R3); } if(ObjectFind("FS3 line") != 0) { ObjectCreate("FS3 line", OBJ_HLINE, 0, Time[40], S3); ObjectSet("FS3 line", OBJPROP_STYLE, STYLE_DOT); ObjectSet("FS3 line", OBJPROP_COLOR, Red); } else { ObjectMove("FS3 line", 0, Time[40], S3); } //---- return(0); } //+------------------------------------------------------------------+