Ethereum OHLCV Dataset: 6 Timeframes from 4.1 Billion Ticks
A practical guide to aggregating tick-level crypto data into OHLCV candles — with a free sample to download
The Problem
If you're building a trading bot or backtesting a strategy, you need OHLCV data (Open, High, Low, Close, Volume) at multiple timeframes. But raw tick-level data from exchanges is messy: millions of rows per day, timestamps in different units, bid-ask spreads, and no standard format.
You could download it yourself from Binance Vision (~85GB per asset) and spend weeks engineering the pipeline. Or you could skip the engineering and get production-ready data in minutes.
The Solution: Pre-Aggregated OHLCV Packs
We've done the heavy lifting. Here's what we published:
- 4.1 billion Ethereum trades (6.8 years: 2020–2026)
- 6 timeframes: 1m, 5m, 15m, 1h, 4h, 1d
- Apache Parquet format (ZSTD compression, ~120 MB)
- Zero look-ahead bias (verified by ratio scaling)
- Ready to backtest (no preprocessing required)
Free Sample
Try the 1-week sample first: 2024-08-05 to 2024-08-12. Same 6 timeframes, same quality, ~600 KB.
Available on:
Technical Specs
Candle Counts
| Timeframe | Count | Ratio vs 1m |
|---|---|---|
| 1m | 3,457,824 | — |
| 5m | 691,571 | 5.00x ✓ |
| 15m | 230,529 | 15.00x ✓ |
| 1h | 57,642 | 60.00x ✓ |
| 4h | 14,417 | 240.00x ✓ |
| 1d | 2,403 | 1440.00x ✓ |
Perfect ratio scaling confirms zero bucketing errors.
Data Quality
✅ Chronological order verified
✅ Zero look-ahead bias (each candle's close uses data ≤ that candle's time)
✅ No negative volumes
✅ OHLC logical constraints (high ≥ close ≥ low, high ≥ open ≥ low)
✅ Complete coverage — zero undeclared gaps from 2020-01-01 to 2026-07-30
How It's Made
Aggregated from Binance Vision tick data using DuckDB:
- Load ~4.1B trades from Parquet
- Bucket by timestamp (FLOOR to nearest minute)
- Aggregate: min(low), max(high), first(open), last(close), sum(volume), sum(buy_volume)
- Verify ratio scaling across timeframes
- Compress with ZSTD and deliver
No magic. Pure engineering.
Use Cases
- Backtesting: Load all 6 timeframes and run your strategy on 6.8 years of real data
- ML training: 3.4M one-minute candles = millions of labeled examples
- Technical analysis: Study Ethereum's intraday patterns without the download grind
Price & License
Full dataset (6.8 years): $19 USD (one-time)
Use code GLITCH20 for 20% off
License: Personal and research use only. Commercial use prohibited.
Get Started
- Download the free sample (1 week, ~600 KB)
- Load it in Pandas/Polars/DuckDB (see code example below)
- Backtest or analyze
- Buy the full dataset when you're ready
Example Code
import pandas as pd
# Load all 6 timeframes
timeframes = ["1m", "5m", "15m", "1h", "4h", "1d"]
data = {tf: pd.read_parquet(f"ETH_OHLCV_{tf}.parquet") for tf in timeframes}
# Plot 1h candles
data["1h"].set_index("candle_time")["close"].plot()
# Backtest: resample to 4h and calculate RSI
candles_4h = data["1h"].set_index("candle_time").resample("4H").agg({"open": "first", "high": "max", "low": "min", "close": "last", "volume": "sum"})
print(f"Ready to backtest on {len(candles_4h):,} 4-hour candles")
Questions?
Visit theglitchlist.com?utm_source=devto&utm_medium=referral&utm_campaign=free_sample or reply in the comments.
Free sample: Download 1-week sample on Kaggle
Full dataset: Buy on Gumroad for $19
Use code GLITCH20 for 20% off all products at The Glitch List.
Top comments (0)