0
Views
0
Downloads
0
Favorites
MarketHoursShade_v01_v2
//+-------------------------------------------------------------------------------+
//| MarketHoursShade_v01.mq4 |
//| Originally by KimIV |
//| http://www.kimiv.ru |
//| |
//| 23.11.2005 |
//| |
//| 29 Nov 06: Modified by Derk Wehler to be readable. |
//| Added/Changed a couple of input parameter defaults |
//| No other changes. |
//| |
//+-------------------------------------------------------------------------------+
#property copyright "Derk Wehler"
#property link "none"
//----
#property indicator_chart_window
//------- -------------------------------
extern int NumberOfDays=50;
extern string s1 ="European";
extern color Color_1 =C'60, 60, 60';
extern string Begin_1 ="07:00";
extern string End_1 ="17:00";
extern string s2 ="";
extern string s3 ="American";
extern color Color_2 =C'80, 80, 80';
extern string Begin_2 ="13:00";
extern string End_2 ="23:00";
extern string s4 ="";
extern string s5 ="Asian/Austrailian";
extern color Color_3 =C'100, 100, 100';
extern string Begin_3 ="23:00";
extern string End_3 ="09:00";
extern bool HighRange =true;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void init()
{
DeleteObjects();
for(int i=0; i < NumberOfDays; i++)
{
CreateObjects("PWT1"+i, Color_1);
CreateObjects("PWT2"+i, Color_2);
CreateObjects("PWT3"+i, Color_3);
}
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void deinit()
{
DeleteObjects();
Comment("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void CreateObjects(string no, color cl)
{
ObjectCreate(no, OBJ_RECTANGLE, 0, 0,0, 0,0);
ObjectSet(no, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(no, OBJPROP_COLOR, cl);
ObjectSet(no, OBJPROP_BACK, True);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DeleteObjects()
{
for(int i=0; i < NumberOfDays; i++)
{
ObjectDelete("PWT1"+i);
ObjectDelete("PWT2"+i);
ObjectDelete("PWT3"+i);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void start()
{
datetime dt=CurTime();
for(int i=0; i < NumberOfDays; i++)
{
DrawObjects(dt, "PWT1"+i, Begin_1, End_1);
DrawObjects(dt, "PWT2"+i, Begin_2, End_2);
DrawObjects(dt, "PWT3"+i, Begin_3, End_3);
dt=decDateTradeDay(dt);
//----
while(TimeDayOfWeek(dt) > 5)
dt=decDateTradeDay(dt);
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void DrawObjects(datetime dt, string no, string tb, string te)
{
datetime t1, t2;
double p1, p2;
int b1, b2;
//----
t1=StrToTime(TimeToStr(dt, TIME_DATE) + " " + tb);
t2=StrToTime(TimeToStr(dt, TIME_DATE) + " " + te);
b1=iBarShift(NULL, 0, t1);
b2=iBarShift(NULL, 0, t2);
p1=High[Highest(NULL, 0, MODE_HIGH, b1-b2, b2)];
p2=Low [Lowest (NULL, 0, MODE_LOW , b1-b2, b2)];
//----
if (!HighRange)
{
p1=0;
p2=2 * p2;
}
ObjectSet(no, OBJPROP_TIME1 , t1);
ObjectSet(no, OBJPROP_PRICE1, p1);
ObjectSet(no, OBJPROP_TIME2 , t2);
ObjectSet(no, OBJPROP_PRICE2, p2);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
datetime decDateTradeDay (datetime dt)
{
int ty=TimeYear(dt);
int tm=TimeMonth(dt);
int td=TimeDay(dt);
int th=TimeHour(dt);
int ti=TimeMinute(dt);
td--;
if (td==0)
{
tm--;
if (tm==0)
{
ty--;
tm=12;
}
if (tm==1 || tm==3 || tm==5 || tm==7 || tm==8 || tm==10 || tm==12)
td=31;
if (tm==2)
if (MathMod(ty, 4)==0)
td=29;
else
td=28;
if (tm==4 || tm==6 || tm==9 || tm==11)
td=30;
}
return(StrToTime(ty + "." + tm + "." + td + " " + th + ":" + ti));
}
//+------------------------------------------------------------------+
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
---