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

隐含的API方法

大多数交易所特定的API方法都是隐含的,意思是这些方法没有在代码中 显式地定义。ccxt库采用声明式的方法来定义隐含的交易所API方法。

API的每个方法通常都有自己的访问端结点。ccxt库为每个交易所都定义了 所有的访问端结点,你可以通过.api属性访问。在创建交易所对象时, 在defineRestApi() / define_rest_api()中将会为.api列表中的 每个url创建一个隐含的魔术方法(即偏函数或闭包)。这个环节在所有 交易所上都是统一的。生成的每个方法都可以驼峰写法和下划线写法来访问。

访问点定义指的是一个交易所暴露出来的所有的API的URL的完整的列表。 这个列表将在交易所对象初始化时转化为可调用的方法。在API访问端结点 列表中的每个URL都有一个对应的可调用方法。对于所有的交易所而言,这 都是自动进行的,因此ccxt库支持数字货币交易所的所有可能的URL。

每个隐含的方法都有一个唯一的名字,这个名字是利用.api中的定义生成的。 例如,对于一个私有HTTPS PUT访问端结点https://api.exchange.com/order/{id}/cancel, 其对应的隐含方法名为.privatePutOrderIdCancel() / .private_put_order_id_cancel()。 对于一个公开的HTTPS GET访问端结点https://api.exchange.com/market/ticker/{pair}, 其对应的隐含方法名为.publicGetTickerPair() / .public_get_ticker_pair(),依次类推。

隐含方法接收传入的参数字典,将请求发送到交易所,然后返回交易所特定的未解析 的JSON结果。要传入一个参数,将其添加到字典中与参数同名的键下即可。例如对于 上面的例子,就是像.privatePutOrderIdCancel ({ id: '41987a2b-...' }).publicGetTickerPair ({ pair: 'BTC/USD' })

ccxt推荐的与交易所交互的方式,并不是使用交易所特定的隐含方法,而是使用ccxt 提供的统一方法。只有当ccxt的统一api中没有提供相应的方法时,才应当使用 隐含的方法作为后备方案。

要获得指定交易所实例的所有可用方法,包括隐含方法和统一方法,你可以 使用如下的简单代码。

JavaScript代码示例:

console.log (new ccxt.kraken ())

Python代码示例:

print(dir(ccxt.hitbtc()))

PHP代码示例:

var_dump (new \ccxt\okcoinusd ());