Files
foxhunt/wave153_bakeoff_cryptodatadownload/QUICK_REFERENCE.md
jgrusewski e8a68ee39f Download 360 DBN files (36.3 MB) using Rust databento client
- Created data/examples/download_ml_training_data.rs using reqwest + Databento HTTP API
- Downloaded 90 days × 4 symbols (ES.FUT, NQ.FUT, ZN.FUT, 6E.FUT)
- Files saved to test_data/real/databento/ml_training/
- Total: 360 files, 15 MB compressed DBN format
- Used existing Rust pattern from download_nq_fut.rs
- API key loaded from .env file
- 100% success rate (360/360 files)
- Ready for ML training benchmarks

Next: Create simplified training benchmark for RTX 3050 Ti GPU measurements
2025-10-13 13:30:02 +02:00

3.2 KiB

CryptoDataDownload - Quick Reference Card

🎯 Bottom Line

Score: 8.0/10 Verdict: RECOMMENDED for production use


📥 Download URLs

# BTC/USD (44 MB)
curl -o btc_2024.csv https://www.cryptodatadownload.com/cdd/Bitstamp_BTCUSD_2024_minute.csv

# ETH/USD (46 MB)
curl -o eth_2024.csv https://www.cryptodatadownload.com/cdd/Bitstamp_ETHUSD_2024_minute.csv

📊 Key Metrics

Metric BTC/USD ETH/USD
Completeness 96.65% 98.03%
OHLCV Violations 0 0
Outliers 0 0
Zero Volume 3.34% 11.26%
Price Range $38K-$108K $2.1K-$4.1K
Total Rows 509,364 516,678

Strengths

  • Zero data integrity issues (perfect OHLCV)
  • No extreme outliers (>10% moves)
  • Free & no API key required
  • Full 2024 coverage (366 days)
  • Daily updates

⚠️ Weaknesses

  • 11% zero-volume bars (ETH)
  • 3-4% data gaps
  • Single exchange (Bitstamp only)
  • No real-time API
  • Manual download required

💻 Python Quick Start

import pandas as pd

# Load data (skip header row)
df = pd.read_csv('Bitstamp_BTCUSD_2024_minute.csv', skiprows=1)
df['date'] = pd.to_datetime(df['date'])
df = df.sort_values('date')  # Chronological order

# Handle gaps (forward-fill)
df = df.set_index('date').asfreq('1min', method='ffill').reset_index()

# Filter zero-volume bars (optional)
df_filtered = df[df['Volume BTC'] > 0]

print(f"Total bars: {len(df):,}")
print(f"Date range: {df['date'].min()} to {df['date'].max()}")

🦀 Rust Integration

// Convert to Parquet for Foxhunt
use crate::data::parquet_persistence::ParquetMarketDataWriter;

let writer = ParquetMarketDataWriter::new(
    "test_data/bitstamp_btcusd_2024.parquet"
);

// Write OHLCV bars
for bar in csv_reader.into_iter() {
    writer.write_event(MarketDataEvent::from_ohlcv(bar)).await?;
}

📝 Data Format

unix,date,symbol,open,high,low,close,Volume BTC,Volume USD
1704067200,2024-01-01 00:00:00,BTC/USD,42258,42268,42257,42268,1.049735,44361.10698

Notes:

  • Header row: website URL (skip it!)
  • Reverse chronological (newest first)
  • Unix timestamps + human-readable dates
  • Separate volume columns (crypto + USD)

🔍 Use Cases

Use Case Suitability
ML Training Excellent
Backtesting Excellent
Research Excellent
Production Signals ⚠️ Good (handle gaps)
Real-time Trading Not suitable (no API)
Multi-exchange Arb Not suitable (single source)

📂 File Locations

/home/jgrusewski/Work/foxhunt/wave153_bakeoff_cryptodatadownload/
├── Bitstamp_BTCUSD_2024_minute.csv (44 MB)
├── Bitstamp_ETHUSD_2024_minute.csv (46 MB)
├── analysis_report.json            (detailed metrics)
├── BAKEOFF_SUMMARY.md             (full report)
└── QUICK_REFERENCE.md             (this file)

🚀 Next Steps

  1. Data downloaded and validated
  2. ⏭️ Convert to Parquet format
  3. ⏭️ Integrate with backtesting_service
  4. ⏭️ Train ML models on historical data
  5. ⏭️ Compare to alternative data sources

Last Updated: 2025-10-12 Analysis: Wave 153 Data Source Bake-Off