//+------------------------------------------------------------------+ //| Brooky_Fibbed_Donchian.mq4 | //| Copyright © 2010, www.Brooky-Indicators.com. | //| http://www.www.Brooky-Indicators.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2010, www.Brooky-Indicators.com." #property link "http://www.www.Brooky-Indicators.com" extern string Hello_From = " www.Brooky-Indicators.com "; //---- indicator settings #property indicator_chart_window #property indicator_buffers 7 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_width1 1 #property indicator_width2 1 #property indicator_color3 Orange #property indicator_color4 DodgerBlue #property indicator_width3 1 #property indicator_width4 1 #property indicator_color5 Yellow #property indicator_color6 Aqua #property indicator_width5 1 #property indicator_width6 1 #property indicator_color7 Aqua #property indicator_width7 2 //---- indicator parameters extern string Setting_1 = "+-- Bars Back between Peaks and Troughs --+"; extern int periods=96; extern string Setting_1a = "+-- Use Hi Lo or Close Prices --+"; extern bool use_closes = false; extern int shift_ahead =0; extern string Setting_2 = "+-- % change: Reduces by % value --+"; extern int percent_range_change=50; extern string Setting_3 = "+-- Inner Line Fib Levels --+"; extern double fib1 = 0.236; extern double fib2 = 0.382; extern string Setting_4 = "+-- Fib Line Style 0 to 4 --+"; extern string Setting_4a = "+ 0=Solid, 1=Dash, 2=DashDot, 3=DashDotDot +"; extern int line_style = 2; extern string Setting_5 = "+-- Centre Line Style 0 to 4 --+"; extern int mean_line_style = 0; extern string Setting_6 = "+-- See Line Prices --+"; extern bool see_all_prices = false; extern bool see_main_prices = true; extern int label_size = 2; extern string Setting_7 = "+-- Sound Alert --+"; extern bool alerts_on =true; extern bool alert_mean_line_cross = true; extern bool alert_channel_line_cross = true; //---- indicator buffers double upper[]; double lower[]; double inupper[]; double inlower[]; double in2upper[]; double in2lower[]; double mean[]; int init() { //---- indicator buffers SetIndexBuffer(0,upper); SetIndexStyle(0,DRAW_LINE,line_style); SetIndexLabel(0,"Upper"); SetIndexShift(0,shift_ahead); SetIndexBuffer(1,lower); SetIndexStyle(1,DRAW_LINE,line_style); SetIndexLabel(1,"Lower"); SetIndexShift(1,shift_ahead); SetIndexBuffer(2,inupper); SetIndexStyle(2,DRAW_LINE,line_style); SetIndexLabel(2,"Upper Less"+DoubleToStr(fib1*1000,0)); SetIndexShift(2,shift_ahead); SetIndexBuffer(3,inlower); SetIndexStyle(3,DRAW_LINE,line_style); SetIndexLabel(3,"Lower Plus"+DoubleToStr(fib1*1000,0)); SetIndexShift(3,shift_ahead); SetIndexBuffer(4,in2upper); SetIndexStyle(4,DRAW_LINE,line_style); SetIndexLabel(4,"Upper Less"+DoubleToStr(fib2*1000,0)); SetIndexShift(4,shift_ahead); SetIndexBuffer(5,in2lower); SetIndexStyle(5,DRAW_LINE,line_style); SetIndexLabel(5,"Lower Plus"+DoubleToStr(fib2*1000,0)); SetIndexShift(5,shift_ahead); SetIndexBuffer(6,mean); SetIndexStyle(6,DRAW_LINE,mean_line_style); SetIndexLabel(6,"Mean"); SetIndexShift(6,shift_ahead); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Brooky Fibbed Donchian("+periods+")"); return(0); } //+------------------------------------------------------------------+ int deinit() { //---- ObjectDelete("Price1"); ObjectDelete("Price2"); ObjectDelete("Price3"); ObjectDelete("Price4"); ObjectDelete("Price5"); ObjectDelete("Price6"); ObjectDelete("Price7"); //---- return(0); } //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- last counted bar will be recounted if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; double up,lo,hilo,newup,newlo,newhilo,hnow,lnow; //---- calculate values for(int i=0; imean[i] && lnowupper[i] && lnowlower[i] && lnow