API Cex Plus

Cex Plus

 

支持的 API

 

 

属性

WebSockets API

WebSocket 是一种基于 TCP 的全双工通信协议。全双工意味着双方可以使用同一通信信道异步地互相发送消息。本节描述 Exchange Plus 与客户端之间应互相发送哪些消息。所有消息均应为有效的 JSON 对象。

 

WebSocket API 主要用于获取信息或执行 REST API 中不可用或不易操作的操作。但是,某些请求或操作可以通过 REST API 和 WebSocket API 两者完成。Exchange Plus 向客户端发送消息,作为对客户端之前发送的请求的响应,或作为某些事件的通知(无需客户端事先请求)。

 

 

公共 API 调用

 

公开 API 速率限制是为了保护系统免受 DDoS 攻击并确保所有客户端对端点享有同等稳定访问权限。请求限制由与每个公开 API 调用相关的成本决定。

 

Exchange Plus 将公共 API 调用限制为每分钟最多 100 积分,每次公共 API 调用均有其对应的积分成本(见下文)。如果达到请求速率限制,Exchange Plus 将返回错误,向客户端发送断开连接事件,并随后关闭 WS 连接。Exchange Plus 将从下一个整分钟开始继续为客户端提供服务。在以下示例中,请求计数器将在 11:02:00.000 时重置。

 

方法 描述
GetTicker 该方法旨在获取 Ticker 的当前信息,包括特定资产的当前价格、24 小时价格和成交量变化、最新成交事件等数据。
GetOrderBook 此方法允许客户端接收特定交易对的当前订单簿快照。
GetCandles 通过 Candles 方法,客户端可以接收不同分辨率和数据类型的历史 OHLCV 蜡烛图。客户端可以指定额外的时间框架和数量限制过滤条件,使响应更精确地满足客户端需求。
GetTradeHistory 此方法允许客户端获取所请求交易对的历史成交数据。客户端可以使用附加过滤参数(如时间范围、成交 ID 范围、方向等)来补充成交历史请求,以接收符合请求参数的成交记录。
GetServerTime 此方法用于获取 Exchange Plus 服务器上的当前时间。对于需要与服务器时间同步的应用程序,此方法非常有用。
GetPairsInfo Pair Info 方法允许客户端接收所有支持交易对的参数。
GetCurrenciesInfo Currencies Info 方法允许客户端接收 Exchange Plus 中配置的所有货币参数,以及 Exchange Plus 与 CEX.IO 钱包之间的存取款可用性信息。
GetProcessingInfo 此请求允许客户端获取关于从外部钱包充值和提现到外部钱包的可用选项的详细信息,涵盖每种支持的加密货币,包括加密货币名称及充提款可用的区块链。此外,针对每条支持的区块链,还会说明该区块链上的加密货币类型、当前的充提款可用性、最小充提款金额以及外部提款手续费。处理信息使客户在选择接收充值地址和通过特定区块链发起外部提款时更加灵活,让客户能以更便捷的方式将加密资产转入或转出 CEX.IO 生态系统。
SubscribeOrderBook 客户端通过 WebSocket 订阅可以订阅指定交易对的订单簿数据。在响应订单簿订阅请求时,客户端将收到具有指定 seqId 编号的请求交易对的当前(初始)订单簿快照。为跟踪订单簿的后续更新,客户端需要通过 WebSocket 订阅 "order_book_increment" 消息,该消息包含交易对名称、seqId 编号以及买卖价格档位的增量变化。
UnSubscribeOrderBook 从订单簿频道取消订阅。
SubscribeTrade 通过使用交易订阅方法,客户端可以通过 WebSocket 订阅请求交易对上发生的实时交易事件。作为对交易订阅请求的响应,客户端将收到一个唯一的交易订阅标识符,当不再需要该订阅时,应使用该标识符进行取消订阅。客户端应通过 WebSocket 订阅 "tradeHistorySnapshot" 和 "tradeUpdate" 消息,以接收初始和定期的交易历史快照以及所请求交易对的实时交易事件。
UnSubscribeTrade 取消订阅交易频道。

 

 

示例:获取 BTC-USD 交易对的最新 Ticker

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.OnCexPlusConnect := OnCexPlusConnectEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusConnectEvent(Sender: TObject);
begin
  oCexPlus.GetTicker('BTC-USD');
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Ticker data: ' + Msg);
end;

 

 

 

私有 API 调用

 

Exchange Plus 使用 API 密钥来允许访问私有 API。

 

客户端可以通过 Exchange Plus Web 终端的 API 密钥管理配置文件部分生成、配置和管理 API 密钥,设置权限级别、API 密钥的白名单 IP 等。

 

API 密钥限制:默认情况下,客户端最多可拥有 5 个 API 密钥。

 

为了在使用 API 密钥时限制对某些功能的访问,应为每个 API 密钥定义特定的权限集。已定义的权限集可根据需要进一步编辑。

 

