//+------------------------------------------------------------------+ //| Waddah Attar Monthly Fibo | //| Copyright © 2007, Waddah Attar | //| Waddah Attar waddahattar@hotmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, Waddah Attar waddahattar@hotmail.com" #property link "waddahattar@hotmail.com" //---- #property indicator_chart_window #property indicator_buffers 7 #property indicator_color1 Orange #property indicator_color2 Orange #property indicator_color3 DarkOrange #property indicator_color4 DarkOrange #property indicator_color5 DarkOrange #property indicator_color6 DarkOrange #property indicator_color7 DarkOrange extern bool ShowPercent=true; //---- buffers double P1Buffer[]; double P2Buffer[]; double P3Buffer[]; double P4Buffer[]; double P5Buffer[]; double P6Buffer[]; double P7Buffer[]; //---- int myPeriod = PERIOD_MN1; //---- double Q,H,L,F; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexBuffer(0, P1Buffer); SetIndexBuffer(1, P2Buffer); SetIndexBuffer(2, P3Buffer); SetIndexBuffer(3, P4Buffer); SetIndexBuffer(4, P5Buffer); SetIndexBuffer(5, P6Buffer); SetIndexBuffer(6, P7Buffer); //---- SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 3); SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 3); SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 1); SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 1); SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 1); SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 1); SetIndexStyle(6, DRAW_LINE, STYLE_SOLID, 1); //---- Comment("Waddah Attar Monthly Fibo"); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("MonthF1"); ObjectDelete("MonthF2"); ObjectDelete("MonthF3"); ObjectDelete("MonthF4"); ObjectDelete("MonthF5"); ObjectDelete("MonthF6"); ObjectDelete("MonthF7"); ObjectDelete("txtMonthF1"); ObjectDelete("txtMonthF2"); ObjectDelete("txtMonthF3"); ObjectDelete("txtMonthF4"); ObjectDelete("txtMonthF5"); ObjectDelete("txtMonthF6"); ObjectDelete("txtMonthF7"); ObjectDelete("MPercent"); Comment(""); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i, dayi, counted_bars = IndicatorCounted(); //---- check for possible errors if(counted_bars < 0) return(-1); //---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; int limit = Bars - counted_bars; //---- for(i = limit - 1; i >= 0; i--) { dayi = iBarShift(Symbol(), myPeriod, Time[i], false); H=iHigh(Symbol(), myPeriod,dayi + 1); L=iLow(Symbol(), myPeriod,dayi + 1); Q = (H-L); //---- P1Buffer[i] = H; SetPrice("MonthF1", Time[i], H, indicator_color1); SetText("txtMonthF1", "Monthly High ", Time[i], H, indicator_color1); //---- P2Buffer[i] = L; SetPrice("MonthF2", Time[i], L, indicator_color2); SetText("txtMonthF2", "Monthly Low ", Time[i], L, indicator_color2); //---- P3Buffer[i] = L+(Q*0.236); SetPrice("MonthF3", Time[i], L+(Q*0.236), indicator_color3); SetText("txtMonthF3", "Monthly 23.6% ", Time[i], L+(Q*0.236), indicator_color3); //---- P4Buffer[i] = L+(Q*0.382); SetPrice("MonthF4", Time[i], L+(Q*0.382), indicator_color4); SetText("txtMonthF4", "Monthly 38.2% ", Time[i], L+(Q*0.382), indicator_color4); //---- P5Buffer[i] = L+(Q*0.50); SetPrice("MonthF5", Time[i], L+(Q*0.50), indicator_color5); SetText("txtMonthF5", "Monthly 50% ", Time[i], L+(Q*0.50), indicator_color5); //---- P6Buffer[i] = L+(Q*0.618); SetPrice("MonthF6", Time[i], L+(Q*0.618), indicator_color6); SetText("txtMonthF6", "Monthly 61.8% ", Time[i], L+(Q*0.618), indicator_color6); //---- P7Buffer[i] = L+(Q*0.764); SetPrice("MonthF7", Time[i], L+(Q*0.764), indicator_color7); SetText("txtMonthF7", "Monthly 76.4% ", Time[i], L+(Q*0.764), indicator_color7); } F=(Bid-L)/Q*100; if (ShowPercent==true) { SetLabel("MPercent","M Fibo="+DoubleToStr(F,2)+"%",1,51,"Simplified Arabic Fixed",20,0,indicator_color1); } else { ObjectDelete("WPercent"); } //---- return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void SetPrice(string name, datetime Tm, double Prc, color clr) { if(ObjectFind(name) == -1) { ObjectCreate(name, OBJ_ARROW, 0, Tm, Prc); ObjectSet(name, OBJPROP_COLOR, clr); ObjectSet(name, OBJPROP_WIDTH, 1); ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); } else { ObjectSet(name, OBJPROP_TIME1, Tm); ObjectSet(name, OBJPROP_PRICE1, Prc); ObjectSet(name, OBJPROP_COLOR, clr); ObjectSet(name, OBJPROP_WIDTH, 1); ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void SetText(string name, string txt, datetime Tm, double Prc, color clr) { if(ObjectFind(name) == -1) { ObjectCreate(name, OBJ_TEXT, 0, Tm, Prc); ObjectSetText(name, txt, 10, "Times New Roman", clr); ObjectSet(name, OBJPROP_CORNER, 2); } else { ObjectSet(name, OBJPROP_TIME1, Tm); ObjectSet(name, OBJPROP_PRICE1, Prc); ObjectSetText(name, txt, 10, "Times New Roman", clr); ObjectSet(name, OBJPROP_CORNER, 2); } } void SetLabel(string name,string txt,int x,int y,string font,int size,int angle,color clr) { int idx=0; if(ObjectFind(name) == -1) { ObjectCreate(name, OBJ_LABEL, idx, 0, 0); ObjectSetText(name, txt, size, font, clr); ObjectSet(name, OBJPROP_XDISTANCE, x); ObjectSet(name, OBJPROP_YDISTANCE, y); ObjectSet(name, OBJPROP_CORNER, 2); ObjectSet(name, OBJPROP_ANGLE, angle); } else { ObjectSet(name, OBJPROP_XDISTANCE, x); ObjectSet(name, OBJPROP_YDISTANCE, y); ObjectSetText(name, txt, size, font, clr); ObjectSet(name, OBJPROP_CORNER, 2); ObjectSet(name, OBJPROP_ANGLE, angle); } } //+------------------------------------------------------------------+