_OHMLC





//+------------------------------------------------------------------+
//|                             _OHMLC                                |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window 

#property indicator_buffers 5

#property indicator_color1 White 
#property indicator_color2 Lime
#property indicator_color3 MediumTurquoise 
#property indicator_color4 Red
#property indicator_color5 Yellow
#property indicator_color6 Orange
#property indicator_color7 OrangeRed

//---- For the small screens
//extern string    Display_infos         = "=== If true, displayed on the chart ===";
//extern bool      display_on_chart      =  true ;  // If true, the open trade analysis, daily pivots and daily range will be displayed on the chart window

// indicators parameters

extern bool iPlotChart = false ;
extern bool iPlotGauge = true ;

extern int myPeriod  = 1440 ;
extern int myChartY = 150 ;
extern int myStyle  = 2 ;

extern int myWingDing  = 115 ;
extern int myOffset  = 1 ; 

// indicators parameters


//---- buffers
double P1Buffer[];
double P2Buffer[];
double P3Buffer[];
double P4Buffer[];
double P5Buffer[];
double P6Buffer[];
double P7Buffer[];


//int myPeriod = PERIOD_D1;

int TimeZone=0;
bool pivots = true;
bool alert = true;

double yesterday_high=0;
double yesterday_open=0;
double yesterday_low=0;
double yesterday_close=0;
double today_open=0;
double today_high=0;
double today_low=0;


double rates_h1[2][6];
double rates_d1[2][6];

double Q,H,L,F;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- name for indicator window

   string short_name=" ";
   IndicatorShortName(short_name);
   SetIndexBuffer(0, P1Buffer);
   SetIndexBuffer(1, P2Buffer);
   SetIndexBuffer(2, P3Buffer);
   SetIndexBuffer(3, P4Buffer);
   SetIndexBuffer(4, P5Buffer);
   SetIndexBuffer(5, P6Buffer);
   SetIndexBuffer(6, P7Buffer);
//----

SetIndexArrow(0, myWingDing); 
SetIndexArrow(1, myWingDing); 
SetIndexArrow(2, myWingDing); 
SetIndexArrow(3, myWingDing); 
SetIndexArrow(4, myWingDing); 
SetIndexArrow(5, myWingDing); 
SetIndexArrow(6, myWingDing); 
 


   SetIndexStyle(0, DRAW_ARROW, myStyle, 1);
   SetIndexStyle(1, DRAW_ARROW, myStyle, 1);   
   SetIndexStyle(2, DRAW_ARROW, myStyle, 1);
   SetIndexStyle(3, DRAW_ARROW, myStyle, 1);
   SetIndexStyle(4, DRAW_ARROW, myStyle, 1);
   SetIndexStyle(5, DRAW_ARROW, myStyle, 1);
   SetIndexStyle(6, DRAW_ARROW, myStyle, 1);   
   return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {

  int j,total=OrdersTotal();
   for(j=0;j<total;j++)
   {
    OrderSelect(j, SELECT_BY_POS, MODE_TRADES);
   }
   

   double x;
  
   int i, 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--)
     {
       dayi = iBarShift(Symbol(), myPeriod, Time[i], false);
//   int dayi = iBarShift(Symbol(), myPeriod, Time[0], false);
 
//   double yesterday_open  = iOpen(Symbol(), myPeriod,dayi + 1); 
//   double yesterday_high  = iHigh(Symbol(), myPeriod,dayi + 1);
//   double yesterday_low   = iLow(Symbol(), myPeriod,dayi + 1);
//   double yesterday_close = iClose(Symbol(), myPeriod,dayi + 1);

   double day_high        = iHigh(Symbol(), myPeriod,dayi + myOffset );
   double day_low         = iLow(Symbol(), myPeriod,dayi + myOffset );
   double day_close       = iClose(Symbol(), myPeriod,dayi + myOffset ); 
   double day_open        = iOpen(Symbol(), myPeriod,dayi + myOffset ); 
   
	double xRange = (day_high - day_low) ;
	double xMid   = (day_high + day_low)*0.50 ;
			
	double R3 = day_open ; 	// Open	
   double R2 = day_high ; 	// High
   double R1 = xMid ;	// Middle
   double P =  day_low  ; // Low	
   double S1 = day_close ; // Close	
//   double S2 = yesterday_low - (xRange * 0.382 ) ; // fib 382	
//	double S3 = yesterday_low - (xRange * 0.618 ) ; // fib 618

if ( iPlotChart ) { 	

	P1Buffer[i] = R3 ;
	P2Buffer[i] = R2 ;
   P3Buffer[i] = R1 ;
	P4Buffer[i] = P ;
	P5Buffer[i] = S1 ;
//   P6Buffer[i] = S2 ;
//   P7Buffer[i] = S3 ;
    }

} // iPlotChart    

