Skip to content
mabao edited this page Jun 18, 2021 · 1 revision

CCXT - 加密货币交易所接口库

Build Status npm PyPI NPM Downloads NSP Status Gitter Supported Exchanges Open Collective

一个用于加密货币电子化交易的 JavaScript / Python / PHP 库,支持诸多比特币/以太币/山寨币交易市场的交易 API 。

CCXT 库可用于世界各地的加密货币/山寨币交易所的连接和交易,以及转账支付处理服务。它提供了快速访问市场数据的途径,可用于存储数据,分析,可视化,指标开发,算法交易,策略回测,机器人程序,网上商店集成及其它相关的软件工程。

它可被程序员,开发工程师,技术熟练的交易员,数据科学家和财务分析师用于在其基础上构建交易算法。

当前具有的特性:

  • 支持许多交易所,并将添加更多
  • 为上述交易所实现了全部公共和私有 API
  • 所有货币,山寨币和交易对,价格,订单簿,交易,行情等...
  • 可选的用于跨交易所或跨币种分析和套利的标准化数据
  • 一个非常容易集成的开箱即用的统一 API
  • 可在 Node 7.6+,Python 2 和 3,PHP 5.3+ 及 Web 浏览器中使用

CCXT on GitHub | 安装 | 使用方法 | 指南 | 范例 | 更新日志 | 贡献

支持的加密货币交易所

CCXT 库目前支持以下 115 个加密货币交易所市场及其交易 API:

id 名称 版本 文档 国家/地区
_1broker _1broker 1Broker 2 API 美国
_1btcxe _1btcxe 1BTCXE * API 巴拿马
acx acx ACX 2 API 澳大利亚
allcoin allcoin Allcoin 1 API 加拿大
anxpro anxpro ANXPro 2 API 日本, 新加坡, 香港, 新西兰
bibox bibox Bibox 1 API 中国, 美国, 韩国
binance binance Binance * API 日本
bit2c bit2c Bit2C * API 以色列
bitbank bitbank bitbank 1 API 日本
bitbay bitbay BitBay * API 波兰, 欧盟
bitfinex bitfinex Bitfinex 1 API 英属维尔京群岛
bitfinex2 bitfinex2 Bitfinex v2 2 API 英属维尔京群岛
bitflyer bitflyer bitFlyer 1 API 日本
bithumb bithumb Bithumb * API 韩国
bitkk bitkk bitkk 1 API 中国
bitlish bitlish Bitlish 1 API 英国, 欧盟, 俄罗斯
bitmarket bitmarket BitMarket * API 波兰, 欧盟
bitmex bitmex BitMEX 1 API 塞舌尔
bitso bitso Bitso 3 API 墨西哥
bitstamp bitstamp Bitstamp 2 API 英国
bitstamp1 bitstamp1 Bitstamp v1 1 API 英国
bittrex bittrex Bittrex 1.1 API 美国
bitz bitz Bit-Z 1 API 香港
bl3p bl3p BL3P 1 API 荷兰, 欧盟
bleutrade bleutrade Bleutrade 2 API 巴西
braziliex braziliex Braziliex * API 巴西
btcbox btcbox BtcBox 1 API 日本
btcchina btcchina BTCChina 1 API 中国
btcexchange btcexchange BTCExchange * API 菲律宾
btcmarkets btcmarkets BTC Markets * API 澳大利亚
btctradeim btctradeim BtcTrade.im * API 香港
btctradeua btctradeua BTC Trade UA * API 乌克兰
btcturk btcturk BTCTurk * API 土耳其
btcx btcx BTCX 1 API 冰岛, 美国, 欧盟
bxinth bxinth BX.in.th * API 泰国
ccex ccex C-CEX * API 德国, 欧盟
cex cex CEX.IO * API 英国, 欧盟, 塞浦路斯, 俄罗斯
chbtc chbtc CHBTC 1 API 中国
chilebit chilebit ChileBit 1 API 智利
cobinhood cobinhood COBINHOOD * API 台湾
coincheck coincheck coincheck * API 日本, 印度尼西亚
coinegg coinegg CoinEgg * API 中国, 英国
coinex coinex CoinEx 1 API 中国
coinexchange coinexchange CoinExchange * API 印度, 日本, 韩国, 越南, 美国
coinfloor coinfloor coinfloor * API 英国
coingi coingi Coingi * API 巴拿马, 保加利亚, 中国, 美国
coinmarketcap coinmarketcap CoinMarketCap 1 API 美国
coinmate coinmate CoinMate * API 英国, 捷克, 欧盟
coinnest coinnest coinnest * API 韩国
coinone coinone CoinOne 2 API 韩国
coinsecure coinsecure Coinsecure 1 API 印度
coinspot coinspot CoinSpot * API 澳大利亚
cointiger cointiger CoinTiger 1 API 中国
coolcoin coolcoin CoolCoin * API 香港
cryptopia cryptopia Cryptopia * API 新西兰
dsx dsx DSX 3 API 英国
ethfinex ethfinex Ethfinex 1 API 英属维尔京群岛
exmo exmo EXMO 1 API 西班牙, 俄罗斯
exx exx EXX * API 中国
flowbtc flowbtc flowBTC 1 API 巴西
foxbit foxbit FoxBit 1 API 巴西
fybse fybse FYB-SE * API 瑞典
fybsg fybsg FYB-SG * API 新加坡
gatecoin gatecoin Gatecoin * API 香港
gateio gateio Gate.io 2 API 中国
gdax gdax GDAX * API 美国
gemini gemini Gemini 1 API 美国
getbtc getbtc GetBTC * API 圣文森特和格林纳丁斯, 俄罗斯
hadax hadax HADAX 1 API 中国
hitbtc hitbtc HitBTC 1 API 香港
hitbtc2 hitbtc2 HitBTC v2 2 API 香港
huobi huobi Huobi 3 API 中国
huobicny huobicny Huobi CNY 1 API 中国
huobipro huobipro Huobi Pro 1 API 中国
ice3x ice3x ICE3X * API 南非
independentreserve independentreserve Independent Reserve * API 澳大利亚, 新西兰
indodax indodax INDODAX 1.7 API 印度尼西亚
itbit itbit itBit 1 API 美国
jubi jubi jubi.com 1 API 中国
kraken kraken Kraken 0 API 美国
kucoin kucoin Kucoin 1 API 香港
kuna kuna Kuna 2 API 乌克兰
lakebtc lakebtc LakeBTC 2 API 美国
lbank lbank LBank 1 API 中国
liqui liqui Liqui 3 API 乌克兰
livecoin livecoin LiveCoin * API 美国, 英国, 俄罗斯
luno luno luno 1 API 英国, 新加坡, 南非
lykke lykke Lykke 1 API 瑞士
mercado mercado Mercado Bitcoin 3 API 巴西
mixcoins mixcoins MixCoins 1 API 英国, 香港
negociecoins negociecoins NegocieCoins 3 API 巴西
nova nova Novaexchange 2 API 坦桑尼亚
okcoincny okcoincny OKCoin CNY 1 API 中国
okcoinusd okcoinusd OKCoin USD 1 API 中国, 美国
okex okex OKEX 1 API 中国, 美国
paymium paymium Paymium 1 API 法国, 欧盟
poloniex poloniex Poloniex * API 美国
qryptos qryptos QRYPTOS 2 API 中国, 台湾
quadrigacx quadrigacx QuadrigaCX 2 API 加拿大
quoinex quoinex QUOINEX 2 API 日本, 新加坡, 越南
southxchange southxchange SouthXchange * API 阿根廷
surbitcoin surbitcoin SurBitcoin 1 API 委内瑞拉
therock therock TheRockTrading 1 API 马耳他
tidebit tidebit TideBit 2 API 香港
tidex tidex Tidex 3 API 英国
urdubit urdubit UrduBit 1 API 巴基斯坦
vaultoro vaultoro Vaultoro 1 API 瑞士
vbtc vbtc VBTC 1 API 越南
virwox virwox VirWoX * API 奥地利, 欧盟
wex wex WEX 3 API 新西兰
xbtce xbtce xBTCe 1 API 俄罗斯
yobit yobit YoBit 3 API 俄罗斯
yunbi yunbi YUNBI 2 API 中国
zaif zaif Zaif 1 API 日本
zb zb ZB 1 API 中国

上面的列表经常更新,新的加密货币市场,山寨币交易所,bug修复,API接口将定期被引入、添加。详细信息请参见 手册 。如果您没有在上面的列表中找到加密货币交易所并且/或者想要添加另一个交易所,请通过在GitHub上创建issue或或通过电子邮件向我们发送链接。

本仓库使用 MIT 许可,这意味着任何开发人员都可以免费在其上构建商业和开源软件,但如果使用该软件,则风险自担,不作任何担保。

安装

安装 CCXT 库的最简单方法是使用内置包管理器:

本仓库提供一个整合的模块实现,具有最小依赖和要求:

  • js/ in JavaScript
  • python/ in Python (由 JS 生成)
  • php/ in PHP (由 JS 生成)

您也可以从 CCXT GitHub 仓库中将它克隆到您的项目目录中

git clone https://github.com/ccxt/ccxt.git

将该库集成到代码中的另一种方法,是将单个文件手动复制到您的工作目录中,并使用适合您环境的语言扩展。

JavaScript (NPM)

CCXT的JavaScript版本在Node和Web浏览器中均可以使用。需要 ES6 和 async/await 语法支持( Node 7.6.0+ )。在使用Webpack和Babel进行编译时,请确保它不会在您的 babel-loader 配置中被排除

ccxt in NPM

npm install ccxt
var ccxt = require ('ccxt')

console.log (ccxt.exchanges) // 打印所有支持的交易所

JavaScript(与 <script> 标签一起使用):

包含所有功能于一身的浏览器软件包(包括依赖项),由 unpkg CDN 提供。unpkg CDN 是一个快速的全球性的内容分发网络,适用于NPM上的所有内容。

<script type="text/javascript" src="https://unpkg.com/ccxt"></script>

创建一个全局的 ccxt 对象:

console.log (ccxt.exchanges) // 打印所有支持的交易所

Python

ccxt in PyPI

pip install ccxt
import ccxt
print(ccxt.exchanges) # 打印一个包含所有支持交易所的列表

本仓库支持在Python 3.5.3+中使用asyncio和async / await进行异步并发模式

import ccxt.async as ccxt # 链接到异步版本的ccxt

PHP

PHP版的 CCXT 库:ccxt.php

它需要以下PHP模块:

  • cURL
  • mbstring (强烈推荐使用 UTF-8 )
  • PCRE
  • iconv
include "ccxt.php";
var_dump (\ccxt\Exchange::$exchanges); // 打印所有支持的交易所

文档

阅读操作手册以获得更多详细信息。

使用方法

介绍

CCXT 库由公共接口部分和私有接口部分组成。任何人都可以在安装后立即使用公共部分。公共 API 具有获取所有交易所公开信息的权限,无需注册用户账户,也无需 API 密钥。
公共 API 包括以下内容:

  • 市场数据
  • 交易对
  • 交易手续费
  • 订单簿 / 深度数据
  • 交易历史
  • 行情 / Tickers 
  • 用以制图的 OHLC(V) / K线
  • 其他公共接口

对于通过私有 API 进行交易,您需要从交易所获取 API 密钥。它通常意味着在交易所注册,并使用您的账户创建 API 密钥。大多数交易所需要个人信息或身份证明。其他验证材料也可能是必要的。如果你想要交易,你需要自己注册,这个库不会为你创建账户或 API 密钥。一些交易所 API 提供了用代码本身注册帐户的接口,但大多数交易所并没有。因此您必须注册并在网站上创建 API 密钥。

私有API允许以下内容:

  • 管理个人帐户信息
  • 查询账户余额
  • 通过市价单和限价单进行交易
  • 存入和提取法币和加密货币
  • 查询个人订单
  • 获取交易明细/历史
  • 在账户之间转移资金
  • 使用商业服务

本仓库实现了所有交易所的公共和私有REST API。JavaScript,PHP,Python及其他语言的WebSocket实现和FIX将尽快推出。

CCXT 库同时支持驼峰命名法(常用于 JavaScript)和下划线命名法(常用于 Python 和 PHP),因此在任意一种语言中,两种命名法/编码风格均可调用所有方法。

// 以下两种格式在JavaScript/Python/PHP下均有效    
exchange.methodName ()  //  驼峰命名法  
exchange.method_name () //  下划线命名法

阅读 指南以获得更多详细信息。

JavaScript

'use strict';
const ccxt = require ('ccxt');

(async function () {
    let kraken    = new ccxt.kraken ()
    let bitfinex  = new ccxt.bitfinex ({ verbose: true })
    let huobi     = new ccxt.huobi ()
    let okcoinusd = new ccxt.okcoinusd ({
        apiKey: 'YOUR_PUBLIC_API_KEY',
        secret: 'YOUR_SECRET_PRIVATE_KEY',
    })

    console.log (kraken.id,    await kraken.loadMarkets ())
    console.log (bitfinex.id,  await bitfinex.loadMarkets  ())
    console.log (huobi.id,     await huobi.loadMarkets ())

    console.log (kraken.id,    await kraken.fetchOrderBook (kraken.symbols[0]))
    console.log (bitfinex.id,  await bitfinex.fetchTicker ('BTC/USD'))
    console.log (huobi.id,     await huobi.fetchTrades ('ETH/CNY'))

    console.log (okcoinusd.id, await okcoinusd.fetchBalance ())

    // 以市价卖出 1BTC,并立马得到1比特币等值的欧元
    console.log (okcoinusd.id, await okcoinusd.createMarketSellOrder ('BTC/USD', 1))

    // 以 $2500 购买 1 BTC, 当该订单成交时,你会付出 $2500 美金并获得 1BTC 
    console.log (okcoinusd.id, await okcoinusd.createLimitBuyOrder ('BTC/USD', 1, 2500.00))

    // 传递/重定义特定交易所的订单自定义参数:类型,数量,价格 等等
    // 使用一个交易所专有的订单类型
    bitfinex.createLimitSellOrder ('BTC/USD', 1, 10, { 'type': 'trailing-stop' })
}) ();

