Pandas Ready

Historical Forex Data
for Python

Pandas-ready Parquet format. Load 9 million rows in seconds. No API rate limits. No monthly subscriptions. Just clean data.

12x
Faster than CSV
10x
Smaller files
200M+
Data points

Quick Start

Load millions of rows in seconds

quickstart.py
import pandas as pd

# Load M1 data - millions of rows in seconds
df = pd.read_parquet('EURUSD_M1.parquet')

print(f"Rows: {len(df):,}")
print(df.head())

# Output:
# Rows: 9,421,043
#              timestamp    open    high     low   close  volume
# 0 2000-01-03 00:00:00  1.0088  1.0088  1.0085  1.0085    42
2-3s
Load time (M1)
~180MB
File size (vs 2GB CSV)
Native
datetime64 types

Why Parquet instead of CSV?

MetricCSVParquet
File Size (EUR/USD M1)~2.1 GB~180 MB
Load Time45-60 seconds2-3 seconds
Type PreservationLost (strings)Native dtypes
Datetime HandlingNeeds parsingAlready datetime64
CompressionNoneSnappy (built-in)

Why download vs API?

API Subscription (Polygon, Quandl)

  • $50-100/month ongoing cost
  • Rate limits slow down backtests
  • Internet required for every run
  • API changes break your code

One-Time Download (Us)

  • $49-129 one-time, own forever
  • No rate limits, instant access
  • Works offline, on any machine
  • Parquet format is stable, standard

Math: At $75/month for Polygon, you'd pay $900/year. Our full bundle is $129 one-time. Break even in less than 2 months.

Common Patterns

Load Multiple Pairs

majors = ['EURUSD', 'GBPUSD', 'USDJPY', 'USDCHF']
data = {pair: pd.read_parquet(f'{pair}_H1.parquet') for pair in majors}

eurusd = data['EURUSD'].set_index('timestamp')

Resample Timeframes

df = pd.read_parquet('EURUSD_M1.parquet').set_index('timestamp')

# M1 to H4
df_h4 = df.resample('4H').agg({
'open': 'first', 'high': 'max',
'low': 'min', 'close': 'last', 'volume': 'sum'
}).dropna()

Calculate Returns

df = pd.read_parquet('EURUSD_D1.parquet').set_index('timestamp')

df['returns'] = df['close'].pct_change()
volatility = df['returns'].std() * np.sqrt(252)
print(f"Annual volatility: {volatility:.2%}")

Works With

PandasNumPyBacktesting.pyVectorBTscikit-learnTensorFlowPyTorchDuckDB

Start building

Get instant access to 25 years of clean forex data. One-time purchase, use forever.

Secure Stripe Checkout
7-day refund guarantee

$15

Single Pair

Popular

$49

8 Major Pairs

$129

All 66 Pairs

Get Forex Data Now

Parquet format included. CSV add-on available for +$10.