IF-condition not being validated

 

Hi Guys...

I'm new to MQL so please go easy :-)

Here's the thing - I writing a session-checker based on the open and close times and displaying it on the chart. Should be a walk in the park - right? For some reason it is not picking up the London session, but Frankfurt is fine.

A push into the right direction will be much appreciated. The Code below:

void OnTick()
{
   datetime dtOpenLondon     = StringToTime(strOpenLondon),     dtCloseLondon     = StringToTime(strOpenLondon),
            dtOpenFrankfurt  = StringToTime(strOpenFrankfurt) , dtCloseFrankfurt  = StringToTime(strCloseFrankfurt),
            dtOpenNewYork    = StringToTime(strOpenNewYork),    dtCloseNewYork    = StringToTime(strCloseNewYork),
            dtOpenChicago    = StringToTime(strOpenChicago),    dtCloseChicago    = StringToTime(strCloseChicago),
            dtOpenTokyo      = StringToTime(strOpenTokyo),      dtCloseTokyo      = StringToTime(strCloseTokyo),
            dtOpenHongKong   = StringToTime(strOpenHongKong),   dtCloseHongKong   = StringToTime(strCloseHongKong),
            dtOpenSydney     = StringToTime(strOpenSydney),     dtCloseSydney     = dtOpenSydney + 32100,
            dtOpenWellington = StringToTime(strOpenWellington), dtCloseWellington = dtOpenWellington + 28500;
    
   datetime timeGMT = TimeGMT();
   
   string strHoursMinutes = TimeToString(timeGMT, TIME_MINUTES);

   datetime dtHoursMinutes = StringToTime(strHoursMinutes);





   if(dtHoursMinutes >= dtOpenLondon && dtHoursMinutes <= dtCloseLondon)
      descriptionLondon = "London                        " + strOpenLondon + "  -  " + strCloseLondon + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionLondon = "London                        " + strOpenLondon + "  -  " + strCloseLondon + "            " + strHoursMinutes;

   if(dtHoursMinutes >= dtOpenFrankfurt && dtHoursMinutes <= dtCloseFrankfurt)
      descriptionFrankfurt = "Frankfurt                      " + strOpenFrankfurt + "  -  " + strCloseFrankfurt + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionFrankfurt = "Frankfurt                      " + strOpenFrankfurt + "  -  " + strCloseFrankfurt + "            " + strHoursMinutes;

   if(dtHoursMinutes >= dtOpenNewYork && dtHoursMinutes <= dtCloseNewYork)
      descriptionNewYork = "New York                      " + strOpenNewYork + "  -  " + strCloseNewYork + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionNewYork = "New York                      " + strOpenNewYork + "  -  " + strCloseNewYork + "            " + strHoursMinutes;
      
   if(dtHoursMinutes >= dtOpenChicago && dtHoursMinutes <= dtCloseChicago)
      descriptionChicago = "Chicago                        " + strOpenChicago + "  -  " + strCloseChicago + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionChicago = "Chicago                        " + strOpenChicago + "  -  " + strCloseChicago + "            " + strHoursMinutes;
      
   if(dtHoursMinutes >= dtOpenTokyo && dtHoursMinutes <= dtCloseTokyo)
      descriptionTokyo = "Tokyo                           " + strOpenTokyo + "  -  " + strCloseTokyo + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionTokyo = "Tokyo                           " + strOpenTokyo + "  -  " + strCloseTokyo + "            " + strHoursMinutes;
      
   if(dtHoursMinutes >= dtOpenHongKong && dtHoursMinutes <= dtCloseHongKong)
      descriptionHongKong = "Hong Kong                   " + strOpenHongKong + "  -  " + strCloseHongKong + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionHongKong = "Hong Kong                   " + strOpenHongKong + "  -  " + strCloseHongKong + "            " + strHoursMinutes;
      
   if((dtHoursMinutes < StringToTime("00:00") && dtOpenSydney < StringToTime("00:00")) && (dtHoursMinutes >= StringToTime("00:00") && dtCloseSydney >= StringToTime("00:00")))
      descriptionSydney = "Sydney                        " + strOpenSydney + "  -  " + strCloseSydney + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionSydney = "Sydney                        " + strOpenSydney + "  -  " + strCloseSydney + "            " + strHoursMinutes;
      
   if((dtHoursMinutes < StringToTime("00:00") && dtOpenWellington < StringToTime("00:00")) && (dtHoursMinutes >= StringToTime("00:00") && dtCloseWellington >= StringToTime("00:00")))
      descriptionWellington = "Wellington                    " + strOpenWellington + "  -  " + strCloseWellington + "             " + strHoursMinutes + "  -  Trade";
   else
      descriptionWellington = "Wellington                    " + strOpenWellington + "  -  " + strCloseWellington + "            " + strHoursMinutes;                                
   
   Comment(
          descriptionLondon + "\n" +
          descriptionFrankfurt + "\n" +
          descriptionNewYork + "\n" +
          descriptionChicago + "\n" +
          descriptionTokyo + "\n" +
          descriptionHongKong + "\n" +
          descriptionSydney + "\n" +
          descriptionWellington
          );
}


Thanks in advance.


Martin

 
https://www.mql5.com/en/forum/322889#comment_13302780
trading in a certain time
trading in a certain time
  • 2019.09.23
  • www.mql5.com
Can anyone please help me code for my EA to only trade between 7am and 11am /1PM and 4PM GMT. please could you explain the code so I can learn...
 
Martin Botha:

Hi Guys...

I'm new to MQL so please go easy :-)

Here's the thing - I writing a session-checker based on the open and close times and displaying it on the chart. Should be a walk in the park - right? For some reason it is not picking up the London session, but Frankfurt is fine.

A push into the right direction will be much appreciated. The Code below:


Thanks in advance.


Martin

What are the inputs ?
 
Alain Verleyen:
What are the inputs ?

Please see below:

string descriptionLondon, descriptionFrankfurt, descriptionNewYork, descriptionChicago, descriptionTokyo, descriptionHongKong, descriptionSydney, descriptionWellington;

string strOpenLondon     = "08:00", strCloseLondon     = "16:55",
       strOpenFrankfurt  = "07:00", strCloseFrankfurt  = "15:55",
       strOpenNewYork    = "13:00", strCloseNewYork    = "21:55",
       strOpenChicago    = "14:00", strCloseChicago    = "22:55",
       strOpenTokyo      = "00:00", strCloseTokyo      = "08:55",
       strOpenHongKong   = "01:00", strCloseHongKong   = "09:55",
       strOpenSydney     = "22:00", strCloseSydney     = "06:55",
       strOpenWellington = "22:00", strCloseWellington = "05:55";

void OnTick()
{

Sorry for not adding it with the original post.

 
Martin Botha:

Please see below:

Sorry for not adding it with the original post.

dtCloseLondon     = StringToTime(strOpenLondon)
 
Alain Verleyen:

We'll slap me with a wet fish!

Sometimes you just need another pair of eyes.

Thanks a mil Alain!