BB_Sqz_sBar_mtf_sw





//+------------------------------------------------------------------+
//|                                                    bbsqueeze.mq4 |
//|                Copyright © 2005, Nick Bilak, beluck[AT]gmail.com |
//|BBSqz sidebar(overlay)                            keris f-la  mtf |
//+------------------------------------------------------------------+
//2008fxtsd  ki            

#property indicator_separate_window
#property indicator_buffers 1

#property indicator_color1 Gold

#property indicator_width1 2

#property indicator_maximum 77
#property indicator_minimum 1




extern int TimeFrame=0;

extern int       BolPrd       = 20;
extern int       BolMethod    = 0;
extern int       BolPrice     = 0;
extern double    BolDev       = 2.0;

extern int       KeltPrd      = 20;
extern double    KeltFactor   = 1.5;

extern int        SqzBarLevel = 5;  
extern int        MaxBarsToCount = 1500;


extern string   note_Price = "0C1O 2H3L 4Md 5Tp 6WghC: Md(HL/2)4,Tp(HLC/3)5,Wgh(HLCC/4)6";
extern string   MA_Method  = "SMA0 EMA1 SMMA2 LWMA3";
extern string   TimeFrames = "M1;5,15,30,60H1;240H4;1440D1;10080W1;43200MN";


double ExtMapBuffer1[];


//+------

int init()
  {


   SetIndexStyle(0,DRAW_ARROW,EMPTY);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,EMPTY_VALUE);
   SetIndexArrow(0,158);//159

   SetIndexLabel(0,"BBSqz");


   TimeFrame = MathMax (TimeFrame,Period());

   switch(TimeFrame)
   {
      case 1 : string TimeFrameStr= "M1";     break;
      case 5 :     TimeFrameStr=    "M5";     break;
      case 15 :    TimeFrameStr=    "M15";    break;
      case 30 :    TimeFrameStr=    "M30";    break;
      case 60 :    TimeFrameStr=    "H1";     break;
      case 240 :   TimeFrameStr=    "H4";     break;
      case 1440 :  TimeFrameStr=    "D1";     break;
      case 10080 : TimeFrameStr=    "W1";     break;
      case 43200 : TimeFrameStr=    "MN1";    break;
      default :    TimeFrameStr=    "TF0";
   } 
 
 IndicatorShortName("BBSqz sB("+BolPrd+","+DoubleToStr(BolDev,2)+") ("+KeltPrd+","+DoubleToStr(KeltFactor,2)+") ["+TimeFrameStr+"] ");  

   return(0);
  }

//+---------

int start()
 {
   datetime TimeArray[];
   int    i,y,limit,counted_bars=IndicatorCounted();
     ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame); 

     double diff, std,bbs;

     if(counted_bars<0) return(-1);
     if(counted_bars>0) counted_bars--;
    
  limit = Bars-counted_bars;
  limit = MathMax (limit,TimeFrame/Period());
  limit = MathMin (limit,MaxBarsToCount);
    
    for(i=0,y=0;i<limit;i++)
    {
       if (Time[i]<TimeArray[y]) y++; 

 
   	diff = iATR(NULL,TimeFrame,KeltPrd,y)*KeltFactor;
		 std = iStdDev(NULL,TimeFrame,BolPrd,BolMethod,0,BolPrice,y);

      if (diff != 0)
		bbs = BolDev * std / diff;
      else  bbs = 0;  



      if(bbs<1) ExtMapBuffer1[i]= SqzBarLevel;
            
           else ExtMapBuffer1[i]= EMPTY_VALUE;
           

   }

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



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar


Indicator Curves created:

Implements a curve of type DRAW_ARROW


Indicators Used:

Indicator of the average true range
Standard Deviation indicator


Custom Indicators Used:

Order Management characteristics:

Other Features: