MQL5 : Get current trading session

 datetime now = TimeCurrent(); // Get current broker time

   MqlDateTime tm;

   TimeToStruct(now, tm); // Convert datetime to structure

   int currentHourBroker = tm.hour; // Extract hour


   datetime utcNow = TimeGMT();

   int brokerOffset = (int)((now - utcNow) / 3600);


   string currentSession = "";


   if(currentHourBroker >= (8 + brokerOffset) && currentHourBroker < (13 + brokerOffset))

      currentSession = "London";


   else

      if(currentHourBroker >= (13 + brokerOffset) && currentHourBroker < (22 + brokerOffset))

         currentSession = "New York";


      else

         if((currentHourBroker >= (22 + brokerOffset) && currentHourBroker <= 23) ||

            (currentHourBroker >= 0 && currentHourBroker < (9 + brokerOffset)))

            currentSession = "Asian";


// ✅ Check if session has changed

   if(currentSession != previousSession)

     {

      Print(" Session changed to: "+currentSession+" Change Time : "+iTime(Symbol(),PERIOD_CURRENT,0));

      BUY = false;

      SHORT = false;

     }


// ✅ Update previous session

   previousSession = currentSession;



   Comment("currentSession: "+currentSession);

Comments

Popular posts from this blog

MQL5 : Add time to current time in mins

MQL5: Closed order detail