Historical Stock Price Data For 6,000+ US Stocks

Download end of day historical prices for 6,000+ Nasdaq and NYSE stocks plus python script.

In order to backtest trading strategies or do market analysis it's essential to have historical stock price data. Once you have the data at your fingertips you can easily test out your trading rules and try your ideas with a backtesting software or a simple spreadsheet program.

That's why I've pulled together this large database of US stock data and created a python script that allows you to extract historical data from Yahoo Finance for free. Each month I will update the data with the script and upload it here.

With this package you get:

  • Full daily price history for 6,000+ US stocks scraped from Yahoo Finance (updated monthly)
  • Data is for a long list of NYSE and Nasdaq tickers and is adjusted for splits
  • Some data goes back as far as 1970
  • Plus get my python script and instructions on how to use it

These days historical EOD stock data can be found in numerous places online. The tricky part is getting the data onto your computer and into your analysis program without wasting time.

With this script you can speed up or even automate the downloading and update process.

Or you can just download the data in CSV format, it's up to you.

Your Instructor

Joe Marwood
Joe Marwood

Joe Marwood is an independent trader and investor specialising in financial market analysis and trading systems. He worked as a professional futures trader for a trading firm in London and now works through his own private company.

He started his career as a day trader and worked right through the financial crisis of 2008/2009. He has a passion for building mechanical trading strategies and uses a blend of fundamental and technical analysis to find low-risk investment opportunities.

Class Curriculum

  Historical Stock Price Data For 6,000+ US Stocks
Available in days
days after you enroll

Frequently Asked Questions

How long do I have access to the data? Is it up to date?
After enrolling, you can download the data and it is yours without restriction. The data will be updated each month and re-uploaded to the site.
Does the data include delisted stocks?
Not at the moment. The problem with delisted stocks is that you don't just need to know which tickers are missing but when they went missing and from what index. If you require delisted stocks we recommend a paid subscription with Norgate Data
Is the data adjusted for splits?
Yes, the open, high, low, close data is adjusted for splits. The adjusted close column takes into account dividends.
How clean is the data?
The data is scraped from Yahoo! Finance and is generally a high quality with few errors for most stocks. However, the data does not include delisted stocks and the quality cannot be compared to a paid service such as from Norgate Data. In addition, sometimes Yahoo makes changes that affect the scraper and the amount of data that is accessible. Overall, this data is a good starting point if you don't want to pay a subscription.
What format is the data?
Each symbol has its own csv file with 8 columns. Symbol, Date, Open, High, Low, Close, Volume, Adj Close.
Do I need special software or knowledge of python?
No, csv files can be read by most spreadsheet programs and software so you don't need anything special. You don't need to know python to download the data but if you want to run the script full instructions are provided. It's very easy.
How much data is there?
The data goes back as far as is available on Yahoo Finance. For some stocks like HPQ the data goes back as far as 1970. Some stocks could not be found and are left out of the script. There are 6,134 stocks in total although that number may change as stocks get delisted etc.

Get started now!

Please note: This data is scraped from the Yahoo finance website and is provided in 'as is' format. All data is provided for informational purposes only, not intended for trading purposes or advice.

Marwood Research will not be liable for any informational errors, incompleteness, delays, financial losses or for any actions taken in reliance on information contained herein. Full risk warning and disclaimer applies.

Thanks to Serge Rotenberg for help with the python script and Jiun Yen for contribution of the yahoo ticker list.