CCXT:加密货币量化交易神器
支持许多交易市场,甚至即将推出的 为所有交易提供完整的公共和私人API 所有货币,山寨币和标记,价格,订单,交易,代码等… 提供用于交叉交换或跨货币分析和套利的可选标准化数据 开箱即用的统一的一体化API,非常易于集成 适用于Node7.6+,Python2和3,PHP5.4+,Web浏览器
NPM中的ccxt(JavaScript/Node v7.6+) PyPI中的ccxt(Python 2和3.5.3+) Packagist/Composer中的ccxt(PHP 5.4+)
js/在JavaScript中 python/在Python中(从JS生成) PHP/ PHP(从JS生成)
git clone https://github.com/ccxt/ccxt.git
安装
pip install ccxt
常用接口
# 初始化交易所
binance_exchange = ccxt.binance({
'timeout': 15000,
'enableRateLimit': True
})
# 获取单个交易对ticker数据
binance_exchange.fetchTicker(symbol)
# 获取多个交易对ticker数据
tickers_data = binance_exchange.fetchTickers(['BTC/USDT', 'ETH/USDT'])
# 交易委托账本数据获取
binance_exchange.fetch_order_book(symbol)
# K线数据数据获取
binance_exchange.fetch_ohlcv(symbol, timeframe='1d')
使用
市场数据 交易对 交易手续费 订单薄/深度数据 交易历史 行情/Tickers 用以制图的 OHLC(V)/K线 其他公共接口
管理个人账户信息 查询账户余额 通过市价单和限价单进行交易 存入和提取法币和加密货币 查询个人订单 获取交易明细/历史 在账户之间转移资金 使用商业服务
camelcase
表示法(在JavaScript中是首选)和下划线表示法(在Python和PHP中首选),因此所有方法都可以用任何语言的符号或编码方式调用。
// both of these notations work in JavaScript/Python/PHP
exchange.methodName () // camelcase pseudocode
exchange.method_name () // underscore pseudocode
# 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',
})
kraken = ccxt.kraken({
'apiKey': 'YOUR_PUBLIC_API_KEY',
'secret': 'YOUR_SECRET_PRIVATE_KEY',
})
exchange_id = 'binance'
exchange_class = getattr(ccxt, exchange_id)
exchange = exchange_class({
'apiKey': 'YOUR_API_KEY',
'secret': 'YOUR_SECRET',
'timeout': 30000,
'enableRateLimit': True,
})
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())
# sell one ฿ for market price and receive $ right now
print(exmo.id, exmo.create_market_sell_order('BTC/USD', 1))
# limit buy BTC/EUR, you pay €2500 and receive ฿1 when the order is closed
print(exmo.id, exmo.create_limit_buy_order('BTC/EUR', 1, 2500.00))
# pass/redefine custom exchange-specific order params: type, amount, price, flags, etc...
kraken.create_market_buy_order('BTC/USD', 1, {'trading_agreement': 'agree'})