ccxt:加密市场的"万能转接头"
我的掌握程度:
先掌握这个答案
能力版图:公开数据(无需密钥)——K线/深度/资金费率/成交;私有操作(需API密钥)——账户/下单(学习期只用公开层)。拉历史:fetch_ohlcv(symbol, '1h', since, limit)——注意limit(每次几百根,长历史要分页循环拼接)。三个口径:①时间全UTC(与A股的北京时间差异——统一转换再混合研究);②资金费率(fundingRate)——每8小时结算,是永续合约的持有成本(套利策略的核心数据);③多所价差——同币不同所价格可差0.1-0.5%(搬砖空间也是滑点现实)。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
本阶段实战方法 · 一条能复现的数据流水线
把接口返回的数据变成可用于因子研究的面板时,先处理时点、主键与单位。
- 建立数据字典:字段、单位、时区、交易日历、数据源、抓取时间、原始价与复权因子。
- 用(date, code)查重,区分停牌、未上市、窗口不足和真实缺失;不要用向后填充把未来值带回过去。
- 保存原始快照与清洗日志,固定随机种子和环境版本;接口字段变化时先核对官方文档。
使用边界
- 报告期不等于公告可用日,盘后公告通常不能用于当天收盘前决策。
- API输出名为“动态市盈率”时不能直接改名TTM;浏览器练习不支持任意原生库或行情抓取接口。
不懂的术语:滑点(Slippage)
背景 · 从一个困惑说起
加密市场有几十家交易所、每家API各不相同——ccxt把这些差异抹平:一套统一接口操作所有主流所(行情/深度/资金费率/下单)。它是练兵场(q-189/190)的官方装备部。
由此产生的问题
ccxt的能力版图(公开行情/私有交易)?分钟级历史与资金费率怎么拉?三个加密特有的数据口径(UTC时间/费率/多所价差)?
核心概念
能力版图:公开数据(无需密钥)——K线/深度/资金费率/成交;私有操作(需API密钥)——账户/下单(学习期只用公开层)。拉历史:fetch_ohlcv(symbol, '1h', since, limit)——注意limit(每次几百根,长历史要分页循环拼接)。三个口径:①时间全UTC(与A股的北京时间差异——统一转换再混合研究);②资金费率(fundingRate)——每8小时结算,是永续合约的持有成本(套利策略的核心数据);③多所价差——同币不同所价格可差0.1-0.5%(搬砖空间也是滑点现实)。
为什么需要它
①练兵场的免费军火:加密数据免费、7×24、粒度到tick——把课程全部方法(因子/回测/ML)在加密上跑一遍的成本为零;②口径训练的进阶场:UTC/费率/多所——比传统市场更多的口径细节,练完回传统市场如降维;③策略素材:资金费率套利(q-190)、跨所价差、链上数据结合——个人可及的差异化领域。
实际应用场景
起步三步:pip install ccxt→binance=ccxt.binance()→fetch_ohlcv('BTC/USDT','1d')拉日线;进阶:资金费率时间序列(费率套利回测的原料)。
与之前知识的联系
q-026(加密市场)与q-189/190(练兵场与费率套利)的数据后台;q-061(缓存)同样适用于它的历史拉取;多所价差连接微观结构研究。
⚠ 常见误解
- ccxt要API密钥才能用:公开行情层完全免密——学习期不碰私有层(也无需安全顾虑)
- 拉全历史一次搞定:limit限制需要分页循环(since参数翻页)——写成分页函数一次到位
- 加密K线时间与A股对齐:ccxt返回UTC毫秒时间戳——pd.to_datetime(ts, unit='ms', utc=True)再转目标时区
🛠 本题实践任务
用ccxt拉BTC与ETH近90天日线(转成北京时间);再拉一次资金费率记录(fetch_funding_rate_history),统计:正费率天数占比与累计费率——当前「收租」环境如何?
💡 提示(先自己想5分钟再看)
enableRateLimit=True必开;费率为正=多头付空头(做空永续收费)。
✅ 验收标准
两个标的的收益+一份费率统计。练兵场的装备领取完毕。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(加密市场特点、API概念),再用案例、公式和代码帮助理解。此功能需要先启用服务。