//+------------------------------------------------------------------+
//| MTC.mq4 |
//| Copyright © 2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
// Thanks Avery Da RumpledOne for sharing his brilliant ideas
#property indicator_chart_window
//---- input parameters
extern string session_name = "Hour open";
extern color session_color = White;
//extern int open_time=8;
extern int straddle_width=3;
extern int channel=1;
double open_price;
double rates_h1[2][6];
string OP, BZ, BZW, SZ, SZW;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 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()
{
//----
ObjectDelete(OP);
ObjectDelete(BZ);
ObjectDelete(BZW);
ObjectDelete(SZ);
ObjectDelete(SZW);
ObjectDelete(session_name);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
/* ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);
for (int i=0;i<=25;i++)
{
if (TimeMinute(rates_h1[i][0])==0 && (TimeHour(rates_h1[i][0])-open_time)==0)
{
open_price = rates_h1[i][1];
// today_open = rates_h1[i][1];
break;
}
}
*/
open_price = iOpen(NULL,PERIOD_H1,0);
if (ObjectFind(OP) != 0)
{
ObjectCreate(session_name,OBJ_TEXT,0,CurTime(),open_price+4*Point);
ObjectSetText(session_name, session_name+" ",
8, "Arial",session_color);
// ObjectSet(session_name, OBJPROP_YDISTANCE, 100);
ObjectCreate(OP, OBJ_HLINE, 0, CurTime(), open_price);
ObjectSet(OP, OBJPROP_STYLE, STYLE_DOT);
ObjectSet(OP, OBJPROP_COLOR, session_color);
ObjectCreate(BZ, OBJ_HLINE, 0, CurTime(), open_price+straddle_width*Point);
ObjectSet(BZ, OBJPROP_STYLE, STYLE_DASH);
ObjectSet(BZ, OBJPROP_COLOR, Blue);
ObjectCreate(BZW, OBJ_HLINE, 0, CurTime(), open_price+(straddle_width+channel)*Point);
ObjectSet(BZW, OBJPROP_STYLE, STYLE_DASH);
ObjectSet(BZW, OBJPROP_COLOR, Blue);
ObjectCreate(SZ, OBJ_HLINE, 0, CurTime(), open_price-straddle_width*Point);
ObjectSet(SZ, OBJPROP_STYLE, STYLE_DASH);
ObjectSet(SZ, OBJPROP_COLOR, Red);
ObjectCreate(SZW, OBJ_HLINE, 0, CurTime(), open_price-(straddle_width+channel)*Point);
ObjectSet(SZW, OBJPROP_STYLE, STYLE_DASH);
ObjectSet(SZW, OBJPROP_COLOR, Red);
}
else
{
ObjectMove(session_name,0,CurTime(),open_price+4*Point);
ObjectMove(OP, 0, CurTime(), open_price);
ObjectMove(BZ, 0, CurTime(),open_price+straddle_width*Point);
ObjectMove(BZW, 0, CurTime(),open_price+(straddle_width+channel)*Point);
ObjectMove(SZ, 0, CurTime(),open_price-straddle_width*Point);
ObjectMove(SZW, 0, CurTime(),open_price-(straddle_width+channel)*Point);
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments