0
Views
0
Downloads
0
Favorites
i-Sessions_v4
//+----------------------------------------------------------------------------+
//| i-Sessions.mq4 |
//| |
//| Êèì Èãîðü Â. aka KimIV |
//| http://www.kimiv.ru |
//| |
//+----------------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link "http://www.kimiv.ru"
#property indicator_chart_window
//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà ----------------------------------------+
extern int NumberOfDays = 5; // Êîëè÷åñòâî äíåé
extern string AsiaBegin = "01:00"; // Îòêðûòèå àçèàòñêîé ñåññèè
extern string AsiaEnd = "10:00"; // Çàêðûòèå àçèàòñêîé ñåññèè
extern color AsiaColor = Goldenrod; // Öâåò àçèàòñêîé ñåññèè
extern string EurBegin = "07:00"; // Îòêðûòèå åâðîïåéñêîé ñåññèè
extern string EurEnd = "16:00"; // Çàêðûòèå åâðîïåéñêîé ñåññèè
extern color EurColor = Tan; // Öâåò åâðîïåéñêîé ñåññèè
extern string USABegin = "14:00"; // Îòêðûòèå àìåðèêàíñêîé ñåññèè
extern string USAEnd = "23:00"; // Çàêðûòèå àìåðèêàíñêîé ñåññèè
extern color USAColor = Pink; // Öâåò àìåðèêàíñêîé ñåññèè
extern int Style = 2; // Ñòèëü ëèíèé îáúåêòîâ
extern bool FillBack = True; // Çàëèâàòü îáúåêòû
extern bool ShowPrice = True; // Ïîêàçûâàòü öåíîâûå óðîâíè
extern color clFont = Blue; // Öâåò øðèôòà
extern int SizeFont = 8; // Ðàçìåð øðèôòà
extern int OffSet = 10; // Ñìåùåíèå
//+----------------------------------------------------------------------------+
//| Custom indicator initialization function |
//+----------------------------------------------------------------------------+
void init()
{
DeleteObjects();
for(int i=0; i<NumberOfDays; i++)
{
CreateObjects("AS"+i,AsiaColor);
CreateObjects("EU"+i,EurColor);
CreateObjects("US"+i,USAColor);
}
Comment("");
}
//+----------------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+----------------------------------------------------------------------------+
void deinit()
{
DeleteObjects();
Comment("");
}
//+----------------------------------------------------------------------------+
//| Ñîçäàíèå îáúåêòîâ èíäèêàòîðà |
//| Ïàðàìåòðû: |
//| no - íàèìåíîâàíèå îáúåêòà |
//| cl - öâåò îáúåêòà |
//+----------------------------------------------------------------------------+
void CreateObjects(string no,color cl)
{
ObjectCreate(no,OBJ_RECTANGLE,0,0,0,0,0);
ObjectSet(no,OBJPROP_STYLE,Style);
ObjectSet(no,OBJPROP_COLOR,cl);
ObjectSet(no,OBJPROP_BACK,FillBack);
}
//+----------------------------------------------------------------------------+
//| Óäàëåíèå îáúåêòîâ èíäèêàòîðà |
//+----------------------------------------------------------------------------+
void DeleteObjects()
{
for(int i=0; i<NumberOfDays; i++)
{
ObjectDelete("AS"+i);
ObjectDelete("EU"+i);
ObjectDelete("US"+i);
}
ObjectDelete("ASup");
ObjectDelete("ASdn");
ObjectDelete("EUup");
ObjectDelete("EUdn");
ObjectDelete("USup");
ObjectDelete("USdn");
}
//+----------------------------------------------------------------------------+
//| Custom indicator iteration function |
//+----------------------------------------------------------------------------+
void start()
{
datetime dt=CurTime();
for(int i=0; i<NumberOfDays; i++)
{
if(ShowPrice && i==0)
{
DrawPrices(dt,"AS",AsiaBegin,AsiaEnd);
DrawPrices(dt,"EU",EurBegin,EurEnd);
DrawPrices(dt,"US",USABegin,USAEnd);
}
DrawObjects(dt,"AS"+i,AsiaBegin,AsiaEnd);
DrawObjects(dt,"EU"+i,EurBegin,EurEnd);
DrawObjects(dt,"US"+i,USABegin,USAEnd);
dt-=24*60*60;
while(TimeDayOfWeek(dt)<1 || TimeDayOfWeek(dt)>5) dt-=24*60*60;
}
}
//+----------------------------------------------------------------------------+
//| Ïðîðèñîâêà îáúåêòîâ íà ãðàôèêå |
//| Ïàðàìåòðû: |
//| dt - äàòà òîðãîâîãî äíÿ |
//| no - íàèìåíîâàíèå îáúåêòà |
//| tb - âðåìÿ íà÷àëà ñåññèè |
//| te - âðåìÿ îêîí÷àíèÿ ñåññèè |
//+----------------------------------------------------------------------------+
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+1, b2)];
p2=Low [Lowest (NULL, 0, MODE_LOW , b1-b2+1, b2)];
ObjectSet(no,OBJPROP_TIME1,t1);
ObjectSet(no,OBJPROP_PRICE1,p1);
ObjectSet(no,OBJPROP_TIME2,t2);
ObjectSet(no,OBJPROP_PRICE2,p2);
}
//+----------------------------------------------------------------------------+
//| Ïðîðèñîâêà öåíîâûõ ìåòîê íà ãðàôèêå |
//| Ïàðàìåòðû: |
//| dt - äàòà òîðãîâîãî äíÿ |
//| no - íàèìåíîâàíèå îáúåêòà |
//| tb - âðåìÿ íà÷àëà ñåññèè |
//| te - âðåìÿ îêîí÷àíèÿ ñåññèè |
//+----------------------------------------------------------------------------+
void DrawPrices(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(ObjectFind(no+"up")<0) ObjectCreate(no+"up",OBJ_TEXT,0,0,0);
ObjectSet(no+"up",OBJPROP_TIME1,t2);
ObjectSet(no+"up",OBJPROP_PRICE1,p1+(OffSet+SizeFont)*Point);
ObjectSet(no+"up",OBJPROP_COLOR,clFont);
ObjectSet(no+"up",OBJPROP_FONTSIZE,SizeFont);
ObjectSetText(no+"up",DoubleToStr(p1+Ask-Bid,Digits));
if(ObjectFind(no+"dn")<0) ObjectCreate(no+"dn",OBJ_TEXT,0,0,0);
ObjectSet(no+"dn",OBJPROP_TIME1,t2);
ObjectSet(no+"dn",OBJPROP_PRICE1,p2-OffSet*Point);
ObjectSet(no+"dn",OBJPROP_COLOR,clFont);
ObjectSet(no+"dn",OBJPROP_FONTSIZE,SizeFont);
ObjectSetText(no+"dn",DoubleToStr(p2,Digits));
}
//+----------------------------------------------------------------------------+
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
---