ccxt / Market Data

ccxt 公开行情数据:fetchTicker / fetchOHLCV 等接口

公开行情数据是 ccxt 最常用的部分,无需 API key 就能拉取行情、K 线、订单簿与成交历史。下面把常用方法展开成清单表。

公开接口:无需 API key方法:fetchTicker / fetchOHLCV 等来源:官方 README
fetchTicker最新行情
fetchOHLCVK 线
fetchOrderBook订单簿
fetchTrades成交历史
ccxt 公开行情数据接口示意(无需 API key),基于官方 README。
Methods

公开行情数据方法清单

以下为 ccxt 常用的公开行情数据方法,均无需 API key。

方法用途典型参数
fetchTicker单个交易对最新行情'BTC/USDT'
fetchTickers多个交易对行情符号列表
fetchOHLCVK 线 / 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         交易所原始响应(未封装,字段不一致时回退解析它)
方法返回类型取数示例
fetchTickerdictt['last']、t['bid']、t['percentage']
fetchOHLCVlist[list]每根 = [时间戳, 开, 高, 低, 收, 成交量],row[4] 为收盘
fetchOrderBookdictob['bids'][0] = [买一价, 买一量]
fetchTradeslist[dict]tr['price']、tr['amount']、tr['side']
说明:不同交易所字段覆盖有差异,取数前先 print() 一份原始返回;info 保留交易所原始数据,字段不一致时回退解析 info。
Best practice

限频与请求规范

公开接口也有频率限制,频繁拉取需注意以下几点。

  1. 开启内置限频

    初始化时传 'enableRateLimit': True,让 ccxt 自动控制节奏。

  2. 控制请求频率

    批量拉取用 fetchTickers,而不是循环单次 fetchTicker。

  3. 缓存结果

    行情数据变化快,但重复请求同一交易对可考虑本地缓存。

  4. 处理异常与退避

    捕获 RateLimitExceeded 并退避重试,避免硬刚限频。

FAQ

常见问题

拉行情会限频吗?

会。交易所对公开接口也有频率限制,高频拉取可能被限流,需按交易所规则控制请求频率。

fetchOHLCV 的周期支持哪些?

常见周期如 1m/5m/15m/1h/1d 等,具体支持范围因交易所而异,以官方文档为准。

公开接口和私有接口数据一样吗?

公开接口只提供市场公开数据(行情/订单簿/成交),私有接口才涉及你的账户余额与订单。

下一步:私有接口与下单

需要查余额、下单、撤单时,才需要配置 API key 走私有接口。