if ( iPlotGauge ) {  

   color color_r3=Red;
   color color_r2=Red;
   color color_r1=Red;
   color color_p =Red;
   color color_s1=Red;
   color color_s2=Red;
   color color_s3=Red;  
   	
	if( day_close < R3) { color_r3=Lime; } 
	if( day_close < R2) { color_r2=Lime; } 	
	if( day_close < R1) { color_r1=Lime; } 
	if( day_close < P ) { color_p=Lime; } 
	if( day_close < S1) { color_s1=Lime; } 
		
//	if( day_close < S2) { color_s2=Lime; }		
//	if( day_close < S3) { color_s3=Lime; }		
		
	int Precision, dig;	

   if( StringFind( Symbol(), "JPY", 0) != -1 ) { Precision = 100; dig = 2;}
   else                                        { Precision = 10000; dig = 4; }

 
   color color_common_line = White;
   color color_common_text = White;
   color color_ind = PowderBlue;
   color color_indic;
   color color_title =Orchid;
    
int sPeriod= Period();

if (myPeriod != NULL){ sPeriod= myPeriod ; color_title=Yellow; }
   
     	
//---- Set Pivots labels


   
   int WindowToUse;
   int Corner_line, Xdist_line;
   int Corner_text, Corner_ValueOHMLC, Xdist_text, Xdist_ValueOHMLC;
   int Ydist_line5;
   int Corner_pivots, Xdist_pivots, Ydist_pivots;
   int Ydist_R3, Ydist_R2, Ydist_R1, Ydist_PV, Ydist_S1, Ydist_S2, Ydist_S3;
  
   int YdistInc ;
    WindowToUse =  0;
    Corner_line = 1;
    Corner_text = 1; Corner_ValueOHMLC = 1;
    Xdist_line = 21; Xdist_text = 93; Xdist_ValueOHMLC = 23;
    Corner_pivots = 1; Xdist_pivots = 21; 
    Ydist_pivots = myChartY;  
    Ydist_line5 = Ydist_pivots + 11; YdistInc = 15 ;
    Ydist_R3 = Ydist_pivots + 25; 
    Ydist_R2 = Ydist_R3 + YdistInc; 
    Ydist_R1 = Ydist_R3 + YdistInc*2; 
    Ydist_PV = Ydist_R3 + YdistInc*3; 
    Ydist_S1 = Ydist_R3 + YdistInc*4; 
    Ydist_S2 = Ydist_R3 + YdistInc*5; 
    Ydist_S3 = Ydist_R3 + YdistInc*6;

   ObjectCreate("OHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("OHMLC",sPeriod + " OHMLC ",9, "Verdana", color_title);
   ObjectSet("OHMLC", OBJPROP_CORNER, Corner_pivots);
   ObjectSet("OHMLC", OBJPROP_XDISTANCE, Xdist_pivots);
   ObjectSet("OHMLC", OBJPROP_YDISTANCE, Ydist_pivots);
   
   ObjectCreate("line5OHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("line5OHMLC","---------------------",7, "Verdana", color_title);
   ObjectSet("line5OHMLC", OBJPROP_CORNER, Corner_line);
   ObjectSet("line5OHMLC", OBJPROP_XDISTANCE, Xdist_line);
   ObjectSet("line5OHMLC", OBJPROP_YDISTANCE, Ydist_line5);
   
   ObjectCreate("R3_LabelOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("R3_LabelOHMLC","Open",9, "Verdana", White);
   ObjectSet("R3_LabelOHMLC", OBJPROP_CORNER, Corner_text);
   ObjectSet("R3_LabelOHMLC", OBJPROP_XDISTANCE, Xdist_text);
   ObjectSet("R3_LabelOHMLC", OBJPROP_YDISTANCE, Ydist_R3);
   
   ObjectCreate("R3_ValueOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("R3_ValueOHMLC"," "+DoubleToStr(R3,dig),9, "Verdana", color_r3);
   ObjectSet("R3_ValueOHMLC", OBJPROP_CORNER, Corner_ValueOHMLC);
   ObjectSet("R3_ValueOHMLC", OBJPROP_XDISTANCE, Xdist_ValueOHMLC);
   ObjectSet("R3_ValueOHMLC", OBJPROP_YDISTANCE, Ydist_R3);
   
   ObjectCreate("R2_LabelOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("R2_LabelOHMLC","High",9, "Verdana", Lime);
   ObjectSet("R2_LabelOHMLC", OBJPROP_CORNER, Corner_text);
   ObjectSet("R2_LabelOHMLC", OBJPROP_XDISTANCE, Xdist_text);
   ObjectSet("R2_LabelOHMLC", OBJPROP_YDISTANCE, Ydist_R2);
   
   ObjectCreate("R2_ValueOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("R2_ValueOHMLC"," "+DoubleToStr(R2,dig),9, "Verdana", color_r2);
   ObjectSet("R2_ValueOHMLC", OBJPROP_CORNER, Corner_ValueOHMLC);
   ObjectSet("R2_ValueOHMLC", OBJPROP_XDISTANCE, Xdist_ValueOHMLC);
   ObjectSet("R2_ValueOHMLC", OBJPROP_YDISTANCE, Ydist_R2);
   
   ObjectCreate("R1_LabelOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("R1_LabelOHMLC","Mid Pt",9, "Verdana", MediumTurquoise );
   ObjectSet("R1_LabelOHMLC", OBJPROP_CORNER, Corner_text);
   ObjectSet("R1_LabelOHMLC", OBJPROP_XDISTANCE, Xdist_text);
   ObjectSet("R1_LabelOHMLC", OBJPROP_YDISTANCE, Ydist_R1);
   
   ObjectCreate("R1_ValueOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("R1_ValueOHMLC"," "+DoubleToStr(R1,dig),9, "Verdana", color_r1);
   ObjectSet("R1_ValueOHMLC", OBJPROP_CORNER, Corner_ValueOHMLC);
   ObjectSet("R1_ValueOHMLC", OBJPROP_XDISTANCE, Xdist_ValueOHMLC);
   ObjectSet("R1_ValueOHMLC", OBJPROP_YDISTANCE, Ydist_R1);
   
   ObjectCreate("Pivot_LabelOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("Pivot_LabelOHMLC","Low",9, "Verdana", Red);
   ObjectSet("Pivot_LabelOHMLC", OBJPROP_CORNER, Corner_text);
   ObjectSet("Pivot_LabelOHMLC", OBJPROP_XDISTANCE, Xdist_text);
   ObjectSet("Pivot_LabelOHMLC", OBJPROP_YDISTANCE, Ydist_PV);
   
   ObjectCreate("Pivot_ValueOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("Pivot_ValueOHMLC"," "+DoubleToStr(P,dig),9, "Verdana", color_p);
   ObjectSet("Pivot_ValueOHMLC", OBJPROP_CORNER, Corner_ValueOHMLC);
   ObjectSet("Pivot_ValueOHMLC", OBJPROP_XDISTANCE, Xdist_ValueOHMLC);
   ObjectSet("Pivot_ValueOHMLC", OBJPROP_YDISTANCE, Ydist_PV);
   
   ObjectCreate("S1_LabelOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("S1_LabelOHMLC","Close",9, "Verdana", Yellow);
   ObjectSet("S1_LabelOHMLC", OBJPROP_CORNER, Corner_text);
   ObjectSet("S1_LabelOHMLC", OBJPROP_XDISTANCE, Xdist_text);
   ObjectSet("S1_LabelOHMLC", OBJPROP_YDISTANCE, Ydist_S1);
   
   ObjectCreate("S1_ValueOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("S1_ValueOHMLC"," "+DoubleToStr(S1,dig),9, "Verdana", color_s1);
   ObjectSet("S1_ValueOHMLC", OBJPROP_CORNER, Corner_ValueOHMLC);
   ObjectSet("S1_ValueOHMLC", OBJPROP_XDISTANCE, Xdist_ValueOHMLC);
   ObjectSet("S1_ValueOHMLC", OBJPROP_YDISTANCE, Ydist_S1);
/*   
   ObjectCreate("S2_LabelOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("S2_LabelOHMLC","-.382",9, "Verdana", Orange);
   ObjectSet("S2_LabelOHMLC", OBJPROP_CORNER, Corner_text);
   ObjectSet("S2_LabelOHMLC", OBJPROP_XDISTANCE, Xdist_text);
   ObjectSet("S2_LabelOHMLC", OBJPROP_YDISTANCE, Ydist_S2);
   
   ObjectCreate("S2_ValueOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("S2_ValueOHMLC"," "+DoubleToStr(S2,dig),9, "Verdana", color_s2);
   ObjectSet("S2_ValueOHMLC", OBJPROP_CORNER, Corner_ValueOHMLC);
   ObjectSet("S2_ValueOHMLC", OBJPROP_XDISTANCE, Xdist_ValueOHMLC);
   ObjectSet("S2_ValueOHMLC", OBJPROP_YDISTANCE, Ydist_S2);
   
   ObjectCreate("S3_LabelOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("S3_LabelOHMLC","-.618",9, "Verdana", OrangeRed);
   ObjectSet("S3_LabelOHMLC", OBJPROP_CORNER, Corner_text);
   ObjectSet("S3_LabelOHMLC", OBJPROP_XDISTANCE, Xdist_text);
   ObjectSet("S3_LabelOHMLC", OBJPROP_YDISTANCE, Ydist_S3);
   
   ObjectCreate("S3_ValueOHMLC", OBJ_LABEL, WindowToUse, 0, 0);
   ObjectSetText("S3_ValueOHMLC"," "+DoubleToStr(S3,dig),9, "Verdana", color_s3);
   ObjectSet("S3_ValueOHMLC", OBJPROP_CORNER, Corner_ValueOHMLC);
   ObjectSet("S3_ValueOHMLC", OBJPROP_XDISTANCE, Xdist_ValueOHMLC);
   ObjectSet("S3_ValueOHMLC", OBJPROP_YDISTANCE, Ydist_S3);
   
*/   

} // iPlotGauge

   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   
   ObjectDelete("R3_LabelOHLMC");
   ObjectDelete("R3_ValueOHLMC");
   ObjectDelete("R2_LabelOHLMC");
   ObjectDelete("R2_ValueOHLMC");
   ObjectDelete("R1_LabelOHLMC");
   ObjectDelete("R1_ValueOHLMC");
   ObjectDelete("Pivot_LabelOHLMC");
   ObjectDelete("Pivot_ValueOHLMC");
   ObjectDelete("S1_LabelOHLMC");
   ObjectDelete("S1_ValueOHLMC");
   ObjectDelete("S2_LabelOHLMC");
   ObjectDelete("S2_ValueOHLMC");
   ObjectDelete("S3_LabelOHLMC");
   ObjectDelete("S3_ValueOHLMC");

   ObjectDelete("OHMLC");
   ObjectDelete("line5OHMLC");

   return(0);
  }



Sample





Analysis



Market Information Used:

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


Indicator Curves created:


Implements a curve of type DRAW_ARROW

Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

Other Features: