Global Index Daily OHLCV — 20 Years (2006–2026)
Twenty years of daily OHLCV for 36 major global equity indices, volatility benchmarks, and US Treasury-yield series — 185,681 index-day rows in a single gzipped CSV. Coverage spans US broad-market (S&P 500/400/600, NASDAQ Composite, NASDAQ-100, Dow, Russell 2000, NYSE), volatility (VIX, VXN), Treasury yields (5y/10y/30y), European majors (FTSE 100, DAX, CAC 40, Euro Stoxx 50, IBEX, FTSE MIB, SMI, AEX, OMX), Asia-Pacific (Nikkei 225, TOPIX, Hang Seng, Shanghai/Shenzhen, KOSPI, TAIEX, SENSEX, NIFTY 50, ASX 200, NZX 50), and Americas ex-US (TSX, Bovespa, IPC, Merval). Pairs naturally with the existing Index Constituent History listing for survivorship-bias-free benchmark studies. Each row tags symbol, human-readable name, country (ISO), and quote currency. Read with pandas.read_csv(path, compression='gzip', parse_dates=['date']). Useful for: benchmark backtesting, beta computation, regime detection (VIX/yields), cross-asset correlation studies, and as the reference series for relative-strength signals.
Use Cases
- Index-level backtesting and benchmark beta computation
- Regime detection from VIX and Treasury-yield series
- Cross-country / cross-asset correlation studies
- Pairing with the Index Constituent History listing for survivorship-bias-free analyses
- Reference index for relative-strength and breadth signals
Methodology
Curated list of 39 global equity indices, volatility benchmarks, and US Treasury-yield series. Each symbol fetched in two windows (2006–2015 / 2016–present) against FMP's /stable/historical-price-eod/full endpoint (5,000-row cap per call). Output is a single gzipped CSV sorted by (symbol, date ascending), with human-readable name, ISO country, and quote currency joined onto each row.
Update Schedule
Static snapshot. Re-run weekly or quarterly for fresh data.
Attribution
Source: end-of-day index quotes via Financial Modeling Prep.
Schema
| name | type |
|---|---|
| symbol | string |
| name | string |
| country | string |
| currency | string |
| date | date |
| open | number |
| high | number |
| low | number |
| close | number |
| volume | number |
| change | number |
| changePercent | number |
| vwap | number |
Sample Data
| low | date | high | name | open | vwap | close | change | symbol | volume | country | currency | changePercent |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 437.56 | 2006-01-02 | 440.65 | AEX (Netherlands) | 437.56 | 439.0725 | 440.52 | 2.96 | ^AEX | 0.0 | NL | EUR | 0.67648 |
| 439.94 | 2006-01-03 | 445.79 | AEX (Netherlands) | 441.37 | 442.2575 | 441.93 | 0.55999 | ^AEX | 0.0 | NL | EUR | 0.12688 |
| 443.18 | 2006-01-04 | 446.72 | AEX (Netherlands) | 445.64 | 445.135 | 445.0 | -0.64001 | ^AEX | 0.0 | NL | EUR | -0.14361 |
Get this via API
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'Global Index Daily OHLCV — 20 Years (2006–2026)' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urls
# 1. Add dAgentBase once, in any MCP client. No install, no vendor keys.
# Claude.ai / Claude Desktop: Settings -> Connectors -> Add custom connector
# Cursor / Claude Code / others: mcp.json
{
"mcpServers": {
"dagentbase": {
"url": "https://dagentbase.com/api/mcp",
"headers": { "Authorization": "Bearer dm_live_YOUR_KEY" }
}
}
}
# 2. Then ask your agent, in plain language:
# "Preview 'Global Index Daily OHLCV — 20 Years (2006–2026)' and, if it fits, claim it and download the files."
# Tools it will use: search_listings -> preview_listing -> purchase_listing -> get_download_urlsone time · open license
Details
Available formats