MarketData Hub

Historical Market Data in Excel & Google Sheets

You don't need Python to analyse market history — a spreadsheet handles charts, returns and moving averages just fine. This guide walks through getting clean historical price data into Excel or Google Sheets and doing something useful with it.

Get the app — €9 →Buy a licence →
A finished MarketData Hub download: a CSV file on local disk, with its row count, file size and full path.
Where the data ends up. A finished job names the row count, the file size and the exact path — a folder you chose, with no server of ours in the picture.

Step 1 — Download the CSV

Grab the instrument you want as a CSV — for example EUR/USD, gold or the US 500 index — choosing a timeframe that suits a spreadsheet. Daily or hourly candles are the sweet spot: Excel tops out at 1,048,576 rows, so decades of daily data fit easily, a few years of 1-minute data still fit, but tick data belongs in code, not a spreadsheet. The file layout (timestamp, open, high, low, close, volume) is documented in the CSV format guide.

Step 2 — Import into Excel

Don't just double-click the file — use Data → Get Data → From Text/CSV. Excel previews the file and detects the comma delimiter; click Load and you get a sortable, filterable table. The timestamp column arrives as a 13-digit number, because the export stores time as epoch milliseconds (milliseconds since 1 January 1970, UTC) rather than as a date string. Turn it into a date with one helper column:

=A2/86400000+DATE(1970,1,1)

Fill it down and format the column as yyyy-mm-dd hh:mm (Format Cells → Custom). 86,400,000 is the number of milliseconds in a day, and Excel counts dates in days, so the formula is exact.

Step 2 (alternative) — Import into Google Sheets

Use File → Import → Upload and keep "Detect automatically" for the separator. The same formula, =A2/86400000+DATE(1970,1,1), converts the timestamp; set the column to Format → Number → Date time. Sheets handles a few hundred thousand rows comfortably (the hard limit is 10 million cells across the sheet), so daily and hourly files are no problem.

Step 3 — Mind the timezone

The converted dates are UTC. For daily candles that rarely matters; for intraday analysis around session opens or news events, remember your local market hours are shifted — add the offset in the same helper column (e.g. =A2/86400000+DATE(1970,1,1)+TIME(2,0,0) for UTC+2) rather than editing the raw data, and remember that a fixed offset is only right until the next daylight-saving change.

Step 4 — Do something with it

Common pitfalls

Ready to try it? Pick any of the 265+ instruments and export a daily CSV — it opens straight into either tool.

Frequently asked questions

How do I get historical stock or forex prices into Excel?
Download the instrument as a CSV, then use Data → Get Data → From Text/CSV in Excel. The OHLC price columns are ready for charts and formulas; the timestamp column is epoch milliseconds, which =A2/86400000+DATE(1970,1,1) turns into a UTC date-time.
How much historical data can Excel or Google Sheets handle?
Excel holds up to 1,048,576 rows — decades of daily candles or a few years of 1-minute data. Google Sheets allows 10 million cells total. For tick data, use a shorter date range or a programming language instead.
Why do my imported dates look wrong?
The timestamp column is not a date string: it is the number of milliseconds since 1 January 1970 UTC, so it shows as a 13-digit number (or as 1.70415E+12 in a narrow column). Convert it with =A2/86400000+DATE(1970,1,1) and give the cell a date-time format. The result is in UTC.
Can I build candlestick charts in a spreadsheet?
Yes. Excel has a built-in stock (open-high-low-close) chart type, and Google Sheets offers a candlestick chart — both map directly onto the exported OHLC columns.

Related markets

Related guides