Historical data resources for Indian market

What is the best source for historical EOD data for Indian stock market? The data from Yahoo finance for some companies is not up-to-date and Google finance doesn't provide adjusted close prices. What should I do ? I need the data for quantitative analysis.

Is there a way to calculate adjusted close from Google finance close price series ?

If I'm using the expression (close[n]-close[n-1])/close[n-1] for returns calculations. It will show erroneous data, because of the change in price due to stock split.

There's a couple of options other than Google or Yahoo that I am aware of.

The NSE provides EOD data, as well as 5,2 and 1 minute data. If you're willing to pay for high quality data for your application, this is an excellent choice. http://www.nseindia.com/supra_global/content/dotex/data_products.htm

Quandl provides comparatively clean, free EOD data which might suit your requirements too. Like, https://www.quandl.com/NSE/BATAINDIA

Per its help-page yahoo provides adjusted closing prices on a weekly basis.

If that is not sufficient, you can always calculate adjusted closing prices using this formula, however, you would need to know the dividend history of each stock. Those are also available from yahoo finance.

You can fetch Indian stocks data from NSEpy.The data available on NESpy are: 1. Daily stock data 2. Stock futures data 3. Stock options data 4. Index futures data 5. Index options data

Example to get daily stock data from NSEpy in Python:

from nsepy import get_history
from datetime import datetime

start = datetime(2019, 1, 1)
end = datetime(2019, 30, 7)

data = get_history(symbol='HDFC',start=start,end=end)


• I think your end = datetime(2019, 30, 7) should be end = datetime(2019, 7, 30), since the syntax is datetime(year, month, day.... Apr 26, 2020 at 17:47