Kucoin API 更新 sgcWebSockets

· 功能

TsgcWSAPI_KucoinTsgcWSAPI_Kucoin_Futures 组件为 Delphi 开发者提供了对 KuCoin 交易所的全面访问,涵盖实时 WebSocket 行情数据、私有账户数据流,以及用于交易、提现和行情查询的完整 REST API。本指南涵盖现货和期货组件的所有可用方法,并附配置说明和代码示例。

现货 WebSocket API

现货 WebSocket API 提供行情数据和私有账户事件的实时数据流。公共频道无需认证,私有频道需要有效的 API 凭证。

公共频道

公共频道向所有已连接客户端推送行情数据,无需认证。每个订阅方法均有对应的取消订阅方法。

方法说明
SubscribeSymbolTicker订阅指定交易对的实时行情更新。
SubscribeAllSymbolsTicker订阅交易所所有交易对的行情更新。
SubscribeSymbolSnapshot订阅指定交易对的快照数据,包含 24 小时统计信息。
SubscribeMarketSnapshot订阅全市场快照更新。
SubscribeLevel2MarketData订阅 Level 2 订单簿变化(全深度)。
SubscribeLevel2_5BestAskBid订阅订单簿前 5 档最优买卖价。
SubscribeLevel2_50BestAskBid订阅订单簿前 50 档最优买卖价。
SubscribeKlines订阅指定交易对和时间间隔的 K 线数据。
SubscribeMatchExecutionData订阅指定交易对的实时撮合/成交数据。
SubscribeIndexPrice订阅指定交易对的指数价格更新。
SubscribeMarkPrice订阅指定交易对的标记价格更新。
SubscribeOrderBookChanged订阅指定交易对的订单簿变动事件。

注意:上述每个订阅方法均有对应的 UnSubscribe 方法(如 UnSubscribeSymbolTicker)用于停止接收该频道的更新。

私有频道

私有频道需要有效的 API 凭证,提供订单、余额、持仓及保证金活动的实时更新。

方法说明
SubscribeTradeOrders订阅您的交易订单实时更新(挂单、成交、取消)。
SubscribeAccountBalance订阅账户余额变动的实时更新。
SubscribePositionStatus订阅杠杆交易的持仓状态更新。
SubscribeMarginTradeOrders订阅杠杆交易订单更新。
SubscribeStopOrder订阅止损单触发和状态更新。

现货 REST API

现货 REST API 通过 TsgcWSAPI_KucoinREST_API 属性访问。所有方法均返回 JSON 字符串,涵盖账户、提现、订单管理、止损单和行情数据。

账户

方法说明
GetAccounts返回所有账户列表(主账户、交易账户、杠杆账户)。
GetAccount按账户 ID 返回特定账户详情。
GetAccountBalanceSubAccount返回子账户的余额。
InnerTransfer在内部账户之间划转资金(如主账户转交易账户)。

提现

方法说明
GetWithdrawalsList返回近期提现记录列表。
GetHistoricalWithdrawalsList返回超出近期窗口的历史提现记录。
GetWithdrawalsQuotas返回指定币种的提现配额和限额。
ApplyWithdraw发起向外部地址的提现。
CancelWithdraw按 ID 取消待处理的提现。

订单

方法说明
PlaceOrder下新的现货订单(市价或限价,买入或卖出)。
PlaceMarginOrder使用借入资金下杠杆订单。
CancelOrderByClientOid使用客户端指定的订单 ID 取消订单。
GetOrder按交易所指定 ID 返回特定订单详情。
GetOrderByClientOid按客户端指定 ID 返回特定订单详情。
ListFills返回已成交订单列表(成交执行记录)。
GetRecentFills返回最近的成交记录。

止损单

方法说明
PlaceStopOrder下在达到止损价时触发的止损单。
PlaceStopMarketOrder下在触发后以市价执行的止损市价单。
PlaceStopLimitOrder下在触发后创建限价单的止损限价单。
CancelStopOrder按交易所指定 ID 取消止损单。
CancelStopOrderByClientOid按客户端指定 ID 取消止损单。
CancelAllStopOrders取消所有活跃止损单,可按交易对筛选。
GetStopOrder按交易所指定 ID 返回特定止损单详情。
GetStopOrderByClientOid按客户端指定 ID 返回特定止损单详情。
ListStopOrders返回所有活跃止损单列表。

行情数据

方法说明
GetSymbolList返回可用交易对列表。
GetAllTickers返回所有交易对的行情数据。
GetMarketList返回可用市场列表。
GetPartOrderBook100返回指定交易对订单簿的前 100 条记录。
GetFullOrderBook返回指定交易对的完整订单簿(Level 3 数据)。
GetHistories返回指定交易对的近期成交历史。
GetKLines返回指定交易对和时间间隔的 K 线数据。
GetCurrencies返回所有支持币种的列表。
GetCurrencyDetail返回特定币种的详情(链信息、精度等)。
GetFiatPrice返回指定币种的法币价格(如 BTC 的 USD 价值)。