以下权限级别可用于 API 密钥:

 

 

 

方法 描述
GetCurrentFee 此方法指示特定时刻的当前手续费,综合考虑了客户最新的 30 天交易量及星期几(例如周末的手续费可能有所不同)。
GetFeeStrategy 手续费策略返回所有可适用于客户端的手续费选项,考虑因素包括客户端的交易量、星期几、交易对、交易对组别等。此方法提供关于总体手续费策略的信息,涵盖所有可能适用于客户端的交易手续费值。若要获取基于客户端当前 30 天交易量的当前交易手续费,请使用 [Current Fee] 方法。若要获取当前 30 天交易量,请使用 [Volume] 方法。
GetVolume 此请求允许客户端接收其过去 30 天的 USD 等值交易量。
CreateAccount 此请求允许客户端创建新的子账户。默认情况下,客户端最多可拥有 5 个子账户(含主账户)。
GetAccountStatus 通过使用账户状态 V3 方法,客户端可以了解当前余额及其在换算货币(默认为"USD")中的参考等值,以及每个子账户和货币中在未结(活跃)订单中锁定的金额。如果客户端有可用的交易手续费余额,则响应还将包含一般性交易手续费余额数据,例如促销名称、货币名称、总余额以及该促销在交易手续费余额上的到期日期。客户端有责任追踪其子账户的可用交易余额,即当前子账户余额减去子账户未结(活跃)订单中锁定的余额金额。
GetOrders 此请求允许客户端查询其订单信息。
NewOrder 客户端可以通过 WebSocket API 使用"我的新订单请求"下单。随同对该请求的响应,如果请求成功,Exchange Plus 还会向客户端发送账户事件和执行报告消息。响应消息指示系统在发送响应时订单的最新状态。如果客户端未收到"我的新订单请求"的响应消息,可以使用带有 clientOrderId 参数的"获取我的订单请求"查询当前订单状态。发送新订单请求时,强烈建议使用 clientOrderId 参数,该参数对应客户端的特定新订单请求。Exchange Plus 会避免对具有相同 clientOrderId 的订单进行多次下单。如果识别到多个具有相同 clientOrderId 和其他相同订单参数的新订单,Exchange Plus 仅处理第一个订单,并在响应具有相同参数的第二个及后续新订单请求时返回该订单的状态。如果识别到多个具有相同 clientOrderId 但其他订单参数不同的新订单,Exchange Plus 仅处理第一个订单,并拒绝具有相同 clientOrderId 但其他订单参数不同的第二个及后续新订单请求。
NewMarketOrder 下一个市价单。
NewLimitOrder 下达新的限价单。
CancelOrder 客户端可以取消订单。若请求成功,交易所将向客户端发送账户事件和执行报告消息。此外,若取消订单请求被拒绝,交易所将发送订单取消拒绝消息。
CancelAllOrders 客户端可通过 WebSocket API 取消所有挂单。收到此请求后,Exchange Plus 将开始对所有挂单执行取消流程,并向客户端发送相应的账户事件和执行报告消息。
GetTransactionHistory 此请求允许客户端查询其财务交易记录(存款、提款、内部转账、佣金或交易)。
GetFundingHistory 此请求允许客户端查找其存款和提款交易记录。
InternalTransfer 客户端可以请求在其子账户之间或在其主账户与子账户之间转账。Exchange Plus 不对客户账户间的资金转移收取任何手续费。若请求成功,Exchange Plus 将同时向客户发送账户事件消息。
GetDepositAddress 此方法可供客户端用于接收用于存入加密货币的加密地址。可以为主账户和子账户生成存款地址。
FundsDepositFromWallet 客户端可以将资金从 CEX.IO 钱包存入 Exchange Plus 账户。系统会避免处理具有相同 clientTxId 的多个存款请求。如果收到多个具有相同 clientTxId 的存款请求,系统仅处理第一个存款请求,并拒绝具有相同 clientTxId 的第二个及后续存款请求。
FundsWithdrawalToWallet 客户端可以从 Exchange Plus 账户提现到 CEX.IO 钱包。系统避免使用相同 clientTxId 的多次提现请求。如果收到多个具有相同 clientTxId 的提现请求,系统只处理第一个提现请求,并拒绝具有相同 clientTxId 的第二个及后续提现请求。
GetWalletBalance 获取 CEX.IO 钱包余额信息。
SubscribeAccountEvents 订阅实时账户事件通知(余额变化、订单成交)。
UnSubscribeAccountEvents 取消订阅账户事件通知。
   

 

 

示例:获取订单。

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your-api-key';
oCexPlus.CexPlus.ApiSecret := 'your-api-secret';
oCexPlus.OnCexPlusAuthenticated := OnCexPlusAuthenticatedEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusAuthenticatedEvent(Sender: TObject);
begin
  oCexPlus.GetOrders();
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Orders: ' + Msg);
end;