As you know the Globex trading hours for these products go like this: Regular hours --> from 6:00pm until 4:15pm next day AND from 4:30pm until 5:00pm So, according to this session trading hours, the expected is to have as Day's Close the price at 5:00pm. However, I don't know why, IB continue to register arbitrarily setting as Day's Close, price levels that belongs to 4:00pm or 4:15pm. This fact is causing me issues in my automated trading algorithm when it has to do eventual daily recalculations. For example, today 9-30, IB has registered as Day's Close 2978.5, when actually it closed at 5:00pm around 2984.75. I don't know why this happens and I'd like to know why or how it will be addressed. A bump in already hard work!
From IB's website: IB uses this "liquid trading hours" to determine the open and close prices. https://www.clientam.com/en/index.php?f=22063#02
That reason seems to make some sense, however, knowing that E-mini futures is one of the more liquid and watched instruments of the broad market, it seems an arbitrary and suspicious rule; supreming the day last 45 mins of market action left everybody scratching their heads and of course the effect over automated trading algorithms.
I agree with you on this one. So if you want to use end-of-day data (i.e. close price) you have to make a choice to adapt to what IB calls the end of day. Which allows you to use IB's daily OHLC price bars for your trading software. Or you have to construct your own daily OHLC price bar by downloading price bars with a smaller duration (e.g. hourly bars). In my case: I was lazy and adapted to what IB calls a trading day. I use their daily OHLC bars, and do a daily review shortly before 4pm (what IB calls end-of-day for e.g. ES, MES, NQ). Note that IB does this for quite a number of instruments (defining their own start and stop time for trading days). It makes sense to look at the instrument of your interest in TWS before deciding how you are going to use IB's data in your trading strategy.
Thanks for your interesting view and tips. I think I'm gonna redesign my Algo to include all data, still not convinced that letting out 45 mins is a smart move.
Both in TWS and in IB's API you can select whether a daily bar is limited to regular trading hours, or to all trading hours. In TWS you have to tick a box in the chart settings somewhere. In the API you can set parameter useRTH to TRUE or FALSE when you use method reqHistoricalData().
IB's action would also be a great excuse to develop a 'segregated events' class of price action -- as the non-liquid jumps in price are often related to quarterly earnings releases and would be worthy of tracking. (I haven't *done* this, but IB's segregation would be something that would assist in such a study -- IB having already done the hardest part. ) Hmmmm. Come to think of it,.....
@tommcginnis I'm not really sure what you mean here, and how it relates to the message you quote. Your comments seem to be related to individual company's stock, not to equity index futures (e.g. ES, NQ)?
Yes -- you're absolutely correct. I *had* finished my coffee, but apparently not all cylinders were firing. wwwwwWhoops.