
Building Stooq-Style Daily Data from Robinhood
rh_data converts Robinhood's daily equity history into the row format and directory conventions used by Stooq's d_us_txt.zip. It provides paired scripts for an initial backfill and later incremental updates across three universes: symbols from the Stooq US archive, all active Robinhood ADRs, and every active Robinhood equity instrument.
Every market writes the same daily OHLCV text rows and maintains its own SQLite database by default. The bars table uses (symbol, market, date) as its primary key, making updates idempotent UPSERTs and indexed reads straightforward.
Start safely
After configuring robin_stocks 3.4.0, toml, and the repository's local login flow, plan a small run first:
.\.venv\Scripts\python.exe rh_data\fetch_history.py --dry-run --limit 20
.\.venv\Scripts\python.exe rh_data\fetch_history.py --limit 20
The full scripts batch up to 50 symbols per history request and default to no more than 100 requests per minute. Daily jobs append only newer bars and update the matching database. The Stooq-universe pair can also overlay its results onto a copy of the original ZIP with --zip-out.
Robinhood exposes roughly five years of daily history, so it cannot replace older Stooq rows. Delisted or unavailable symbols are logged and skipped, and interpolated bars are preserved. This dataset is an engineering input, not a guarantee of market-data completeness or trading suitability.
Visit the rh_data repository for all six scripts, schema details, and caveats.