期货 WebSocket API

期货 WebSocket API 由 TsgcWSAPI_Kucoin_Futures 提供,支持期货合约数据和私有账户事件的实时数据流。

公共频道

方法说明
SubscribeSymbolTickerV2订阅期货合约的 V2 行情更新。
SubscribeSymbolTicker订阅期货合约的行情更新。
SubscribeLevel2MarketData订阅期货合约的 Level 2 订单簿数据。
SubscribeExecutionData订阅期货成交的实时撮合/成交数据。
SubscribeLevel2_5BestAskBid订阅期货合约前 5 档最优买卖价。
SubscribeLevel2_50BestAskBid订阅期货合约前 50 档最优买卖价。
SubscribeContractMarketData订阅合约级别的行情数据(资金费率、标记价格等)。
SubscribeSystemAnnouncements订阅系统公告和维护通知。
SubscribeTransactionStatistics订阅期货合约的汇总成交统计。

注意:期货表格中列出的每个订阅方法均有对应的 UnSubscribe 方法,用于停止接收该频道的更新。

私有频道

方法说明
SubscribeTradeOrders订阅期货交易订单的实时更新。
SubscribeStopOrder订阅期货止损单的触发和状态更新。
SubscribeAccountBalance订阅期货账户余额变动的实时更新。
SubscribePositionChange订阅持仓变动事件(开仓、平仓、强制平仓)。

期货 REST API

期货 REST API 通过 TsgcWSAPI_Kucoin_FuturesREST_API 属性访问,涵盖保证金管理、风险限额、资金历史和订单簿查询。

方法说明
AddMarginManually手动为期货持仓追加保证金。
ObtainFuturesRiskLimitLevel返回期货合约的当前风险限额等级。
AdjustRiskLimitLevel调整期货合约的风险限额等级。
GetFundingHistory返回期货合约的资金费率历史。
GetPartOrderBook100返回期货订单簿的前 100 条记录。
GetFullOrderBook返回完整的期货订单簿。
GetLevel2PullingMessages返回增量订单簿更新的 Level 2 拉取消息。
GetInterestRateList返回用于资金计算的利率列表。
GetIndexList返回期货合约的指数成分列表。

代码示例

以下示例演示如何创建和配置 TsgcWSAPI_Kucoin 组件进行现货交易:通过 REST 获取行情、下单,以及通过 WebSocket 订阅实时行情数据流。

var
  oClient: TsgcWebSocketClient;
  oKucoin: TsgcWSAPI_Kucoin;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  oKucoin := TsgcWSAPI_Kucoin.Create(nil);
  oKucoin.Client := oClient;
  // Configure API credentials
  oKucoin.Kucoin.ApiKey := 'your_api_key';
  oKucoin.Kucoin.ApiSecret := 'your_api_secret';
  oKucoin.Kucoin.Passphrase := 'your_passphrase';
  // Connect to KuCoin
  oClient.Active := True;
  // REST: Get all tickers
  ShowMessage(oKucoin.REST_API.GetAllTickers);
  // REST: Place a limit order
  ShowMessage(oKucoin.REST_API.PlaceOrder(myOrder));
  // WebSocket: Subscribe to BTC-USDT ticker
  oKucoin.SubscribeSymbolTicker('BTC-USDT');
end;

处理 WebSocket 事件

分配事件处理程序以处理传入消息。事件提供每次更新的主题、标的和 JSON 数据。

procedure TForm1.OnKucoinEvent(Sender: TObject;
  const aTopic, aSubject, aData: string);
begin
  // aTopic identifies the channel
  // aSubject provides the specific symbol or identifier
  // aData contains the JSON payload
  Memo1.Lines.Add(aTopic + ' [' + aSubject + ']: ' + aData);
end;

配置与注意事项

配置属性

TsgcWSAPI_Kucoin(现货)和 TsgcWSAPI_Kucoin_Futures(期货)通过 Kucoin 属性共享相同的认证属性。

属性类型说明
Kucoin.ApiKeyString您的 KuCoin API 密钥,在 KuCoin API 管理页面生成。
Kucoin.ApiSecretString您的 KuCoin API 密钥。请妥善保管,切勿在客户端代码中暴露。
Kucoin.PassphraseString创建 API 密钥时设置的通行短语,所有已认证请求均需提供。

重要注意事项

安全性:切勿在生产代码中硬编码 API 密钥、密钥或通行短语。请使用安全配置文件或环境变量存储凭证。