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 异常类的体系 交易所异常 网络异常

委托单中的数值要求与格式化方法

ccxt的用户应当始终遵守精度和限值要求!委托单中的值应当满足以下条件:

  • 委托单amount > limits['min']['amount']
  • 委托单amount < limits['max']['amount']
  • 委托单price > limits['min']['price']
  • 委托单price < limits['max']['price']
  • 委托单cost (amount * price) > limits['min']['cost']
  • 委托单cost (amount * price) < limits['max']['cost']
  • amount的精度 <= precision['amount']
  • price 的精度 <= precision['price']

有些交易所的委托单可能不会包含上面提到的所有的值。

数值格式化方法

每个交易所都有它自己的取整、计数和填充模式。

CCXT支持的取整模式有:

  • ROUND – 取整精度要求之后的小数位
  • TRUNCATE– 截断精度要求之后的小数位

数值精度计数模式可以使用exchange.precisionMode属性访问。

CCXT支持的计数模式包括:

  • DECIMAL_PLACES – 统计所有的数字,99%的交易所使用这种计数模式
  • SIGNIFICANT_DIGITS – 仅统计非零数字,有些交易所(bitfinex等)采用这种模式的计数
  • TICK_SIZE – 有些交易所只允许某个特定值的整数倍(bitmex使用这种模式)

CCXT支持的填充模式包括:

  • NO_PADDING – 无填充,大多数情况下的默认模式
  • PAD_WITH_ZERO – 使用0字符填充至精度要求

交易所基类包含了decimalToPrecision来帮助格式化数值为要求的精度, 它支持不同的取整、计数和填充模式。

JavaScript方法原型:

function decimalToPrecision (x, roundingMode, numPrecisionDigits, countingMode = DECIMAL_PLACES, paddingMode = NO_PADDING)

Python方法原型:

def decimal_to_precision(n, rounding_mode=ROUND, precision=None, counting_mode=DECIMAL_PLACES, padding_mode=NO_PADDING):

Php方法原型:

function decimalToPrecision ($x, $roundingMode = ROUND, $numPrecisionDigits = null, $countingMode = DECIMAL_PLACES, $paddingMode = NO_PADDING)

可以访问以下示例代码查看如何使用decimalToPrecision方法来格式化字符串和浮点数: