Banner

CCXT

2026-10-16

CCXT 上手教程

CCXT 上手建议按“装库 → 读公共行情 → 配密钥 → 沙盒试单 → 小资金实盘”推进。它本身是代码库,不是带界面的交易终端。

1. 安装

Python:

pip install ccxt

JavaScript:

npm install ccxt

建议配合 python-dotenv 管理密钥,不要写死在代码里。

pip install python-dotenv

2. 先跑通公共行情

公共接口不需要 API Key,适合最先验证:

import ccxt

exchange = ccxt.binance({"enableRateLimit": True})
exchange.load_markets()

ticker = exchange.fetch_ticker("BTC/USDT")
print(ticker["last"])

ohlcv = exchange.fetch_ohlcv("BTC/USDT", "1h", limit=100)

enableRateLimit=True 很关键,避免请求过快被交易所限流。

3. 安全配置 API Key

在交易所后台创建 API Key 时:

  • 只开“读取 + 交易”权限
  • 坚决不开提币权限
  • 绑定 IP 白名单
  • 用 .env 或密钥管理服务保存,不要上传到 Git
import os
from dotenv import load_dotenv
load_dotenv()

exchange = ccxt.binance({
    "apiKey": os.getenv("EXCHANGE_API_KEY"),
    "secret": os.getenv("EXCHANGE_API_SECRET"),
    "enableRateLimit": True,
})

4. 用沙盒 / 测试网试单

开发阶段不要直接连实盘。部分交易所支持沙盒或测试网,可先验证下单、撤单、查询订单流程。

exchange.set_sandbox_mode(True)

balance = exchange.fetch_balance()
print(balance["USDT"]["free"])

5. 下单与查询

order = exchange.create_limit_buy_order("BTC/USDT", 0.001, 60000)
print(order["id"])

orders = exchange.fetch_open_orders("BTC/USDT")
exchange.cancel_order(order["id"], "BTC/USDT")

注意金额和价格要符合交易所精度,可用 amount_to_precision、price_to_precision 处理。

6. 从“行情”到“策略”的常见路径

  1. 用 fetch_ohlcv 拉 K 线;
  2. 用 pandas / numpy 计算指标;
  3. 先做模拟盘或 dry-run;
  4. 确认稳定后再小资金实盘;
  5. 加上日志、告警和异常恢复。

7. 必须注意的安全点

  • 不要硬编码密钥:用环境变量或密钥管理服务。
  • 提币权限一律关闭:API Key 泄露时能降低损失。
  • CCXT 曾曝出部分交易所硬编码 broker ID 问题:实盘前建议检查所用交易所实现,必要时升级版本或显式覆盖相关参数。
  • 先小资金验证:量化程序一旦有 bug,可能连续下单。
  • 遵守交易所限频:不要自行高频轮询,优先用 enableRateLimit 或 WebSocket。
7