I'am a web developer, I'm creating a web application stock chart. When deal with big amount of real world stock data, i come across a few line of odd data, for example "open price= 0, high price = 0, low price = 0, close price = 4.12".

Keep in mind, this is real world data, my question is what happen to the stock? If i make all zero prices equal to close price, will I violate the integrity of stock data?

Example of sources

enter image description here

  • 3
    is the stock very low liquidity (i.e. potentially only one trade that day) or traded OTC? is the closing price the same as the previous day's close? what is your data source?
    – MD-Tech
    Commented Oct 29, 2015 at 9:17
  • I'm voting to close this question as off-topic because it's a software development question, not PF. Commented Oct 29, 2015 at 9:47
  • 2
    Even though he is working on a web app, I would argue it is still financial because his question is why do the stock numbers show up like that. But like MD-Tech asked, it would be nice to know the original source.
    – dmikester1
    Commented Oct 29, 2015 at 18:55
  • @MD-Tech yes the closing price is same as yesterday. I updated my question with example of sources.
    – Andy Lam
    Commented Oct 30, 2015 at 2:26
  • looking at it it smells like the stock was not traded that day, can you check if it was a market holiday? If its a US or UK stock I've already checked and it wasn't. If you can give me a full isin I can check.
    – MD-Tech
    Commented Oct 30, 2015 at 9:49

2 Answers 2


There are several reasons why this may happen and I will update as I get more information from you.

Volumes on that stock look low (supposing that they are either in a factor between 1s and 1000s) so it could well be that there was no volume on that day. If no trades occur then open, high and low are meaningless as they are statistics based on trades that occur that day and no trades occur. Remember that there has to be volume to get a price.

The stock may have been frozen by either the exchange or the company for the day. This could be for various reasons including to prevent some illegal activity. In that case no trades were made because the market for that stock was closed.

Another possibility is that all trades that day were cancelled by the exchange. The exchange may cancel all trades if there is unusual, potentially fraudulent or other illegal activity on the stock. In this case the last price for that day existed but was rolled back by the exchange and never occurred. This is a rare situation.

Although I can't find any holidays on that date it is possible that this is how your data provider marks market holidays. It would be valid to ignore the data in that case as being from a non-market day. I cannot tell if this is possible without knowing exchange information.

There is a possibility that some data providers don't receive data for a day or that it gets corrupted. It may be worth checking another source to ensure the integrity of the data that you are receiving.

Whichever reason is true, the data provider has made the close equal to the previous day's close as no price movements occurred. Strictly the closing price is the price of the last trade made for that day and so should be null (and open, high and low should be null too and not 0 otherwise the price change on day is very large!). Therefore, to keep integrity, you have a few choices:

  1. you can make all of the data for that day null and so have a gap (with 0 volume) to indicate a lack of trades that day
  2. you can assume that, since there were no trades that day, the price did not move at all and that open, close, high and low are all the same. This may be helpful for metrics like moving averages that can't really ignore trading days.
  • Thanks for the answer, the data above is from Bursa Malaysia which is a exchange serve in Malaysia. I checked the date, i pretty sure that day is not holiday.
    – Andy Lam
    Commented Oct 31, 2015 at 12:14
  • Just to give you better idea, the web chart i that i generate is support by TradingView.com
    – Andy Lam
    Commented Oct 31, 2015 at 12:21

The last column in the source data is volume (the number of stocks that was exchanged during the day), and it also has a value of zero for that day, meaning that nobody bought or sold the stocks on that day. And since the prices are prices of transactions (the first and the last one on a particular day, and the ones with the highest/lowest price), the prices cannot be established, and are irrelevant as there was not a single transaction on that day. Only the close price is assumed equal to its previous day counterpart because this is the most important value serving as a basis to determine the daily price change (and we assume no change in this case). Continuous-line charts also use this single value. Bar and candle charts usually display a blank space for a day where no trade occurred.

  • yea, this kind of data will make bar and candle chart look very bad, like a long odd cylinder appear in the middle of chart. Blank space seen like a good solution. Anyway, thanks for your answer.
    – Andy Lam
    Commented Oct 31, 2015 at 12:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .