CCXT unified crypto exchange library (100+ exchanges). Free public market data. Fallback when OKX is unavailable.
CCXT is a unified cryptocurrency exchange trading library supporting 100+ exchanges including Binance, Bybit, OKX, Coinbase, Kraken, and more. Public market data (OHLCV, tickers, order books) requires no API key.
pip install ccxtimport ccxt
exchange = ccxt.binance({"enableRateLimit": True})
# Fetch daily OHLCV
ohlcv = exchange.fetch_ohlcv("BTC/USDT", "1d", limit=100)
# Returns: [[timestamp, open, high, low, close, volume], ...]
# Fetch ticker
ticker = exchange.fetch_ticker("ETH/USDT")
print(f"ETH price: {ticker['last']}")
| Method | Description | Returns |
|---|
fetch_ohlcv(symbol, timeframe, since, limit) | Historical candles | [[ts, o, h, l, c, v], ...] |
fetch_ticker(symbol) | Latest quote | {last, bid, ask, volume, ...} |
fetch_tickers(symbols) | Batch quotes | {symbol: ticker} |
fetch_order_book(symbol, limit) | Order book | {bids, asks, timestamp} |
fetch_trades(symbol, since, limit) | Recent trades | [{price, amount, side, timestamp}, ...] |
1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 12h, 1d, 1w, 1M
Note: not all exchanges support all timeframes. Use exchange.timeframes to check.
CCXT uses slash format: BTC/USDT, ETH/BTC, SOL/USDT
The project's DataLoader automatically converts BTC-USDT (hyphen) to BTC/USDT (slash).
Set via environment variable: CCXT_EXCHANGE=binance (default)
Popular exchanges: binance, bybit, okx, coinbase, kraken, bitget, gate
The project has a built-in CCXT DataLoader at backtest/loaders/ccxt_loader.py. It serves as a fallback when the OKX loader is unavailable.
For long history, CCXT paginates via the since parameter (millisecond timestamp). The built-in loader handles this automatically (up to 200 pages).