Risk-Aware Trading Agents

Home › Guides

Point-in-time US stock market data for 2026: prices, VIX and news

A frozen copy of the 2026 US stock market ships with the open-source Risk-Aware Trading Agents package: daily prices, the VIX term structure and the year's news, each value as it was known at that day's close. Every backtest and every LLM trading agent run on it gives the same numbers on any machine, and the files carry SHA-256 hashes that a paper can cite.

The data files Research kit docs News backtesting

What is inside

PartContents
StocksDaily bars from 2024-01-02 to 2026-11-11 (719 trading days) for 64 large-cap US stocks: the megacap, tech and defensive watchlists
ETFs25 index, sector and bond ETFs: SPY, QQQ, IWM, DIA, VTI, RSP, the 11 sector SPDRs, BIL, SGOV, SHV, SHY, IEF, TLT, HYG, LQD
VolatilityVIX9D, VIX and VIX3M (the VIX term structure) and VVIX
Cross-assetGLD (gold), USO (oil), UUP (US dollar), IBIT (bitcoin): ETFs that close with the stock market
News16,945 items for the 64 stocks in 2026: Benzinga headlines (titles only, no article text) and SEC 8-K filings with the time SEC accepted them
CalendarFOMC decisions, CPI, PPI and jobs reports, as scheduled in advance

2026 is the test year. 2024 and 2025 are there so that slow indicators such as the 200-day EMA and the 52-week high are fully warmed up on the first trading day of 2026.

Files and columns

src/riskaware/research/data/market_2026.csv.gz (1.4 MB, 69,738 rows):

date,symbol,open,high,low,close,volume,adj,dividend,split
2026-04-08,NVDA,...

src/riskaware/news/data/news_2026.jsonl.gz: one JSON object per line with ts (publication time, UTC), symbol, headline, source and feed; SEC filings also carry the form items (for example items:2.02,9.01 for an earnings release) and the sec.gov link. manifest.json lists the period, the symbols and the SHA-256 of both files.

Load it

from riskaware.research.data import bundled_market

market = bundled_market()
aapl = market.frame("AAPL")        # total-return OHLCV, 2024-01-02 to 2026-11-11
traded = market.raw("AAPL")        # prices as traded, dividends, splits, adj factor
vix = market.raw("^VIX")["close"]

import pandas as pd                # or read the file directly
df = pd.read_csv("src/riskaware/research/data/market_2026.csv.gz", parse_dates=["date"])

One day at a time

The point of the data is what was known on each day. riskaware research day 2026-04-08 (or market_day over MCP) shows everything known at that close: the market regime, VIX and its term structure, fear and greed, sector breadth, the macro events of the next two weeks, and for each stock its returns, indicators, technical setups and the news published before 16:00 New York time.

2026-04-08 (Wednesday)  decided after the close (16:00 New York); orders fill at the next open, 2026-04-09
Regime: UNCERTAIN (Uncertain: hold, no selling, buy only at strong support)
VIX 21.04  VIX9D 19.16  VIX3M 22.68  VVIX 111.07  term structure contango  fear & greed 54.47
Scheduled: CPI inflation 2026-04-10, PPI producer prices 2026-04-14

What "point in time" means here

Cite it

Cite the data version (2026-11-11) and the SHA-256 of the two files from manifest.json. The repository's CITATION.cff gives the software citation, and every experiment's own manifest records the package version and commit.

Sources and limits

More guides

Backtest with news, without look-aheadPoint-in-time replay and the look-ahead check Test LLM trading agentsStep by step, blind, over MCP Risk-Aware Trading AgentsThe agents, brokers and dashboard