Delphi 向け KuCoin Spot・Futures API 統合
TsgcWSAPI_Kucoin および TsgcWSAPI_Kucoin_Futures コンポーネントは、リアルタイム WebSocket 市場データ、プライベートアカウントストリーム、取引・出金・市場クエリ用の完全な REST API を含む KuCoin 取引所への包括的な Delphi アクセスを提供します。このガイドでは、Spot・Futures の両方で利用可能なすべてのメソッドを、設定の詳細と実際のコード例とともに解説します。
目次
Spot WebSocket API
Spot WebSocket API は、市場データおよびプライベートアカウントイベントのリアルタイムストリーミングを提供します。パブリックチャネルは認証なしで利用可能で、プライベートチャネルは有効な API 認証情報が必要です。
パブリックチャネル
パブリックチャネルは、認証を必要とせず、接続されたすべてのクライアントに市場データをストリーミングします。各 Subscribe メソッドには対応する Unsubscribe メソッドがあります。
| メソッド |
説明 |
SubscribeSymbolTicker |
特定の取引シンボルのリアルタイムティッカー更新にサブスクライブします。 |
SubscribeAllSymbolsTicker |
取引所のすべてのシンボルのティッカー更新にサブスクライブします。 |
SubscribeSymbolSnapshot |
24時間統計を含む特定のシンボルのスナップショットデータにサブスクライブします。 |
SubscribeMarketSnapshot |
市場全体のスナップショット更新にサブスクライブします。 |
SubscribeLevel2MarketData |
レベル2の板情報変更(フル深度)にサブスクライブします。 |
SubscribeLevel2_5BestAskBid |
板情報の上位5件のベストアスク・ビッドにサブスクライブします。 |
SubscribeLevel2_50BestAskBid |
板情報の上位50件のベストアスク・ビッドにサブスクライブします。 |
SubscribeKlines |
指定した間隔でシンボルのローソク足/KLine データにサブスクライブします。 |
SubscribeMatchExecutionData |
シンボルの取引リアルタイムマッチング/約定データにサブスクライブします。 |
SubscribeIndexPrice |
シンボルの指数価格更新にサブスクライブします。 |
SubscribeMarkPrice |
シンボルのマーク価格更新にサブスクライブします。 |
SubscribeOrderBookChanged |
シンボルの板情報変更イベントにサブスクライブします。 |
注: 上記のすべての Subscribe メソッドには対応する
UnSubscribe メソッド(例:
UnSubscribeSymbolTicker)があり、そのチャネルの更新受信を停止できます。
プライベートチャネル
プライベートチャネルは有効な API 認証情報が必要で、注文・残高・ポジション・信用取引アクティビティのリアルタイム更新を提供します。
| メソッド |
説明 |
SubscribeTradeOrders |
取引注文(未決済・約定済み・キャンセル済み)のリアルタイム更新にサブスクライブします。 |
SubscribeAccountBalance |
リアルタイムの口座残高変動にサブスクライブします。 |
SubscribePositionStatus |
信用取引のポジションステータス更新にサブスクライブします。 |
SubscribeMarginTradeOrders |
信用取引注文の更新にサブスクライブします。 |
SubscribeStopOrder |
ストップ注文のトリガーおよびステータス更新にサブスクライブします。 |
Spot REST API
Spot REST API は TsgcWSAPI_Kucoin の REST_API プロパティからアクセスします。すべてのメソッドは JSON 文字列を返します。API はアカウント、出金、注文管理、ストップ注文、市場データを対象としています。
アカウント
| メソッド |
説明 |
GetAccounts |
すべてのアカウント(メイン・取引・信用)のリストを返します。 |
GetAccount |
アカウント ID で指定したアカウントの詳細を返します。 |
GetAccountBalanceSubAccount |
サブアカウントの残高を返します。 |
InnerTransfer |
内部アカウント間で資金を振り替えます(例:メイン→取引)。 |
出金
| メソッド |
説明 |
GetWithdrawalsList |
最近の出金記録のリストを返します。 |
GetHistoricalWithdrawalsList |
最近のウィンドウを超えた過去の出金記録を返します。 |
GetWithdrawalsQuotas |
指定した通貨の出金上限額と制限を返します。 |
ApplyWithdraw |
外部アドレスへの出金を開始します。 |
CancelWithdraw |
ID で指定した保留中の出金をキャンセルします。 |
注文
| メソッド |
説明 |
PlaceOrder |
新規 Spot 注文(成行・指値、買い・売り)を発注します。 |
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 |
シンボルの完全な板情報(レベル3データ)を返します。 |
GetHistories |
シンボルの最近の取引履歴を返します。 |
GetKLines |
指定した間隔でシンボルのローソク足/KLine データを返します。 |
GetCurrencies |
サポートされているすべての通貨のリストを返します。 |
GetCurrencyDetail |
特定の通貨の詳細(チェーン情報・精度など)を返します。 |
GetFiatPrice |
指定した通貨の法定通貨価格を返します(例:BTC の USD 換算値)。 |
Futures WebSocket API
Futures WebSocket API は TsgcWSAPI_Kucoin_Futures が提供し、先物契約データおよびプライベートアカウントイベントのリアルタイムストリーミングを提供します。
パブリックチャネル
| メソッド |
説明 |
SubscribeSymbolTickerV2 |
先物契約シンボルの V2 ティッカー更新にサブスクライブします。 |
SubscribeSymbolTicker |
先物契約シンボルのティッカー更新にサブスクライブします。 |
SubscribeLevel2MarketData |
先物契約のレベル2板情報データにサブスクライブします。 |
SubscribeExecutionData |
先物取引のリアルタイムマッチング/約定データにサブスクライブします。 |
SubscribeLevel2_5BestAskBid |
先物契約の上位5件のベストアスク・ビッドにサブスクライブします。 |
SubscribeLevel2_50BestAskBid |
先物契約の上位50件のベストアスク・ビッドにサブスクライブします。 |
SubscribeContractMarketData |
契約レベルの市場データ(ファンディングレート・マーク価格など)にサブスクライブします。 |
SubscribeSystemAnnouncements |
システム全体のアナウンスとメンテナンス通知にサブスクライブします。 |
SubscribeTransactionStatistics |
先物契約の集計取引統計にサブスクライブします。 |
注: 先物テーブルに記載されているすべての Subscribe メソッドには、対応する
UnSubscribe メソッドがあり、そのチャネルの更新受信を停止できます。
プライベートチャネル
| メソッド |
説明 |
SubscribeTradeOrders |
先物取引注文のリアルタイム更新にサブスクライブします。 |
SubscribeStopOrder |
先物のストップ注文トリガーおよびステータス更新にサブスクライブします。 |
SubscribeAccountBalance |
リアルタイムの先物口座残高変動にサブスクライブします。 |
SubscribePositionChange |
ポジション変更イベント(オープン・クローズ・清算)にサブスクライブします。 |
Futures REST API
Futures REST API は TsgcWSAPI_Kucoin_Futures の REST_API プロパティからアクセスします。これらのメソッドは証拠金管理、リスク上限、ファンディング履歴、板情報クエリを対象としています。
| メソッド |
説明 |
AddMarginManually |
先物ポジションに手動で証拠金を追加します。 |
ObtainFuturesRiskLimitLevel |
先物契約の現在のリスク上限レベルを返します。 |
AdjustRiskLimitLevel |
先物契約のリスク上限レベルを調整します。 |
GetFundingHistory |
先物契約のファンディングレート履歴を返します。 |
GetPartOrderBook100 |
先物板情報の上位100件を返します。 |
GetFullOrderBook |
先物の完全な板情報を返します。 |
GetLevel2PullingMessages |
段階的な板情報更新のためのレベル2プルメッセージを返します。 |
GetInterestRateList |
ファンディング計算に使用する金利リストを返します。 |
GetIndexList |
先物契約の指数構成リストを返します。 |
コード例
以下の例では、TsgcWSAPI_Kucoin コンポーネントを Spot 取引向けに作成・設定し、API で認証してから 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(Spot)と TsgcWSAPI_Kucoin_Futures(Futures)はどちらも同じ認証プロパティを共有しており、Kucoin プロパティからアクセスします。
| プロパティ |
型 |
説明 |
Kucoin.ApiKey |
String |
KuCoin の API キーです。KuCoin API 管理ページから生成してください。 |
Kucoin.ApiSecret |
String |
KuCoin の API シークレットです。この値は安全に保管し、クライアント側のコードに公開しないでください。 |
Kucoin.Passphrase |
String |
API キー作成時に設定したパスフレーズです。認証が必要なすべてのリクエストに必要です。 |
重要なメモ
セキュリティ: API キー・シークレット・パスフレーズを本番コードに直接ハードコードしないでください。認証情報の保存には安全な設定ファイルまたは環境変数を使用してください。
- Spot 取引には
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 接続はトークンベースの認証システムを使用します。コンポーネントはトークンの取得と更新を自動的に処理します。