DEV Community

Jalvart Studio
Jalvart Studio

Posted on Edited on

Ethereum OHLCV Dataset: 6 Timeframes from 4.1 Billion Ticks

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:

  1. Load ~4.1B trades from Parquet
  2. Bucket by timestamp (FLOOR to nearest minute)
  3. Aggregate: min(low), max(high), first(open), last(close), sum(volume), sum(buy_volume)
  4. Verify ratio scaling across timeframes
  5. 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

  1. Download the free sample (1 week, ~600 KB)
  2. Load it in Pandas/Polars/DuckDB (see code example below)
  3. Backtest or analyze
  4. 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")
Enter fullscreen mode Exit fullscreen mode

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)