Indicators Used
0
Views
0
Downloads
0
Favorites
BBFiboM_mtf
//+------------------------------------------------------------------+
//| BBFiboX_mtf EMA13shft3 Bands.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//|mtf forexTSD.com mladenfxbs4lodolLockhart http:www.metaquotes.net|
//+------------------------------------------------------------------+
#property copyright "Copyright © 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; in<indicator_buffers; in++) SetIndexDrawBegin(in,BandsPeriod+ BandsShift);
if (TimeFrame < Period()) TimeFrame = Period();
IndicatorFileName = WindowExpertName();
//----
return(0);
}
//+------------------------------------------------------------------+
//| Bollinger Bands |
//+------------------------------------------------------------------+
int start()
{
int counted_bars1=IndicatorCounted();
int limit1,i1;
if(counted_bars1 < 0) return(-1);
limit1 = Bars-counted_bars1;
if (TimeFrame != Period())
{
limit1 = MathMax(limit1,TimeFrame/Period());
datetime TimeArray[];
ArrayCopySeries(TimeArray ,MODE_TIME ,NULL,TimeFrame);
for(i1=0,int y=0; i1<limit1; i1++)
{
// if (TimeFrame < Period()) TimeFrame = Period();
if(Time[i1]<TimeArray[y]) y++;
MovingBuffer [i1] = iCustom(NULL,TimeFrame,IndicatorFileName, 0, BandsPeriod,BandsMAMethod,0,BandsFiboDeviation1, BandsFiboDeviation2,BandsFiboDeviation3, 0,y);
UpperBuffer1 [i1] = iCustom(NULL,TimeFrame,IndicatorFileName, 0, BandsPeriod,BandsMAMethod,0,BandsFiboDeviation1, BandsFiboDeviation2,BandsFiboDeviation3, 1,y);
LowerBuffer1 [i1] = iCustom(NULL,TimeFrame,IndicatorFileName, 0, BandsPeriod,BandsMAMethod,0,BandsFiboDeviation1, BandsFiboDeviation2,BandsFiboDeviation3, 2,y);
UpperBuffer2 [i1] = iCustom(NULL,TimeFrame,IndicatorFileName, 0, BandsPeriod,BandsMAMethod,0,BandsFiboDeviation1, BandsFiboDeviation2,BandsFiboDeviation3, 3,y);
LowerBuffer2 [i1] = iCustom(NULL,TimeFrame,IndicatorFileName, 0, BandsPeriod,BandsMAMethod,0,BandsFiboDeviation1, BandsFiboDeviation2,BandsFiboDeviation3, 4,y);
UpperBuffer3 [i1] = iCustom(NULL,TimeFrame,IndicatorFileName, 0, BandsPeriod,BandsMAMethod,0,BandsFiboDeviation1, BandsFiboDeviation2,BandsFiboDeviation3, 5,y);
LowerBuffer3 [i1] = iCustom(NULL,TimeFrame,IndicatorFileName, 0, BandsPeriod,BandsMAMethod,0,BandsFiboDeviation1, BandsFiboDeviation2,BandsFiboDeviation3, 6,y);
}
return(0);
}
int i,k,counted_bars=IndicatorCounted();
double deviation;
double sum,oldval,newres;
//----
if(Bars<=BandsPeriod) return(0);
//---- initial zero
if(counted_bars<1)
for(i=1;i<=BandsPeriod;i++)
{
MovingBuffer[Bars-i]=EMPTY_VALUE;
UpperBuffer1[Bars-i]=EMPTY_VALUE;
LowerBuffer1[Bars-i]=EMPTY_VALUE;
UpperBuffer2[Bars-i]=EMPTY_VALUE;
LowerBuffer2[Bars-i]=EMPTY_VALUE;
UpperBuffer3[Bars-i]=EMPTY_VALUE;
LowerBuffer3[Bars-i]=EMPTY_VALUE;
}
//----
int limit=Bars-counted_bars;
if(counted_bars>0) limit++;
for(i=0; i<limit; i++)
MovingBuffer[i]=iMA(NULL,0,BandsPeriod,BandsMAMethod,0,PRICE_CLOSE,i);
//----
i=Bars-BandsPeriod+1;
if(counted_bars>BandsPeriod-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);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---