_TRO_RANGE_v1





//+-------------------------------------------------------------------+ 
//|                                        _TRO_RANGE.mq4             | 
//|                                                         TRO, 2007 | 
//|                                modified by Skyline on 22 Nov 2007 | 
//+-------------------------------------------------------------------+ 
#property  copyright "Copyright ? 2007, Avery T. Horton, Jr. aka TRO"
#property  link      "http://www.therumpldone.com/"
//---- indicator settings 
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Red
#property  indicator_color2  Green
//---- indicator buffers 
double     RANGEBuffer[];
double     RANGEBuffer1[];
//---- indicator parameters  
extern int   Threshold=20;
extern color CurrentBarColor=White;
extern color ThresholdColor =Aqua;
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int init()
  {
//---- drawing settings 
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
   SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
//---- indicator buffers mapping 
   SetIndexBuffer(0,RANGEBuffer);
   SetIndexBuffer(1,RANGEBuffer1);
//---- name for DataWindow and indicator subwindow label 
   IndicatorShortName("RANGE");
   SetIndexLabel(0,"RANGE");
   SetIndexLabel(1,"RANGE");
//---- initialization done 
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   ObjectDelete("CurrentBarValue");
   ObjectDelete("LabelCurrentBarValue");
  }
//+------------------------------------------------------------------+ 
//| Range                                                            | 
//+------------------------------------------------------------------+ 
int start()
  {
   double HighVal,LowVal;
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted 
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- RANGE counted in the 1-st buffer 
   for(int i=0; i<limit; i++)
     {
      HighVal =iHigh(NULL,0,i);
      LowVal  =iLow(NULL,0,i);
      if ((HighVal-LowVal)/Point>=Threshold) { RANGEBuffer1[i]=(HighVal-LowVal)/Point; }
      else { RANGEBuffer[i]=(HighVal-LowVal)/Point; }
      // Draw Threshold line 
      int win_idx=WindowFind("RANGE");
/*
     ObjectDelete("Threshold"); 
     ObjectCreate("Threshold", OBJ_HLINE, win_idx, Time[0], Threshold); 
     ObjectSet("Threshold", OBJPROP_COLOR, ThresholdColor); 
     ObjectSet("Threshold", OBJPROP_STYLE, STYLE_SOLID); 
     ObjectSet("Threshold", OBJPROP_WIDTH, 1); 
     ObjectSet("Threshold", OBJPROP_BACK, true);   
      Label for Threshold 
     ObjectDelete("LabelThreshold"); 
     ObjectCreate("LabelThreshold", OBJ_TEXT, win_idx, Time[0], Threshold); 
     ObjectSet("LabelThreshold", OBJPROP_COLOR, ThresholdColor); 
     ObjectSetText("LabelThreshold", "Threshold",8); 
     ObjectSet("LabelThreshold", OBJPROP_ANGLE, 0); 
*/
      // Draw Current Bar line value 
      ObjectDelete("CurrentBarValue");
      ObjectCreate("CurrentBarValue", OBJ_HLINE, win_idx, Time[0], (iHigh(NULL,0,0)-iLow(NULL,0,0))/Point);
      ObjectSet("CurrentBarValue", OBJPROP_COLOR, CurrentBarColor);
      ObjectSet("CurrentBarValue", OBJPROP_STYLE, STYLE_SOLID);
      ObjectSet("CurrentBarValue", OBJPROP_WIDTH, 1);
      ObjectSet("CurrentBarValue", OBJPROP_BACK, true);
      // Label per Current Bar Line 
      // ObjectDelete("LabelCurrentBarValue"); 
      // ObjectCreate("LabelCurrentBarValue", OBJ_TEXT, win_idx, Time[0], (iHigh(NULL,0,0)-iLow(NULL,0,0))/Point); 
      ObjectSet("LabelCurrentBarValue", OBJPROP_COLOR, CurrentBarColor);
      ObjectSetText("LabelCurrentBarValue", "Current Bar value",8);
      ObjectSet("LabelCurrentBarValue", OBJPROP_ANGLE, 0);
     }
//---- done 
   return(0);
  }
//------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open time of each bar


Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: