Why are the OHLC values on daily and hourly charts different?

Can someone please explain why Bank Nifty candle for daily on 21/07 shows the high as 24294.95, whereas on the hourly time frame it shows 24265? Almost a 30 point gap?

1 Like

Live - Minutes, hourly, and daily candles are formed by using ticks that we receive from the exchange on our execution management system (EMS). There could be two ticks that we receive every second from the exchange. In actual there could have been hundreds of ticks. So it easily possible that there are trades at certain prices which don’t show up on a chart. It is technically not possible to capture all ticks that happen on the exchange live using our EMS.

Coming back to the second part, if same ticks are used to form minute, hourly and daily candles, why does the high of daily candle not match the hourly?

Exchanges at end of everyday give out something called Bhavcopy for the day. This Bhavcopy has open, high, low, close price for the day. Around midnight everyday, we use this bhavcopy and replace the OHLC with OHLC that we had captured using the ticks that we had received from the exchange. Exchange OHLC for the day on bhavcopy will be 100% accurate as it will be created using all the ticks that happened on the exchange. Unfortunately exchange doesn’t share min/hourly OHLC for the day in the bhavcopy, so the minute/hourly charts will be formed using the ticks that we have received and daily charts using the OHLC that exchange has sent on bhavcopy - hence the mismatch.

At market open, close or anytime during the day when a big market order is placed, there could suddenly have been a tick 30 to 50 points higher or more that never showed up at our EMS, hence also not on our trading platform/chart.

There are professional data vending platforms who charge tens of thousands of rupees and can capture a lot more data than what brokerages do. Exchanges charge tens of lakhs of rupees to such registered data vendors. Even these can’t stream all the ticks (tick by tick data) that happen on the exchange as internet can’t handle such large amounts of data. People who typically consume tick by tick data are high frequency trading firms who collocate their servers within the exchange on LAN to be able to receive such large data.

Hopefully this helps


Hi guys. Why there is difference between opening/ closing price displayed on ZeroDha charts and NSE website ???
I trade in IRB stock. When i chose 1 day chart and 5 min. chart, there was difference of near 0.50 yesterday. Even today i saw difference of Rs. 2.50 in opening price on ZeroDha chart and NSE website. Please help.

Explained above.

Suppose on ZeroDha chart Opening price is 200 and on NSE is 202. So if ZeroDha EMS was unable to capture those ticks / price of 202 due to large number of ticks then, if i short at 200, then what EMS will do ??? i mean it will readjust my sell price as 202 or will just forget that price (202) or will keep same price (200) ???

Trading will happen at exchange,there can’t be any differences, also market depth will display OHLC which is direct feed from exchange. Only thing is as explained above few times chart servers may miss to capture few ticks which are used to display the chart.

On 22 feb crude mini on day chart it went high of 4158 but same day using on 5 min chart it shows 4104 as day high .how @nithin

Answered above.

This is for every broker in industry… or only in Zerodha…

All brokers get the same data, I guess

Hi sir,
my real time data vendor is RTDP.
i have noticed that Pi has good number of ticks in a second, lot more than what RTDP provides, during market hours.

I have also noticed that charting in pi is as per the ticks received, then why a 15 min candle changes its CLOSE after the market hours. The CLOSE of a 15 min candle changes to the CLOSE of a 15 min candle provided by the real time data vendor who actually provides less number of ticks than Pi.

Is the close of a 15 min candle also an average or is it just the LTP for that 15 minutes ?


Hi sir,
Example : In Pi, CLOSE of 10.15am candle- 25404.5 during the market hours and after the market hours the CLOSE of the same candle changed to 25406.

As mentioned above, exchange doesn’t share min/hourly OHLC in the bhavcopy,
So, why did the price get refresh from 25404.5 to 25406 ?

Is it because of backfillling of the missing ticks or the CLOSE of a 15 min intra-day candle is also an average price and not an LTP ??

See attached image

REPCOHOME - 28-3-18 Data

Open = 544.75
High = 580.25
Low = 540.00
Close = 562.35

High Price is 580.25, but lower time frame (5 min, 15 min) charts showing high price is 575.64…

But one day chart showing 580.25…

But other brokerage firms displaying correct data…that’s why I posted…

PFA the screenshot of SUNTV (08-Feb) 1-min charts. Screenshots taken seconds apart after a couple of refreshes. The values shown are different. This is the case with several nifty-100 stocks for any given date. Refresh the page 4-5 times, and the values change. This is mostly true for 09:15 and 09:16 OHLC data. Can anyone from Zerodha please comment?z1z2

Explained here:

Thanks for the reply Bhuvanesh. But, My question was based on historical data. For any past date, the values are inconsistent (not a static value that might be innacurate, as in your reply). Like, you refresh the page, and a month-old data changes value. That is what the concern is.

Hi all,
I have been noticing that in different time frame shows different closing values. Also have noticed it shows different high values. For exp. On 3rd and 4th August the Daily high has not exceeded 1058.6 for HDFC bank where as Week candle time frame shows high of 1090.83. This is very confusing. Happens with smaller time frame as well.

could you please guide why this is happening, as previously this wasn’t the case.