AsianFrankfurtLondonSessions_GMT+2

Download script
Author: Morning Star
AsianFrankfurtLondonSessions_GMT+2

This tool is designed to enhance your trading charts by visually highlighting the most active market sessions throughout the day. Instead of trying to guess when specific global markets are moving, this script automatically draws shaded background zones on your screen to mark key timeframes.

How it Works

The logic focuses on identifying three major global trading periods: Asia, Europe (EUR), and the USA. By using the settings provided, the script scans your historical data and places colored rectangles over these specific hours.

  • Visual Identification: Each session is assigned a unique color (e.g., DimGray for Asia, Olive for Europe, and Silver for the USA). These appear as solid blocks in the background of your chart, ensuring that the price candles stay visible while clearly defining which "market" is currently leading the price action.
  • Dynamic Range Detection: The script doesn't just draw a flat box from the top to the bottom of your screen. It intelligently looks back at the price action during those specific hours and identifies the highest and lowest price points reached. It then stretches the background color to fit that exact range, providing a "container" for the price movement of that session.
  • Historical Coverage: You can customize how far back you want to see these zones. By default, it maps out these sessions over 50 days, allowing you to see patterns of volatility and liquidity across weeks of trading history at a glance.
  • Automated Calendar Logic: The script includes internal logic to handle the complexities of the calendar—such as leap years and varying month lengths—to ensure that the shaded boxes align correctly with the dates on your chart without overlapping or skipping days.

Key Benefits for the User

By using this script, you gain a clearer sense of "Market Context." You can easily see when the Asian session ends and the European session begins, helping you identify periods of high liquidity and transition phases. It transforms a blank chart into a structured roadmap, allowing you to see exactly how price behaves during the most important hours of the trading day.

11 Views
0 Downloads
0 Favorites
AsianFrankfurtLondonSessions_GMT+2
//+------------------------------------------------------------------+
//|                                                        times.mq4 |
//|                                                                  |
//|               Made/Modified by sh _j .                           |
//+------------------------------------------------------------------+
#property copyright "Morning Star"
#property link      "http://Grand Forex.ir"

#property indicator_chart_window

 
extern int    NumberOfDays = 50;        
extern string AsiaBegin    = "00:00";   
extern string AsiaEnd      = "08:59";   
extern color  AsiaColor    = DimGray; 
extern string EurBegin     = "09:00";   
extern string EurEnd       = "09:59";   
extern color  EurColor     = Olive;//DarkGray       
extern string USABegin     = "10:00";   
extern string USAEnd       = "11:59";   
extern color  USAColor     = Silver; 


//+------------------------------------------------------------------+
//| 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("");
}

 
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("AS"+i);
    ObjectDelete("EU"+i);
    ObjectDelete("US"+i);
  }
}

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

  for (int i=0; i<NumberOfDays; i++) {
    DrawObjects(dt, "AS"+i, AsiaBegin, AsiaEnd);
    DrawObjects(dt, "EU"+i, EurBegin, EurEnd);
    DrawObjects(dt, "US"+i, USABegin, USAEnd);
    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)];
  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