CEX.IO Plus 是 CEX.IO 为专业及机构交易者设计的高级交易平台。TsgcWSAPI_CexPlus 组件通过单一持久连接提供对其 WebSocket API 的全面 Delphi 访问,涵盖行情订阅、订单管理、账户操作和资金划转。
目录
概述
CEX.IO Plus API 在标准 CEX.IO 基础上大幅扩展,提供三层功能:用于实时订单簿和成交推送的公有订阅、用于按需获取 Ticker/K 线/交易所信息快照的行情数据查询,以及支持完整交易操作(含订单管理、手续费查询、交易历史和资金划转)的账户方法。TsgcWSAPI_CexPlus 组件封装了所有这些功能。
快速入门
创建 TsgcWebSocketClient 和 TsgcWSAPI_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 使用独立的基础货币和计价货币参数不同。调用订阅方法和行情查询时,请始终使用连字符格式。
订单方向枚举
订单方法使用 cxpsBuy 和 cxpsSell 枚举值指定订单方向,这些枚举值是 CEX.IO Plus 组件专用的,与标准 CEX.IO 枚举不同。
连接保活
定期调用 Ping 方法以保持认证会话活跃,防止服务器因空闲而关闭连接。
GetPairsInfo 和 GetCurrenciesInfo 动态获取可用交易对和支持的币种,而非在应用中硬编码。
错误处理
CEX.IO Plus 的所有响应都包含状态字段。在组件的消息事件中通过检查响应状态和错误详情来处理错误响应。常见错误包括余额不足、无效的交易对名称和认证失败。
