How Can I Set Time Only Trade On My Time

 

example


8:00 AM To 17:00PM GMT London time

13:00 To 22:00 GMT new york time

 
Pruthvirajsinh6212:

example


8:00 AM To 17:00PM GMT London time

13:00 To 22:00 GMT new york time

int hour()
{
   MqlDateTime stm;
   datetime dt = TimeCurrent(stm);
   return stm.hour;
}

bool TimeCheck()
{
      return (hour()>=8 && hour()<=17) || ((hour()>=13 && hour()<=22);
}

Just remember that this hour function return server time and not the GMT time. You should define hour restriction according to broker server time.

 

Pruthvirajsinh6212:

8:00 AM To 17:00PM GMT London time

13:00 To 22:00 GMT new york time

  1. #define HR1300 (13 * 3600)
    #define HR2200 (22 * 3600)
    bool TimeCheck()
    {
       int tod = time(); return HR1300 <= tod && tod < HR22; // Time of Day
    }

    When dealing with time, a lot of people use strings; they can not be optimized. Using (int) seconds or (double) hours and fraction can be inputs.

    See also Dealing with Time (Part 1): The Basics - MQL5 Articles (2021.10.01)
    Dealing with Time (Part 2): The Functions - MQL5 Articles (2021.10.08)
    MQL5 Programming Basics: Time - MQL5 Articles (2013.04.26)

    Remember to handle the case where start > end (e.g. 2100 … 0200

  2. Chart times are broker times.

    1. How can MetaQuotes know all brokers' (they come and go daily) Time zone and Daylight savings time (if they use it and including historical changes for back testing)? Do you have that information for just you and your broker? Only then, with code, can you convert session times to broker's time to UTC to local time. You can use offset inputs, but then you must maintain them correctly, through all three DST changes when they occur.
                When is the time zone problem going to be fixed? - General - MQL5 programming forum (2020)

    2. Foreign Exchange (FX) market opens 5 PM New York (NY)/Eastern Time (ET) Sunday and ends 5 PM NY Friday. Some brokers start after (6 PM is common) and end before (up to 15 minutes) due to low volatility.
                Checking for Market Closed - Expert Advisors and Automated Trading - MQL5 programming forum (2016)

      Swap is computed 5 PM ET. No swap if no open orders at that time.

    3. Brokers use a variety of time zones. Their local time, with or without Daylight Savings Time (DST), London, UTC, London+2, UTC+2, NY+7.

      Only with NY+7 does the broker's 00:00 equals 5 PM ET and the start of a daily bar (and H4) is the start of a new FX day.

      GMT/BST brokers, means there is a 1 or 2 hour D1/H4 bar on Sunday (depending on NY DST), and a short Friday bar. (Problems with indicators based off bars.)

      GMT+2 is close but doesn't adjust for NY DST.

      EET is closer, except when their DST doesn't match NY's. Last Sunday of March and 1:00 on the last Sunday of October vs second Sunday in March and return at 2:00 AM EDT to 1:00 AM EST on the first Sunday in November.

    4. Non-NY+7, means the chart daily bar overlaps the start, and converting broker time to NY time requires broker to UTC to NY timezone conversions.


    5. If you search the web, you will find differing answers. Those are all wrong (half the year) because they do not take DST into account (or that it changed for the US in 2007 [important when testing history.])


    6. Then there are (non-24 hour markets) with H4 candles that start on odd hours.
                Why My XAUUSD 4H candles start with 1 hour shift? - Currency Pairs - General - MQL5 programming forum (2019)
                H4 first opened candle - MT5 - General - MQL5 programming forum (2020)

      And H1 on the half hour.

    7. See also Dealing with Time (Part 1): The Basics - MQL5 Articles (21.10.01)
      and Dealing with Time (Part 2): The Functions - MQL5 Articles (21.10.08)