CCXT中文开发手册

CCXT开发概述
CCXT概述 支持的交易所 实例化交易所类 设置交易所的属性
CCXT交易所模型
交易所的数据结构 交易所API访问的限流 DDoS保护异常及处理办法
CCXT市场模型
市场数据结构 数据精度和极限值 委托单数值要求和格式化方法 载入市场清单 交易符号和市场ID 符号命名的一致性 符号命名冲突的解决流程 符号命名常见问题及解答 市场缓存强制重载
CCXT API
方法与访问端结点 隐式API方法 公开/私有API 同步调用与异步调用 API方法参数与返回值 API方法命名规范 统一API 改写统一API的参数 统一API结果的分页
CCXT委托账本模型
交易委托账本 委托账本模型的结构 查询市场深度 查询市场价格
CCXT市场行情
实时行情 实时行情数据结构 查询指定交易对实时行情 查询所有交易对实时行情
CCXT烛线图数据
OHLCV烛线图 OHLCV数据结构 OHLCV数据模拟
CCXT数字货币交易
查询交易 - fetchTrade 交易身份验证 API密钥设置 查询账户余额 - fetchBalance 查询委托单 - fetchOrders 查询交易 - fetchTrades 委托单缓存 清理缓存的委托单 - purgeCachedOrders 查询指定ID的委托单 - fetchOrder 查询全部委托单 - fetchOrders 查询全部敞口委托单 - fetchOpenOrders 查询全部已完结委托单 - fetchClosedOrders 委托单数据结构 委托下单 市价委托 - createMarketSellOrder/createMarketBuyOrder 市价买入委托的特殊情况 - createMarketBuyOrderRequiresPrice 用限价单模拟市价单 限价委托 - createLimitBuyOrder/createLimitSellOrder 委托单的自定义参数 其他类型的委托单 取消委托单 - cancelOrder 委托单与交易的关系 查询个人的历史交易 - fetchMyTrade 交易的数据结构 查询指定委托单的交易 获取充值地址 - fetchDepositAddress/createDepositAddress 地址的数据结构 提现 - withdraw 链上交易数据结构 查询充值记录 - fetchDoposits 查询提现记录 - fetchWithdrawals 查询链上交易 - fetchTransactions 查询手续费 - fetchFees 查询交易所状态 - fetchStatus 预算交易费 - calculateFee 资金操作费 - currencies 查询账本 - fetchLedger 账本记录结构 修改Nonce值 - seconds/milliseconds/microseconds
CCXT错误处理
错误处理概述 - try/catch 异常类的体系 交易所异常 网络异常

市场深度

有些交易所接受一个字典对象来将额外的参数传入fetchOrderBook () / fetch_order_book ()函数。 所有额外的参数都是交易所特定的(不统一)。如果要设置特定的参数,例如交易账本的深度,那么 你需要查阅交易所的文档。你可以使用如下代码获取指定数量的委托单或指定层级的聚合(即市场深度)。

JavaScript示例代码:

(async function test () {
    const ccxt = require ('ccxt')
    const exchange = new ccxt.bitfinex ()
    const limit = 5
    const orders = await exchange.fetchOrderBook ('BTC/USD', limit, {
        // this parameter is exchange-specific, all extra params have unique names per exchange
        'group': 1, // 1 = orders are grouped by price, 0 = orders are separate
    })
}) ()

Python示例代码:

import ccxt
# return up to ten bidasks on each side of the order book stack
limit = 10
ccxt.cex().fetch_order_book('BTC/USD', limit)

PHP示例代码:

// instantiate the exchange by id
$exchange = '\\ccxt\\kraken';
$exchange = new $exchange ();
// up to ten orders on each side, for example
$limit = 20;
var_dump ($exchange->fetch_order_book ('BTC/USD', $limit));

委托账本聚合的层级或详情通常是数字标注的,就像L1、L2、L3...

  • L1:较少的详情,用于快速获取非常基本的信息,也就是仅市场价格。看起来就像在委托账本中仅包含一个委托单。
  • L2:最常用的聚合层级,委托单交易量按价格分组。如果两个委托单有相同的价格,那么他们会合并为一项,其总量 为这两个委托单的交易量的和。这个聚合层级可能适合大部分的应用目的。
  • L3:最详细的层级,包含所有的订单,没有聚合。这一层级自然包含了输出中的重复内容。因此,如果两个订单 有相同的价格,它们也不会合并在一起,这两个订单的优先级则取决于交易所的撮合引擎。你不一定真的需要 L3详情来进行交易。实际上,大多数情况下你根本不需要这么详细的信息。因此有些交易所不支持这个级别的数据, 总是返回聚合后的委托账本。

如果你想获取L2委托账本,可以使用统一API中的fetchL2OrderBook(symbol, limit, params)fetch_l2_order_book(symbol, limit, params)方法。