CEX Plus API 更新 sgcWebSockets

· 功能

CEX.IO Plus 是 CEX.IO 为专业及机构交易者设计的高级交易平台。TsgcWSAPI_CexPlus 组件通过单一持久连接提供对其 WebSocket API 的全面 Delphi 访问,涵盖行情订阅、订单管理、账户操作和资金划转。

目录

概述

CEX.IO Plus API 在标准 CEX.IO 基础上大幅扩展,提供三层功能:用于实时订单簿和成交推送的公有订阅、用于按需获取 Ticker/K 线/交易所信息快照的行情数据查询,以及支持完整交易操作(含订单管理、手续费查询、交易历史和资金划转)的账户方法TsgcWSAPI_CexPlus 组件封装了所有这些功能。

快速入门

创建 TsgcWebSocketClientTsgcWSAPI_CexPlus 组件,关联它们,并配置 API 凭证。组件会自动连接到 CEX.IO Plus WebSocket 端点。

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
注意:CEX.IO Plus 使用与标准 CEX.IO API 不同的端点和认证方案。请确保 API 凭证是从 CEX.IO Plus 控制台生成的,而非标准 CEX.IO 平台。

公有 WebSocket 方法

公有订阅方法无需认证即可提供实时数据流,非常适合市场监控和构建实时数据源。

方法 说明
SubscribeOrderBook 订阅交易对的实时订单簿更新。
UnSubscribeOrderBook 取消订阅交易对的订单簿更新。
SubscribeTrade 订阅交易对的实时成交推送。
UnSubscribeTrade 取消订阅成交推送。
// Subscribe to BTC-USD order book and trades
oCexPlus.SubscribeOrderBook('BTC-USD');
oCexPlus.SubscribeTrade('BTC-USD');
// Unsubscribe when no longer needed
oCexPlus.UnSubscribeOrderBook('BTC-USD');
oCexPlus.UnSubscribeTrade('BTC-USD');

行情数据方法

行情数据方法按需返回交易所数据快照。与订阅不同,这些是返回单次结果的请求-响应调用。

方法 说明
GetTicker 获取交易对的当前 Ticker(买一价、卖一价、最新成交价)。
GetOrderBook 获取交易对的当前订单簿快照。
GetCandles 获取用于图表展示的 OHLCV K 线数据。
GetTradeHistory 获取交易对最近的公开成交历史。
GetServerTime 获取当前服务器时间戳以进行同步。
GetPairsInfo 获取所有可用交易对的信息。
GetCurrenciesInfo 获取所有支持币种的信息。
GetProcessingInfo 获取充值和提现的处理详情。

查询行情数据

// Get current ticker for BTC-USD
oCexPlus.GetTicker('BTC-USD');
// Get order book snapshot
oCexPlus.GetOrderBook('BTC-USD');
// Get candle data for charting
oCexPlus.GetCandles('BTC-USD');
// Get available trading pairs
oCexPlus.GetPairsInfo;

账户与交易方法

账户方法需要认证,提供完整的交易功能,包括下单、账户状态查询、手续费管理和资金划转。

账户管理

方法 说明
Ping 发送保活 ping 以维持连接。
CreateAccount 在平台上创建新的子账户。
GetAccountStatus 获取当前账户状态和详情。
GetCurrentFee 获取账户当前的交易手续费率。
GetFeeStrategy 获取手续费策略和档次信息。
GetVolume 获取用于手续费档次计算的交易量。

订单管理

方法 说明
GetOrders 获取账户所有挂单。
NewOrder 以完整参数控制下新单。
NewMarketOrder 以当前最优价立即成交的市价单。
NewLimitOrder 以指定价格下限价单。
CancelOrder 按标识符撤销指定挂单。
CancelAllOrders 一次性撤销所有挂单。

历史记录与资金

方法 说明
GetTransactionHistory 获取账户的交易历史记录。
GetFundingHistory 获取充值和提现历史。
InternalTransfer 在子账户之间进行内部资金划转。
GetDepositAddress 生成或获取指定币种的充值地址。
FundsDepositFromWallet 从外部钱包向交易账户充值。
FundsWithdrawalToWallet 从交易账户向外部钱包提现。

代码示例

以下示例演示连接到 CEX.IO Plus、查询账户状态、订阅订单簿并下市价单。

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
// Get account status
oCexPlus.GetAccountStatus;
// Subscribe to order book
oCexPlus.SubscribeOrderBook('BTC-USD');
// Place a market order
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);

下不同类型的订单

CEX.IO Plus 支持多种订单类型。使用 NewMarketOrder 以最优价立即成交,使用 NewLimitOrder 指定价格下单,或使用 NewOrder 完全控制所有参数。

// Market order: buy BTC with USD at market price
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);
// Limit order: buy BTC at a specific price
oCexPlus.NewLimitOrder('BTC', 'USD', cxpsBuy, 0.01, 30000);
// Cancel a specific order
oCexPlus.CancelOrder('order-id-here');
// Cancel all open orders
oCexPlus.CancelAllOrders;

资金划转

组件支持子账户间的内部资金划转,以及充值和提现操作。

// Get deposit address for BTC
oCexPlus.GetDepositAddress('BTC');
// Retrieve funding history
oCexPlus.GetFundingHistory;
// Transfer funds between sub-accounts
oCexPlus.InternalTransfer('from-account', 'to-account', 'BTC', 0.5);

配置与注意事项

API 凭证

从 CEX.IO Plus 平台生成 API 密钥和私钥,这些凭证与标准 CEX.IO 凭证不同。确保 API 密钥已启用所需操作的相应权限(如交易、提现)。

交易对命名规范

CEX.IO Plus 使用连字符格式的交易对名称(如 BTC-USD),与标准 CEX.IO API 使用独立的基础货币和计价货币参数不同。调用订阅方法和行情查询时,请始终使用连字符格式。

订单方向枚举

订单方法使用 cxpsBuycxpsSell 枚举值指定订单方向,这些枚举值是 CEX.IO Plus 组件专用的,与标准 CEX.IO 枚举不同。

连接保活

定期调用 Ping 方法以保持认证会话活跃,防止服务器因空闲而关闭连接。

提示:启动时调用 GetPairsInfoGetCurrenciesInfo 动态获取可用交易对和支持的币种,而非在应用中硬编码。

错误处理

CEX.IO Plus 的所有响应都包含状态字段。在组件的消息事件中通过检查响应状态和错误详情来处理错误响应。常见错误包括余额不足、无效的交易对名称和认证失败。