TsgcWSAPI_Kucoin 和 TsgcWSAPI_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_Kucoin 的 REST_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_Futures 的 REST_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.ApiKey | String | 您的 KuCoin API 密钥,在 KuCoin API 管理页面生成。 |
Kucoin.ApiSecret | String | 您的 KuCoin API 密钥。请妥善保管,切勿在客户端代码中暴露。 |
Kucoin.Passphrase | String | 创建 API 密钥时设置的通行短语,所有已认证请求均需提供。 |
重要注意事项
安全性:切勿在生产代码中硬编码 API 密钥、密钥或通行短语。请使用安全配置文件或环境变量存储凭证。
- 现货交易使用
TsgcWSAPI_Kucoin,期货交易使用TsgcWSAPI_Kucoin_Futures。每个组件连接到不同的 KuCoin 端点。 Passphrase属性对 KuCoin 是必填项,在 KuCoin 网站创建 API 密钥时设置。- 所有 REST 方法均返回 JSON 字符串。可使用 JSON 解析器(如
System.JSON中的TJSONObject)解析响应。 - 公共 WebSocket 频道无需认证,可直接用于获取行情数据,无需设置 API 凭证。
- 私有 WebSocket 频道和所有修改账户状态的 REST 方法均需有效的 API 凭证。
- KuCoin 对 REST 和 WebSocket API 均实施速率限制。请参阅 KuCoin 官方文档了解当前限制。
- WebSocket 连接使用基于令牌的认证系统,组件会自动处理令牌的获取和更新。
