bbhisto

Zajímavá variace na Bollinger Bands. Tentokrát převedená do histogramu.

 

 

//+——————————————————————+
//|                                                      bbhisto.mq4 |
//|                                     Copyright © 2005, Nick Bilak |
//|        http://metatrader.50webs.com/         beluck[at]gmail.com |
//+——————————————————————+
#property copyright „Copyright © 2005, Nick Bilak“
#property link      „http://metatrader.50webs.com/“

#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Lime
#property indicator_color2 Aqua
#property indicator_color3 Magenta
//—- input parameters
extern int bolingerPeriod=13;
//—- buffers
double bb[];
double up[];
double lo[];

int i,j;
//+——————————————————————+
//| Custom indicator initialization function                         |
//+——————————————————————+
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,bb);
SetIndexStyle(1,DRAW_ARROW);
SetIndexBuffer(1,up);
SetIndexEmptyValue(1,EMPTY_VALUE);
SetIndexArrow(1,159);
SetIndexStyle(2,DRAW_ARROW);
SetIndexBuffer(2,lo);
SetIndexEmptyValue(2,EMPTY_VALUE);
SetIndexArrow(2,159);

return(0);
}
//+——————————————————————+
//| Custor indicator deinitialization function                       |
//+——————————————————————+
int deinit()
{
//—-

//—-
return(0);
}
//+——————————————————————+
//| Custom indicator iteration function                              |
//+——————————————————————+
int start()
{
int counted_bars=IndicatorCounted();
int shift,limit;
double diff,d,ku,kd,km;

if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars–;
limit=Bars-31;
if(counted_bars>=31) limit=Bars-counted_bars-1;

for (shift=limit+30;shift>=0;shift–)   {
bb[shift]=0;
d=iStdDev(NULL,0,bolingerPeriod,MODE_SMA,0,PRICE_CLOSE,shift);
if( d<0.0001) d=0.0001;
bb[shift]=((Close[shift]+2*d – iMA(NULL,0,bolingerPeriod,0,MODE_SMA,PRICE_CLOSE,shift)) /
(4*d))*4-2;
bb[shift]=bb[shift]/3;
up[shift]=EMPTY_VALUE;
lo[shift]=EMPTY_VALUE;
if (bb[shift]>0) {
up[shift]=1;
}
if (bb[shift]<0) {
lo[shift]=-1;
}

}
return(0);
}
//+——————————————————————+

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *