CCXT(CryptoCurrency eXchange Trading Library)是一个强大的开源库,支持 JavaScript、Python、PHP、C# 和 Go 等多种编程语言,专为加密货币交易和电子商务应用而设计。它允许开发者无缝连接全球众多加密货币交易所和支付处理服务,快速获取市场数据,并用于存储、分析、可视化、指标开发、算法交易、策略回测、机器人编程等相关软件工程。
该库主要面向程序员、开发者、技术型交易员、数据科学家和金融分析师,用于构建高效的交易算法和金融应用。
核心特性与优势
CCXT 提供了一系列强大功能,使其成为开发者的首选工具:
- 广泛的交易所支持:目前已支持超过 100 家加密货币交易所,并且持续增加中。
- 完整的 API 实现:全面实现了各交易所的公共 API 和私有 API。
- 数据标准化:提供可选的标准化数据,便于进行跨交易所分析和套利策略研究。
- 统一且易用的 API:开箱即用的统一 API 接口,极大降低了集成复杂度。
- 多语言与多环境支持:支持 Node.js 10.4+、Python 3、PHP 8.1+、.NET (netstandard2.0/2.1)、Go 1.20+ 以及现代 Web 浏览器。
安装指南
安装 CCXT 最简便的方式是使用各语言的包管理器。
JavaScript (NPM)
适用于 Node.js 和浏览器环境,要求支持 ES6 和 async/await 语法(Node 7.6.0+)。
npm install ccxt使用 CommonJS 语法引入:
var ccxt = require('ccxt');
console.log(ccxt.exchanges); // 打印所有支持的交易所使用 ESM 语法引入:
import {version, exchanges} from 'ccxt';
console.log(version, Object.keys(exchanges));对于浏览器环境,可以直接通过 CDN 引入打包好的脚本。
Python
通过 PyPI 安装:
pip install ccxt引入并使用:
import ccxt
print(ccxt.exchanges) # 打印所有支持的交易所类Python 版本支持异步模式(asyncio),适用于高性能场景。
PHP
通过 Composer 安装:
composer require ccxt/ccxt引入并使用:
include "ccxt.php";
var_dump (\ccxt\Exchange::$exchanges); // 打印所有支持的交易所类其他语言
CCXT 同样为 C# (.NET) 和 Go 语言提供了完善的包支持,可以通过 NuGet 和 Go Modules 进行安装。
Docker
对于希望参与项目贡献的开发者,CCXT 提供了 Docker 镜像,其中包含了所有支持的语言和依赖环境,便于运行构建脚本和测试。
docker-compose run --rm ccxt普通用户无需使用 Docker,直接安装相应包即可。
使用入门
公共 API 与私有 API
CCXT 库由公共部分和私有部分组成。
公共 API:无需注册账户或 API 密钥即可使用,提供对公共信息的无限制访问,包括:
- 市场数据
- 交易对信息
- 价格馈送(汇率)
- 订单簿
- 交易历史
- 实时行情(Ticker)
- 用于图表绘制的 OHLC(V) 数据
- 其他公共端点
私有 API:用于执行交易和账户管理操作,需要从交易所网站获取 API 密钥。这通常意味着您需要注册交易所账户并创建密钥。私有 API 允许:
- 管理个人账户信息
- 查询账户余额
- 下达市价单和限价单进行交易
- 法币与加密货币的充值、提现
- 查询个人订单
- 获取账本历史
- 账户间资金划转
- 使用商户服务
代码示例
以下是在不同语言中使用 CCXT 的基本示例。
JavaScript 示例
import { binance } from 'ccxt';
const exchange = new binance({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
});
const ticker = await exchange.fetchTicker('BTC/USDT');
console.log(ticker);Python 示例
import ccxt
exchange = ccxt.binance({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
})
ticker = exchange.fetch_ticker('BTC/USDT')
print(ticker)PHP 示例
$exchange_id = 'binance';
$exchange_class = "\\ccxt\\$exchange_id";
$exchange = new $exchange_class (array (
'apiKey' => 'YOUR_API_KEY',
'secret' => 'YOUR_SECRET',
));
$ticker = $exchange->fetch_ticker('BTC/USDT');
var_dump($ticker);命令行界面 (CLI)
CCXT 提供了一个强大的命令行界面 (CLI),使您可以直接从终端与任何支持的交易所交互,无需编写代码即可快速查询余额、下单或获取交易数据。
安装 CLI
通过 npm 全局安装:
npm i ccxt-cli -g使用 CLI
使用 --help 查看帮助,或使用 explain 命令了解特定方法的用法。
示例:查看createOrder方法的参数说明
ccxt explain createOrder示例:在币安上下达一个市价买单
ccxt binance createOrder BTC/USDT market buy 0.1API 密钥可以通过环境变量或配置文件 ($CACHE/config.json) 设置。
常见问题
CCXT 是什么?
CCXT 是一个开源的加密货币交易库,它用一个统一的 API 接口连接了全球超百家交易所,支持 JavaScript、Python、PHP、C# 和 Go 等多种编程语言,旨在帮助开发者快速构建交易机器人、分析工具和相关的金融应用。
使用 CCXT 需要付费吗?
CCXT 是一个基于 MIT 协议的开源项目,可以免费使用。它本身不收取任何费用,交易者支付的手续费与直接使用交易所时相同。需要注意的是,使用它风险自担,不提供任何担保。
如何获取交易所的 API 密钥?
您需要前往您想要交易的交易所的官方网站,注册账户后,通常在账户设置或安全设置页面可以找到创建和管理 API 密钥的选项。请注意保管好您的密钥,不要泄露给他人。
CCXT 支持哪些交易所?
CCXT 支持包括币安、OKX、Coinbase、Kraken 等在内的超 100 家主流交易所,并且列表仍在不断更新。完整的支持列表请查阅项目官方文档或 GitHub 仓库。
在使用私有 API 时遇到错误怎么办?
首先,请确认您的 API 密钥和密钥是否正确无误,并具有必要的权限(如交易、读取余额等)。其次,查看交易所的官方 API 文档,了解其特定要求和速率限制。最后,可以查阅 CCXT 的官方手册和 GitHub Issues 寻求帮助。
CCXT 是否支持异步操作?
是的,CCXT 在 Python 和 JavaScript 等语言中支持异步模式(如 asyncio),这对于需要高性能和高并发处理市场数据的应用至关重要。
项目贡献与支持
CCXT 是一个由社区驱动的开源项目,欢迎所有开发者为其贡献力量。在提交代码之前,请务必阅读项目中的 CONTRIBUTING 文档和 Manual 手册。
开发团队投入了大量时间进行开发和维护。如果您觉得 CCXT 对您有帮助,并希望支持其进一步发展,可以通过项目官方页面进行赞助或捐赠。
风险提示
CCXT 是一个非托管型的 API 中介软件。这意味着:
- CCXT 不是交易中介,在任何时候都不会持有交易者的资金。
- 交易者自行安装并使用 CCXT 直接与交易所通信。
- 该软件按“原样”提供,使用 MIT 许可证,使用者需自担风险。
- 它是许多交易所的官方 API 经纪商,相关返佣和处理均直接由各交易所根据其条款进行。
建议所有使用者在深入了解其工作原理和潜在风险后,再于生产环境中使用。