Zero-th Day

 

Hi, I'm learning how to play with time on MQL4.  I would like the Day to begin on Zero rather than One.

For some reason the output on the comment still starts at 1 at the beginning of the week rather than 0 as intended eventhough I have the day assigned as (clockStruct.day_of_week - 1).

Anyone have any clue how to resolve this?  Thank you!

void OnTick()
  {
   datetime clock = TimeCurrent();
   MqlDateTime clockStruct;
   TimeToStruct(clock, clockStruct);
   int day = (clockStruct.day_of_week - 1);
   
   Comment("\n\nDay: ",day);
   
  }
 
Hoi Cheng: I would like the Day to begin on Zero rather than One.
  1. Not Day, but Day of the Week. The day starts at 00:00. Words matter.
  2. DOW of zero is Sunday. Depending on your broker's time zone, you may have bars on Sunday.
    1. FX opens 5pm Eastern Time (NY) Sunday and ends 5pm NY Friday. Some brokers start after (6pm is common/end before (up to 15 minutes) due to low volatility.
                Checking for Market Closed - Expert Advisors and Automated Trading - MQL5 programming forum

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

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

      Only with NY+7 does the broker's 00:00 equals 5pm 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 a.m. EDT to 1:00 a.m. EST on the first Sunday in November.

    3. Non-NY+7, means the chart daily bar overlaps the start, and converting broker time to NY time requires broker to GMT to NY timezone conversions.
    4. 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.])
    5. Then there are H4 candles that start on odd hours.
                Why My XAUUSD 4H candles start with 1 hour shift? - Currency Pairs - General - MQL5 programming forum

  3. There is no resolution.
              When is the time zone problem going to be fixed? - General - MQL5 programming forum 2020.05.07

Reason: