-
Notifications
You must be signed in to change notification settings - Fork 14
Home
一个用于加密货币电子化交易的 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 | 2 | API | 美国 | |
_1btcxe | 1BTCXE | * | API | 巴拿马 | |
acx | ACX | 2 | API | 澳大利亚 | |
allcoin | Allcoin | 1 | API | 加拿大 | |
anxpro | ANXPro | 2 | API | 日本, 新加坡, 香港, 新西兰 | |
bibox | Bibox | 1 | API | 中国, 美国, 韩国 | |
binance | Binance | * | API | 日本 | |
bit2c | Bit2C | * | API | 以色列 | |
bitbank | bitbank | 1 | API | 日本 | |
bitbay | BitBay | * | API | 波兰, 欧盟 | |
bitfinex | Bitfinex | 1 | API | 英属维尔京群岛 | |
bitfinex2 | Bitfinex v2 | 2 | API | 英属维尔京群岛 | |
bitflyer | bitFlyer | 1 | API | 日本 | |
bithumb | Bithumb | * | API | 韩国 | |
bitkk | bitkk | 1 | API | 中国 | |
bitlish | Bitlish | 1 | API | 英国, 欧盟, 俄罗斯 | |
bitmarket | BitMarket | * | API | 波兰, 欧盟 | |
bitmex | BitMEX | 1 | API | 塞舌尔 | |
bitso | Bitso | 3 | API | 墨西哥 | |
bitstamp | Bitstamp | 2 | API | 英国 | |
bitstamp1 | Bitstamp v1 | 1 | API | 英国 | |
bittrex | Bittrex | 1.1 | API | 美国 | |
bitz | Bit-Z | 1 | API | 香港 | |
bl3p | BL3P | 1 | API | 荷兰, 欧盟 | |
bleutrade | Bleutrade | 2 | API | 巴西 | |
braziliex | Braziliex | * | API | 巴西 | |
btcbox | BtcBox | 1 | API | 日本 | |
btcchina | BTCChina | 1 | API | 中国 | |
btcexchange | BTCExchange | * | API | 菲律宾 | |
btcmarkets | BTC Markets | * | API | 澳大利亚 | |
btctradeim | BtcTrade.im | * | API | 香港 | |
btctradeua | BTC Trade UA | * | API | 乌克兰 | |
btcturk | BTCTurk | * | API | 土耳其 | |
btcx | BTCX | 1 | API | 冰岛, 美国, 欧盟 | |
bxinth | BX.in.th | * | API | 泰国 | |
ccex | C-CEX | * | API | 德国, 欧盟 | |
cex | CEX.IO | * | API | 英国, 欧盟, 塞浦路斯, 俄罗斯 | |
chbtc | CHBTC | 1 | API | 中国 | |
chilebit | ChileBit | 1 | API | 智利 | |
cobinhood | COBINHOOD | * | API | 台湾 | |
coincheck | coincheck | * | API | 日本, 印度尼西亚 | |
coinegg | CoinEgg | * | API | 中国, 英国 | |
coinex | CoinEx | 1 | API | 中国 | |
coinexchange | CoinExchange | * | API | 印度, 日本, 韩国, 越南, 美国 | |
coinfloor | coinfloor | * | API | 英国 | |
coingi | Coingi | * | API | 巴拿马, 保加利亚, 中国, 美国 | |
coinmarketcap | CoinMarketCap | 1 | API | 美国 | |
coinmate | CoinMate | * | API | 英国, 捷克, 欧盟 | |
coinnest | coinnest | * | API | 韩国 | |
coinone | CoinOne | 2 | API | 韩国 | |
coinsecure | Coinsecure | 1 | API | 印度 | |
coinspot | CoinSpot | * | API | 澳大利亚 | |
cointiger | CoinTiger | 1 | API | 中国 | |
coolcoin | CoolCoin | * | API | 香港 | |
cryptopia | Cryptopia | * | API | 新西兰 | |
dsx | DSX | 3 | API | 英国 | |
ethfinex | Ethfinex | 1 | API | 英属维尔京群岛 | |
exmo | EXMO | 1 | API | 西班牙, 俄罗斯 | |
exx | EXX | * | API | 中国 | |
flowbtc | flowBTC | 1 | API | 巴西 | |
foxbit | FoxBit | 1 | API | 巴西 | |
fybse | FYB-SE | * | API | 瑞典 | |
fybsg | FYB-SG | * | API | 新加坡 | |
gatecoin | Gatecoin | * | API | 香港 | |
gateio | Gate.io | 2 | API | 中国 | |
gdax | GDAX | * | API | 美国 | |
gemini | Gemini | 1 | API | 美国 | |
getbtc | GetBTC | * | API | 圣文森特和格林纳丁斯, 俄罗斯 | |
hadax | HADAX | 1 | API | 中国 | |
hitbtc | HitBTC | 1 | API | 香港 | |
hitbtc2 | HitBTC v2 | 2 | API | 香港 | |
huobi | Huobi | 3 | API | 中国 | |
huobicny | Huobi CNY | 1 | API | 中国 | |
huobipro | Huobi Pro | 1 | API | 中国 | |
ice3x | ICE3X | * | API | 南非 | |
independentreserve | Independent Reserve | * | API | 澳大利亚, 新西兰 | |
indodax | INDODAX | 1.7 | API | 印度尼西亚 | |
itbit | itBit | 1 | API | 美国 | |
jubi | jubi.com | 1 | API | 中国 | |
kraken | Kraken | 0 | API | 美国 | |
kucoin | Kucoin | 1 | API | 香港 | |
kuna | Kuna | 2 | API | 乌克兰 | |
lakebtc | LakeBTC | 2 | API | 美国 | |
lbank | LBank | 1 | API | 中国 | |
liqui | Liqui | 3 | API | 乌克兰 | |
livecoin | LiveCoin | * | API | 美国, 英国, 俄罗斯 | |
luno | luno | 1 | API | 英国, 新加坡, 南非 | |
lykke | Lykke | 1 | API | 瑞士 | |
mercado | Mercado Bitcoin | 3 | API | 巴西 | |
mixcoins | MixCoins | 1 | API | 英国, 香港 | |
negociecoins | NegocieCoins | 3 | API | 巴西 | |
nova | Novaexchange | 2 | API | 坦桑尼亚 | |
okcoincny | OKCoin CNY | 1 | API | 中国 | |
okcoinusd | OKCoin USD | 1 | API | 中国, 美国 | |
okex | OKEX | 1 | API | 中国, 美国 | |
paymium | Paymium | 1 | API | 法国, 欧盟 | |
poloniex | Poloniex | * | API | 美国 | |
qryptos | QRYPTOS | 2 | API | 中国, 台湾 | |
quadrigacx | QuadrigaCX | 2 | API | 加拿大 | |
quoinex | QUOINEX | 2 | API | 日本, 新加坡, 越南 | |
southxchange | SouthXchange | * | API | 阿根廷 | |
surbitcoin | SurBitcoin | 1 | API | 委内瑞拉 | |
therock | TheRockTrading | 1 | API | 马耳他 | |
tidebit | TideBit | 2 | API | 香港 | |
tidex | Tidex | 3 | API | 英国 | |
urdubit | UrduBit | 1 | API | 巴基斯坦 | |
vaultoro | Vaultoro | 1 | API | 瑞士 | |
vbtc | VBTC | 1 | API | 越南 | |
virwox | VirWoX | * | API | 奥地利, 欧盟 | |
wex | WEX | 3 | API | 新西兰 | |
xbtce | xBTCe | 1 | API | 俄罗斯 | |
yobit | YoBit | 3 | API | 俄罗斯 | |
yunbi | YUNBI | 2 | API | 中国 | |
zaif | Zaif | 1 | API | 日本 | |
zb | ZB | 1 | API | 中国 |
上面的列表经常更新,新的加密货币市场,山寨币交易所,bug修复,API接口将定期被引入、添加。详细信息请参见 手册 。如果您没有在上面的列表中找到加密货币交易所并且/或者想要添加另一个交易所,请通过在GitHub上创建issue或或通过电子邮件向我们发送链接。
本仓库使用 MIT 许可,这意味着任何开发人员都可以免费在其上构建商业和开源软件,但如果使用该软件,则风险自担,不作任何担保。
安装 CCXT 库的最简单方法是使用内置包管理器:
- ccxt in NPM (JavaScript / Node v7.6+)
- ccxt in PyPI (Python 2 and 3.5.3+)
- ccxt in Packagist/Composer (PHP 5.3+)
本仓库提供一个整合的模块实现,具有最小依赖和要求:
您也可以从 CCXT GitHub 仓库中将它克隆到您的项目目录中
git clone https://github.com/ccxt/ccxt.git
将该库集成到代码中的另一种方法,是将单个文件手动复制到您的工作目录中,并使用适合您环境的语言扩展。
CCXT的JavaScript版本在Node和Web浏览器中均可以使用。需要 ES6 和 async/await
语法支持( Node 7.6.0+ )。在使用Webpack和Babel进行编译时,请确保它不会在您的 babel-loader
配置中被排除。
npm install ccxt
var ccxt = require ('ccxt')
console.log (ccxt.exchanges) // 打印所有支持的交易所
包含所有功能于一身的浏览器软件包(包括依赖项),由 unpkg CDN 提供。unpkg CDN 是一个快速的全球性的内容分发网络,适用于NPM上的所有内容。
<script type="text/javascript" src="https://unpkg.com/ccxt"></script>
创建一个全局的 ccxt
对象:
console.log (ccxt.exchanges) // 打印所有支持的交易所
pip install ccxt
import ccxt
print(ccxt.exchanges) # 打印一个包含所有支持交易所的列表
本仓库支持在Python 3.5.3+中使用asyncio和async / await进行异步并发模式
import ccxt.async as ccxt # 链接到异步版本的ccxt
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 () // 下划线命名法
阅读 指南以获得更多详细信息。
'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' })
}) ();
# 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'})
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 社区