//+------------------------------------------------------------------+ //| BBFiboX_mtf EMA13shft3 Bands.mq4 | //| Copyright c 2005, MetaQuotes Software Corp. | //|mtf forexTSD.com mladenfxbs4lodolLockhart http:www.metaquotes.net| //+------------------------------------------------------------------+ #property copyright "Copyright c 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_chart_window #property indicator_buffers 7 #property indicator_color1 DimGray #property indicator_color2 C'0,128,0' #property indicator_color3 C'128,0,0' #property indicator_color4 C'0,192,0' #property indicator_color5 C'192,0,0' #property indicator_color6 C'0,255,0' #property indicator_color7 C'255,0,0' //---- indicator parameters extern int TimeFrame = 0; extern int BandsPeriod=13; extern int BandsMAMethod = MODE_EMA; //"SMA0,EMA1,SMMA2,LWMA3;//price Close extern int BandsShift=0; extern double BandsFiboDeviation1=1.618; extern double BandsFiboDeviation2=2.618; extern double BandsFiboDeviation3=3.618; // extern string note_TimeFrames = "M1;5,15,30,60H1;240H4;1440D1;10080W1;43200MN"; extern string note_BandsMAMethod = "SMA0,EMA1,SMMA2,LWMA3"; string IndicatorFileName; //---- buffers double MovingBuffer[]; double UpperBuffer1[]; double LowerBuffer1[]; double UpperBuffer2[]; double LowerBuffer2[]; double UpperBuffer3[]; double LowerBuffer3[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexBuffer(0,MovingBuffer); SetIndexBuffer(1,UpperBuffer1); SetIndexBuffer(2,LowerBuffer1); SetIndexBuffer(3,UpperBuffer2); SetIndexBuffer(4,LowerBuffer2); SetIndexBuffer(5,UpperBuffer3); SetIndexBuffer(6,LowerBuffer3); //---- if(TimeFrame==0) TimeFrame = Period(); // SetIndexShift(0,BandsShift*TimeFrame/Period()); SetIndexShift(1,BandsShift*TimeFrame/Period()); SetIndexShift(2,BandsShift*TimeFrame/Period()); SetIndexShift(3,BandsShift*TimeFrame/Period()); SetIndexShift(4,BandsShift*TimeFrame/Period()); SetIndexShift(5,BandsShift*TimeFrame/Period()); SetIndexShift(6,BandsShift*TimeFrame/Period()); SetIndexLabel(0,"BBFiboMA("+BandsPeriod+")["+TimeFrame+"]"); SetIndexLabel(1,"BBFibo("+BandsPeriod+")Up1 "+BandsFiboDeviation1+"["+TimeFrame+"]"); SetIndexLabel(2,"BBFibo("+BandsPeriod+")Lo1 "+BandsFiboDeviation1+"["+TimeFrame+"]"); SetIndexLabel(3,"BBFibo("+BandsPeriod+")Up2 "+BandsFiboDeviation2+"["+TimeFrame+"]"); SetIndexLabel(4,"BBFibo("+BandsPeriod+")Lo2 "+BandsFiboDeviation2+"["+TimeFrame+"]"); SetIndexLabel(5,"BBFibo("+BandsPeriod+")Up3 "+BandsFiboDeviation3+"["+TimeFrame+"]"); SetIndexLabel(6,"BBFibo("+BandsPeriod+")Lo3 "+BandsFiboDeviation3+"["+TimeFrame+"]"); for (int in=0; in0) limit++; for(i=0; iBandsPeriod-1) i=Bars-counted_bars-1; while(i>=0) { sum=0.0; k=i+BandsPeriod-1; oldval=MovingBuffer[i]; while(k>=i) { newres=Close[k]-oldval; sum+=newres*newres; k--; } deviation=BandsFiboDeviation1*MathSqrt(sum/BandsPeriod); UpperBuffer1[i]=oldval+deviation; LowerBuffer1[i]=oldval-deviation; deviation=BandsFiboDeviation2*MathSqrt(sum/BandsPeriod); UpperBuffer2[i]=oldval+deviation; LowerBuffer2[i]=oldval-deviation; deviation=BandsFiboDeviation3*MathSqrt(sum/BandsPeriod); UpperBuffer3[i]=oldval+deviation; LowerBuffer3[i]=oldval-deviation; i--; } //---- return(0); } //+------------------------------------------------------------------+