Session Open V-Line Indi

Author: ��� ����� �. aka KimIV
Session Open V-Line Indi
0 Views
0 Downloads
0 Favorites
Session Open V-Line Indi
//+------------------------------------------------------------------+
//|                                                   i-Sessions.mq4 |
//|                                           Êèì Èãîðü Â. aka KimIV |
//|                                              http://www.kimiv.ru |
//|                                                                  |
//|  16.11.2005  Èíäèêàòîð òîðãîâûõ ñåññèé                           |
//+------------------------------------------------------------------+
#property copyright "Êèì Èãîðü Â. aka KimIV"
#property link      "http://www.kimiv.ru"

#property indicator_chart_window

//------- Âíåøíèå ïàðàìåòðû èíäèêàòîðà -------------------------------

extern int Line_Width_1_2_3_4_or_5 = 1;
extern int Line_Style = 0;
extern int    Historical_Days = 360;        // Êîëè÷åñòâî äíåé
extern bool Hide_London_EuroZone = false; 
extern color  London_EuroZone_Color = DodgerBlue;       // Öâåò åâðîïåéñêîé ñåññèè
extern string London_EuroZone_Open = "09:00";   // Îòêðûòèå åâðîïåéñêîé ñåññèè

extern bool Hide_USA = false;
extern color  USA_Color = Magenta; // Öâåò àìåðèêàíñêîé ñåññèè
extern string USA_Open = "15:30";   // Îòêðûòèå àìåðèêàíñêîé ñåññèè

extern bool Hide_Asia = false;
extern color  Asia_Color = Green; // Öâåò àçèàòñêîé ñåññèè
extern string Asia_Open = "20:00";   // Îòêðûòèå àçèàòñêîé ñåññèè

string AsiaEnd = "Asia_Open";   // Çàêðûòèå àçèàòñêîé ñåññèè
string EurEnd = "London_EuroZone_Open";   // Îòêðûòèå åâðîïåéñêîé ñåññèè
string USAEnd = "USA_Open";   // Çàêðûòèå àìåðèêàíñêîé ñåññèè


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init() {
  DeleteObjects();
  for (int i=0; i<Historical_Days; i++) {
    CreateObjects("AS"+i, Asia_Color);
    CreateObjects("EU"+i,London_EuroZone_Color);
    CreateObjects("US"+i, USA_Color);
  }
  Comment("");
}

//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit() {
  DeleteObjects();
  Comment("");
}

//+------------------------------------------------------------------+
//| Ñîçäàíèå îáúåêòîâ èíäèêàòîðà                                     |
//| Ïàðàìåòðû:                                                       |
//|   no - íàèìåíîâàíèå îáúåêòà                                      |
//|   cl - öâåò îáúåêòà                                              |
//+------------------------------------------------------------------+
void CreateObjects(string no, color cl){
  ObjectCreate(no, OBJ_VLINE, 0, 0,0, 0,0);
  ObjectSet(no, OBJPROP_WIDTH, Line_Width_1_2_3_4_or_5);
  ObjectSet(no, OBJPROP_STYLE, Line_Style);
  ObjectSet(no, OBJPROP_COLOR, cl);
  ObjectSet(no, OBJPROP_BACK, false);
}

//+------------------------------------------------------------------+
//| Óäàëåíèå îáúåêòîâ èíäèêàòîðà                                     |
//+------------------------------------------------------------------+
void DeleteObjects() {
  for (int i=0; i<Historical_Days; i++) {
    ObjectDelete("AS"+i);
    ObjectDelete("EU"+i);
    ObjectDelete("US"+i);
  }
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void start() {
  datetime dt=CurTime();

  for (int i=0; i<Historical_Days; i++) {
    if(Hide_Asia==false){
      DrawObjects(dt, "AS"+i, Asia_Open,AsiaEnd);}
    if(Hide_London_EuroZone==false){
      DrawObjects(dt, "EU"+i, London_EuroZone_Open, EurEnd);}
    if(Hide_USA==false){
      DrawObjects(dt, "US"+i, USA_Open, USAEnd);}
    dt=decDateTradeDay(dt);
    while (TimeDayOfWeek(dt)>5) dt=decDateTradeDay(dt);
  }
}

//+------------------------------------------------------------------+
//| Ïðîðèñîâêà îáúåêòîâ íà ãðàôèêå                                   |
//| Ïàðàìåòðû:                                                       |
//|   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, b2)];
  p2=Low [Lowest (NULL, 0, MODE_LOW , b1-b2, b2)];
  ObjectSet(no, OBJPROP_TIME1 , t1);
  ObjectSet(no, OBJPROP_PRICE1, p1);
  ObjectSet(no, OBJPROP_TIME2 , t2);
  ObjectSet(no, OBJPROP_PRICE2, p2);
}

//+------------------------------------------------------------------+
//| Óìåíüøåíèå äàòû íà îäèí òîðãîâûé äåíü                            |
//| Ïàðàìåòðû:                                                       |
//|   dt - äàòà òîðãîâîãî äíÿ                                        |
//+------------------------------------------------------------------+
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---