_BZ_History_mtf





//+------------------------------------------------------------------+
//|                                                          MTC.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"


/*
Constant Value Description 
DRAW_LINE 0 Drawing line. 
DRAW_SECTION 1 Drawing sections. 
DRAW_HISTOGRAM 2 Drawing histogram. 
DRAW_ARROW 3 Drawing arrows (symbols). 
DRAW_ZIGZAG 4 Drawing sections between even and odd indicator buffers. 
DRAW_NONE 12 No drawing. 

Drawing style. Valid when width=1. It can be any of the following values:

Constant Value Description 
STYLE_SOLID 0 The pen is solid. 
STYLE_DASH 1 The pen is dashed. 
STYLE_DOT 2 The pen is dotted. 
STYLE_DASHDOT 3 The pen has alternating dashes and dots. 
STYLE_DASHDOTDOT 4 The pen has alternating dashes and double dots. 

*/

#property indicator_chart_window

#property indicator_buffers 5
#property indicator_color1 Blue 
#property indicator_color2 Blue
#property indicator_color3 White 
#property indicator_color4 Red
#property indicator_color5 Red
//---- input parameters

extern int myWingDingL  = 250 ;
extern int myWingDingO  = 250 ;
extern int myWingDingS  = 250 ;

extern int myLine   = DRAW_LINE ;
extern int myStyle  = STYLE_DOT ;

extern int myPeriod  = 240;
extern string    session_name = "H4 Open";

extern int       straddle_width=3;
extern int       channel=1;

double lgt[]; 
double lgb[]; 
double opn[]; 
double sht[]; 
double shb[]; 
double open_price;
double rates_h1[2][6];
string OP, BZ, BZW, SZ, SZW;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
  
   SetIndexBuffer(0, lgt);
   SetIndexBuffer(1, lgb);
   SetIndexBuffer(2, opn);
   SetIndexBuffer(3, sht);
   SetIndexBuffer(4, shb);

  
//---- indicators 
   SetIndexStyle(0,myLine, myStyle); 
   SetIndexArrow(0,myWingDingL); 
   SetIndexBuffer(0,lgt); 
   SetIndexEmptyValue(0,0.0); 
   SetIndexStyle(1,myLine, myStyle); 
   SetIndexArrow(1,myWingDingL); 
   SetIndexBuffer(1,lgb); 
   SetIndexEmptyValue(1,0.0); 
   SetIndexStyle(2,myLine, myStyle); 
   SetIndexArrow(2,myWingDingO); 
   SetIndexBuffer(2,opn); 
   SetIndexEmptyValue(2,0.0); 
   SetIndexStyle(3,myLine, myStyle); 
   SetIndexArrow(3,myWingDingS); 
   SetIndexBuffer(3,sht); 
   SetIndexEmptyValue(3,0.0); 
   SetIndexStyle(4,myLine, myStyle); 
   SetIndexArrow(4,myWingDingS); 
   SetIndexBuffer(4,shb); 
   SetIndexEmptyValue(4,0.0); 

//----   
//---- indicators


  OP = "Open " + session_name;
  BZ = "Buy zone " + session_name;
  BZW = "Buy zone width " + session_name;
  SZ = "Sell zone " + session_name;
  SZW = "Sell zone width " + session_name;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----

   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  
//----
   int i, t, dayi, counted_bars = IndicatorCounted();
//---- check for possible errors
   if(counted_bars < 0) 
       return(-1);
//---- last counted bar will be recounted
   if(counted_bars > 0) 
       counted_bars--;  
   int limit = Bars - counted_bars;
//----   
   for(i = limit - 1; i >= 0; i--)
     {
//      
 //  if( TimeDay(Time[i]) != TimeDay(Time[i+1]) ) { int t = i ; }
       t = iBarShift(Symbol(), myPeriod, Time[i], false);

//    opn[i] = iOpen(Symbol(), myPeriod,t);    
  opn[i] = iOpen(NULL, myPeriod,t);  
      
    lgt[i] = opn[i]+straddle_width*Point ;

    lgb[i] = opn[i]+(straddle_width+channel)*Point ;
    
    sht[i] = opn[i]-straddle_width*Point ;
    
    shb[i] = opn[i]-(straddle_width+channel)*Point ;
  
  } 
   
//----
   return(0);
}
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains open prices of each bar


Indicator Curves created:


Implements a curve of type myLine

Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: