Price Data Components
Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
_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);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---