Methods
公开行情数据方法清单
以下为 ccxt 常用的公开行情数据方法,均无需 API key。
| 方法 | 用途 | 典型参数 |
|---|---|---|
| fetchTicker | 单个交易对最新行情 | 'BTC/USDT' |
| fetchTickers | 多个交易对行情 | 符号列表 |
| fetchOHLCV | K 线 / OHLCV 数据 | 'BTC/USDT','1h' |
| fetchOrderBook | 买卖盘订单簿 | 'BTC/USDT' |
| fetchTrades | 最近成交记录 | 'BTC/USDT' |
说明:具体参数(周期、limit、since 等)与返回结构以官方文档为准,不同交易所支持程度有差异。
Example
拉取 K 线示例(Python)
一个拉取 BTC/USDT 1 小时 K 线的最小示例。
import ccxt
exchange = ccxt.binance()
# 1 小时周期,近 10 根 K 线
ohlcv = exchange.fetch_ohlcv('BTC/USDT', '1h', limit=10)
for row in ohlcv:
print(row) # [时间戳, 开, 高, 低, 收, 成交量]
Fields
返回结构全字段详解
ccxt 对返回结构做了统一封装。下面是 fetchTicker / fetchOHLCV / fetchOrderBook / fetchTrades 的真实结构,取字段不用再猜(示例值为演示用,非实时行情)。
fetchTicker 返回的 ticker dict 全字段
ticker = exchange.fetch_ticker('BTC/USDT')
# ticker 是 dict,常用键(不同交易所覆盖度有差异):
# symbol 交易对,如 'BTC/USDT'
# timestamp 交易所时间戳(毫秒)
# datetime 对应 ISO8601 时间字符串
# high / low 24h 最高 / 最低价
# bid / ask 当前买一 / 卖一价
# bidVolume / askVolume 买一 / 卖一挂单量
# last / close 最新成交价 / 收盘价
# open 24h 开盘价
# vwap 成交量加权均价
# baseVolume 基础币成交量(BTC)
# quoteVolume 计价币成交量(USDT)
# change 相对昨收的绝对涨跌
# percentage 相对昨收的涨跌幅(%)
# info 交易所原始响应(未封装,字段不一致时回退解析它)
| 方法 | 返回类型 | 取数示例 |
|---|---|---|
| fetchTicker | dict | t['last']、t['bid']、t['percentage'] |
| fetchOHLCV | list[list] | 每根 = [时间戳, 开, 高, 低, 收, 成交量],row[4] 为收盘 |
| fetchOrderBook | dict | ob['bids'][0] = [买一价, 买一量] |
| fetchTrades | list[dict] | tr['price']、tr['amount']、tr['side'] |
说明:不同交易所字段覆盖有差异,取数前先
print() 一份原始返回;info 保留交易所原始数据,字段不一致时回退解析 info。Best practice
限频与请求规范
公开接口也有频率限制,频繁拉取需注意以下几点。
开启内置限频
初始化时传
'enableRateLimit': True,让 ccxt 自动控制节奏。控制请求频率
批量拉取用 fetchTickers,而不是循环单次 fetchTicker。
缓存结果
行情数据变化快,但重复请求同一交易对可考虑本地缓存。
处理异常与退避
捕获 RateLimitExceeded 并退避重试,避免硬刚限频。
FAQ
常见问题
拉行情会限频吗?
会。交易所对公开接口也有频率限制,高频拉取可能被限流,需按交易所规则控制请求频率。
fetchOHLCV 的周期支持哪些?
常见周期如 1m/5m/15m/1h/1d 等,具体支持范围因交易所而异,以官方文档为准。
公开接口和私有接口数据一样吗?
公开接口只提供市场公开数据(行情/订单簿/成交),私有接口才涉及你的账户余额与订单。