//+------------------------------------------------------------------+ //| #SpudFibo.mq4 - downloaded from ultimaforex.com //+------------------------------------------------------------------+ #property indicator_chart_window extern string note1 = "Fibonacci colors"; extern color UpperFiboColor = White; extern color MainFiboColor = White; extern color LowerFiboColor = White; extern string note2 = "Draw main Fibonacci lines?"; extern bool InnerFibs = false; double HiPrice, LoPrice, Range; datetime StartTime; int init() { return(0); } int deinit() { ObjectDelete("SFiboUp"); ObjectDelete("SFiboDn"); ObjectDelete("SFiboIn"); return(0); } //+------------------------------------------------------------------+ //| Draw Fibo //+------------------------------------------------------------------+ int DrawFibo() { if(ObjectFind("SFiboUp") == -1) ObjectCreate("SFiboUp",OBJ_FIBO,0,StartTime,HiPrice,StartTime,HiPrice); else { ObjectSet("SFiboUp",OBJPROP_TIME2, StartTime); ObjectSet("SFiboUp",OBJPROP_TIME1, StartTime); ObjectSet("SFiboUp",OBJPROP_PRICE1,HiPrice); ObjectSet("SFiboUp",OBJPROP_PRICE2,HiPrice); } ObjectSet("SFiboUp",OBJPROP_LEVELCOLOR,UpperFiboColor); ObjectSet("SFiboUp",OBJPROP_FIBOLEVELS,13); ObjectSet("SFiboUp",OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("SFiboUp",0,"%$"); ObjectSet("SFiboUp",OBJPROP_RAY,false); ObjectSet("SFiboUp",OBJPROP_BACK,false); if(ObjectFind("SFiboDn") == -1) ObjectCreate("SFiboDn",OBJ_FIBO,0,StartTime,LoPrice,StartTime,LoPrice); else { ObjectSet("SFiboDn",OBJPROP_TIME2, StartTime); ObjectSet("SFiboDn",OBJPROP_TIME1, StartTime); ObjectSet("SFiboDn",OBJPROP_PRICE1,LoPrice); ObjectSet("SFiboDn",OBJPROP_PRICE2,LoPrice); } ObjectSet("SFiboDn",OBJPROP_LEVELCOLOR,LowerFiboColor); ObjectSet("SFiboDn",OBJPROP_FIBOLEVELS,19); ObjectSet("SFiboDn",OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("SFiboDn",0,"%$"); ObjectSet("SFiboDn",OBJPROP_RAY,false); ObjectSet("SFiboDn",OBJPROP_BACK,false); if(InnerFibs) { if(ObjectFind("SFiboIn") == -1) ObjectCreate("SFiboIn",OBJ_FIBO,0,StartTime,HiPrice,StartTime+PERIOD_H1*60,LoPrice); else { ObjectSet("SFiboIn",OBJPROP_TIME2, StartTime); ObjectSet("SFiboIn",OBJPROP_TIME1, StartTime+PERIOD_H1*60); ObjectSet("SFiboIn",OBJPROP_PRICE1,HiPrice); ObjectSet("SFiboIn",OBJPROP_PRICE2,LoPrice); } ObjectSet("SFiboIn",OBJPROP_LEVELCOLOR,MainFiboColor); ObjectSet("SFiboIn",OBJPROP_FIBOLEVELS,7); ObjectSet("SFiboIn",OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("SFiboIn",0," (0.0) - %$"); ObjectSet("SFiboIn",OBJPROP_FIRSTLEVEL+6,1.000); ObjectSetFiboDescription("SFiboIn",6," (100.0) - %$"); ObjectSet("SFiboIn",OBJPROP_RAY,true); ObjectSet("SFiboIn",OBJPROP_BACK,true); } else ObjectDelete("SFiboIn"); } //+------------------------------------------------------------------+ //| Indicator start function //+------------------------------------------------------------------+ int start() { int shift, indHigh, indLow; shift = iBarShift(NULL,PERIOD_H1,Time[0]) + 2; // PREVIOUS 2 HOUR indHigh = iHighest(NULL, PERIOD_H1, MODE_HIGH, 2, 1); HiPrice = iHigh(NULL,PERIOD_H1,indHigh); indLow = iLowest(NULL, PERIOD_H1, MODE_LOW, 2, 1); LoPrice = iLow (NULL,PERIOD_H1,indLow); StartTime = iTime(NULL,PERIOD_H1,shift); if(TimeDayOfWeek(StartTime)==0/*Sunday*/) // This is NOT modified from Daily code, EXCEPT for Period_H1 {//Add fridays high and low HiPrice = MathMax(HiPrice,iHigh(NULL,PERIOD_H1,shift+1)); LoPrice = MathMin(LoPrice,iLow(NULL,PERIOD_H1,shift+1)); } Range = HiPrice-LoPrice; DrawFibo(); return(0); } //+------------------------------------------------------------------+