Python

# coding=utf-8

import ccxt

hitbtc = ccxt.hitbtc({'verbose': True})
bitmex = ccxt.bitmex()
huobi  = ccxt.huobi()
exmo   = ccxt.exmo({
    'apiKey': 'YOUR_PUBLIC_API_KEY',
    'secret': 'YOUR_SECRET_PRIVATE_KEY',
})

hitbtc_markets = hitbtc.load_markets()

print(hitbtc.id, hitbtc_markets)
print(bitmex.id, bitmex.load_markets())
print(huobi.id, huobi.load_markets())

print(hitbtc.fetch_order_book(hitbtc.symbols[0]))
print(bitmex.fetch_ticker('BTC/USD'))
print(huobi.fetch_trades('LTC/CNY'))

print(exmo.fetch_balance())

# 以市价卖出 1BTC,并立马得到美元现金
print(exmo.id, exmo.create_market_sell_order('BTC/USD', 1))

# 限价买入 BTC/EUR, 当该订单成交时,你会以 €2500 欧元的价格收到 1BTC 
print(exmo.id, exmo.create_limit_buy_order('BTC/EUR', 1, 2500.00))

# 传递/重定义特定交易所的订单自定义参数:类型,数量,价格,flags 等等
kraken.create_market_buy_order('BTC/USD', 1, {'trading_agreement': 'agree'})

PHP

include 'ccxt.php';

$poloniex = new \ccxt\poloniex ();
$bittrex  = new \ccxt\bittrex  (array ('verbose' => true));
$quoinex  = new \ccxt\quoinex   ();
$zaif     = new \ccxt\zaif     (array (
    'apiKey' => 'YOUR_PUBLIC_API_KEY',
    'secret' => 'YOUR_SECRET_PRIVATE_KEY',
));

$poloniex_markets = $poloniex->load_markets ();

var_dump ($poloniex_markets);
var_dump ($bittrex->load_markets ());
var_dump ($quoinex->load_markets ());

var_dump ($poloniex->fetch_order_book ($poloniex->symbols[0]));
var_dump ($bittrex->fetch_trades ('BTC/USD'));
var_dump ($quoinex->fetch_ticker ('ETH/EUR'));
var_dump ($zaif->fetch_ticker ('BTC/JPY'));

var_dump ($zaif->fetch_balance ());

// 以市价卖出 1 BTC/JPY,你将会立即卖出比特币并收到日元
var_dump ($zaif->id, $zaif->create_market_sell_order ('BTC/JPY', 1));

// 买入 BTC/JPY, 当该订单成交时,你会以 ¥285000 日元的价格收到 1BTC 
var_dump ($zaif->id, $zaif->create_limit_buy_order ('BTC/JPY', 1, 285000));

// 为你的订单设置一个用户自定义的 id    
$hitbtc->create_order ('BTC/USD', 'limit', 'buy', 1, 3000, array ('clientOrderId' => '123'));

贡献力量

在您做出一些修改并希望合并进代码之前,请阅读 贡献 文档。 另外,您可通过阅读 指南 来获取更多详细信息.

支持开发团队

我们对此仓库的开发正在投入大量的时间。如果 CCXT 使得您的生活更加简单,并且您喜欢它,并希望帮助我们进一步改进它,或者如果您想加快开发新功能和交易所,请通过小费支持我们。我们感谢所有的支持!

赞助商

通过成为赞助商支持本项目,您的 logo 将会展现在这里,并附带您的网站链接。

[成为赞助商]

支持者

谢谢我们所有的支持者! [成为支持者]

加密货币捐助地址

ETH 0xa7c2b18b7c8b86984560cad3b1bc3224b388ded0
BTC 33RmVRfhK2WZVQR1R83h2e9yXoqRNDvJva
BCH 1GN9p233TvNcNQFthCgfiHUnj5JRKEc2Ze
LTC LbT8mkAqQBphc4yxLXEDgYDfEax74et3bP

谢谢!

中文社区资源

  • CCXTCN 是 CCXT 文档中文翻译项目,开始于 2018.05.14,欢迎加入我们一起完成这个项目。
  • CCXT 中文文档翻译 QQ 群:749640693
  • CCXT 使用问题交流 QQ 群:150134435
  • discourse 社区