Kraken スポット・先物 API の Delphi 統合
Kraken は最も長い歴史を持つ信頼性の高い暗号通貨取引所の一つで、スポット市場と先物市場の両方を提供しています。Delphi 向けの TsgcWSAPI_Kraken と TsgcWSAPI_Kraken_Futures コンポーネントは Kraken の WebSocket・REST API への完全なアクセスを提供し、リアルタイム市場データストリーミング・口座管理・注文発注・先物取引を単一のコードベースから実現します。
目次
概要
Kraken の API は 2 つの異なるプラットフォームに分かれており、それぞれ専用コンポーネントがあります:
| コンポーネント |
市場 |
説明 |
TsgcWSAPI_Kraken |
スポット |
WebSocket と REST サポートで Kraken のスポット取引所で暗号通貨を取引します |
TsgcWSAPI_Kraken_Futures |
先物 |
レバレッジポジションで無期限・固定満期の先物契約を取引します |
両コンポーネントはデュアルチャンネルアプローチを提供します:低レイテンシのリアルタイムデータストリーミング用の WebSocket 接続と、残高照会・注文発注・過去データ取得などのリクエスト/レスポンス操作用の REST エンドポイントです。
設定
スポットと先物の両コンポーネントは、プライベート(認証済み)操作に API 認証情報が必要です。市場データなどのパブリックエンドポイントは認証不要です。
| プロパティ |
型 |
説明 |
Kraken.ApiKey |
String |
Kraken アカウント設定ページで生成した Kraken API キー |
Kraken.ApiSecret |
String |
プライベートリクエストの署名に使用する Kraken API シークレット |
注:API キーは
kraken.com > セキュリティ > API で生成してください。アプリケーションが必要とする権限のみを割り当ててください。読み取り専用ダッシュボードの場合は取引・出金権限を完全に無効にしてください。
スポット WebSocket API
スポット WebSocket API は市場データとプライベート口座イベントのリアルタイムストリーミングを提供します。メソッドはパブリックチャンネル(認証不要)とプライベートチャンネル(有効な WebSocket トークンが必要)に分かれています。
パブリックチャネル
| メソッド |
説明 |
SubscribeTicker / UnSubscribeTicker |
最良気配値・24 時間出来高・価格統計を含むリアルタイムティッカー情報 |
SubscribeOHLC / UnSubscribeOHLC |
設定可能な時間間隔でのリアルタイム OHLC(ローソク足)データ |
SubscribeTrade / UnSubscribeTrade |
取引所のすべての約定を表示するリアルタイム約定フィード |
SubscribeBook / UnSubscribeBook |
設定可能な深度での板情報スナップショットと差分更新 |
SubscribeSpread / UnSubscribeSpread |
リアルタイムの最良気配値スプレッド更新 |
SubscribeAll / UnSubscribeAll |
指定ペアのすべてのパブリックチャンネルを一度にサブスクライブまたはサブスクライブ解除します |
プライベートチャネル
| メソッド |
説明 |
SubscribeOwnTrades / UnSubscribeOwnTrades |
自分の約定済み取引のリアルタイムフィード |
SubscribeOpenOrders / UnSubscribeOpenOrders |
未約定注文のリアルタイム更新(新規・変更・キャンセル・約定) |
AddOrder |
WebSocket 経由で新規注文を発注します(REST より低レイテンシ) |
CancelOrder |
WebSocket 経由で既存注文をキャンセルします |
// Subscribe to public ticker data for BTC/USD
oKraken.SubscribeTicker('XBT/USD');
// Subscribe to the order book with 10-level depth
oKraken.SubscribeBook('XBT/USD');
// Subscribe to real-time trades
oKraken.SubscribeTrade('ETH/USD');
// Subscribe to private channels (requires API key)
oKraken.SubscribeOwnTrades;
oKraken.SubscribeOpenOrders;
スポット REST API
スポット REST API は TsgcWSAPI_Kraken コンポーネントの REST_API プロパティ経由でアクセスします。市場データ照会・口座管理・取引・資金操作のための包括的なエンドポイントセットを提供します。
パブリック REST メソッド
| メソッド |
説明 |
GetServerTime |
サーバーの現在時刻を返します(時刻同期に便利) |
GetAssets |
利用可能なすべての資産とそのプロパティ(小数点・表示名)を一覧表示します |
GetAssetPairs |
手数料構造と証拠金情報を含む取引可能なすべての資産ペアを一覧表示します |
GetTicker |
1 つ以上のペアのティッカーデータ(気配値・売気配・最終・出来高・VWAP)を返します |
GetOHLC |
指定ペアと時間間隔の OHLC ローソク足データを返します |
GetOrderBook |
指定された深度での指定ペアの現在の板情報を返します |
GetTrades |
指定ペアの最近の約定を返します |
GetSpread |
指定ペアの最近のスプレッドデータを返します |
プライベート REST メソッド - 口座・取引
| メソッド |
説明 |
GetAccountBalance |
口座内のすべての資産の残高を返します |
GetTradeBalance |
取引残高情報(純資産・証拠金・余剰証拠金・損益)を返します |
GetOpenOrders |
現在未約定のすべての注文を返します |
GetClosedOrders |
最近クローズされた注文を返します |
QueryOrders |
トランザクション ID で特定の注文を照会します |
GetTradesHistory |
取引履歴を返します |
QueryTrades |
取引 ID で特定の取引を照会します |
GetLedgers |
台帳エントリー(入金・出金・取引・手数料)を返します |
QueryLedgers |
ID で特定の台帳エントリーを照会します |
GetTradeVolume |
30 日間の取引量と手数料ティアを返します |
AddOrder |
REST 経由で新規注文を発注します |
CancelOrder |
REST 経由で既存注文をキャンセルします |
GetWebSocketsToken |
プライベート WebSocket サブスクリプションに必要なトークンを生成します |
プライベート REST メソッド - エクスポート・レポート
| メソッド |
説明 |
AddExport |
データエクスポートをリクエストします(取引または台帳エントリー) |
ExportStatus |
保留中のエクスポートリクエストのステータスを確認します |
RetrieveExport |
完了したエクスポートファイルをダウンロードします |
RemoveExport |
エクスポートレポートを削除します |
プライベート REST メソッド - 資金
| メソッド |
説明 |
GetDepositMethods |
指定資産の利用可能な入金方法を返します |
GetDepositAddresses |
指定資産と方法の入金アドレスを返します |
GetStatusOfRecentDeposits |
最近の入金トランザクションのステータスを返します |
GetWithdrawalInformation |
指定資産の出金詳細(手数料・最小額・上限)を返します |
WithdrawFunds |
外部アドレスへの出金を開始します |
GetStatusOfRecentWithdraws |
最近の出金トランザクションのステータスを返します |
RequestWithdrawalCancelation |
保留中の出金のキャンセルを試みます |
RequestWalletTransfer |
Kraken ウォレット間で資金を移動します(例:スポットから先物) |
// Public REST: Get ticker data
ShowMessage(oKraken.REST_API.GetTicker('XBTUSD'));
// Public REST: Get OHLC data
ShowMessage(oKraken.REST_API.GetOHLC('XBTUSD'));
// Private REST: Get account balance
ShowMessage(oKraken.REST_API.GetAccountBalance);
// Private REST: Get open orders
ShowMessage(oKraken.REST_API.GetOpenOrders);
先物 WebSocket API
TsgcWSAPI_Kraken_Futures コンポーネントは、無期限契約と固定満期先物を含む Kraken の先物市場のリアルタイムストリーミングを提供します。
パブリックチャネル
| メソッド |
説明 |
SubscribeTicker / UnSubscribeTicker |
マーク価格・インデックス価格・ファンディングレートを含むリアルタイムの先物ティッカーデータ |
SubscribeTrade / UnSubscribeTrade |
先物市場のリアルタイム約定フィード |
SubscribeBook / UnSubscribeBook |
先物契約の板情報スナップショットと差分更新 |
SubscribeHeartBeat / UnSubscribeHeartBeat |
定期的なハートビートメッセージによる接続の健全性監視 |
SubscribeTickerLite / UnSubscribeTickerLite |
高頻度監視向けのペイロードを削減した軽量ティッカー |
プライベートチャネル
| メソッド |
説明 |
SubscribeOpenOrdersVerbose / UnSubscribeOpenOrdersVerbose |
完全な注文情報を含む詳細なリアルタイム未約定注文更新 |
SubscribeOpenPositions / UnSubscribeOpenPositions |
未決済先物ポジションのリアルタイム更新 |
SubscribeAccountLog / UnSubscribeAccountLog |
リアルタイムの口座アクティビティログ(ファンディング・清算など) |
SubscribeFills / UnSubscribeFills |
先物注文のリアルタイム約定通知 |
SubscribeOpenOrders / UnSubscribeOpenOrders |
軽量な未約定注文ステータス更新 |
SubscribeAccountBalanceAndMargins / UnSubscribeAccountBalanceAndMargins |
先物口座のリアルタイム残高・証拠金更新 |
SubscribeNotifications / UnSubscribeNotifications |
口座のシステム通知とアラート |
先物 REST API
先物 REST API は TsgcWSAPI_Kraken_Futures の REST_API プロパティ経由でアクセスします。市場データ・注文管理・口座照会・資金移動のエンドポイントを提供します。
パブリック REST メソッド
| メソッド |
説明 |
GetFeeSchedules |
先物取引の現在の手数料スケジュールを返します |
GetHistory |
先物契約の過去の市場データを返します |
GetInstruments |
利用可能なすべての先物銘柄とその契約仕様を一覧表示します |
GetTickers |
すべての先物契約のティッカーデータを返します |
プライベート REST メソッド - 口座・注文
| メソッド |
説明 |
GetAccounts |
先物口座の残高と証拠金情報を返します |
GetFills |
先物注文の最近の約定履歴を返します |
GetHistoricalExecutions |
過去の注文執行を返します |
GetHistoricalOrders |
過去の注文データを返します |
GetHistoricalTriggers |
条件付き注文の過去のトリガーイベントを返します |
GetOpenPositions |
現在未決済のすべての先物ポジションを返します |
GetNotifications |
口座通知を返します |
プライベート REST メソッド - 注文管理
| メソッド |
説明 |
SendMarketOrder |
現在の最良価格で成行注文を発注します |
SendLimitOrder |
指定価格で指値注文を発注します |
SendStopOrder |
指定価格でトリガーされるストップ注文を発注します |
SendTakeProfit |
利確注文を発注します |
CancelAllOrders |
すべての未約定先物注文を一度にキャンセルします |
CancelOrderByOrderId |
Kraken の注文 ID を使用して特定の注文をキャンセルします |
CancelOrderByCliOrderId |
クライアント注文 ID を使用して特定の注文をキャンセルします |
EditOrderByOrderId |
Kraken の注文 ID を使用して既存注文を変更します |
EditOrderByCliOrderId |
クライアント注文 ID を使用して既存注文を変更します |
プライベート REST メソッド - 移動・レポート
| メソッド |
説明 |
Transfer |
先物サブアカウント間で資金を移動します |
WalletTransfer |
ウォレットタイプ間で移動します |
SubAccountTransfer |
サブアカウント間で移動します |
WithdrawalToSpotWallet |
先物ウォレットからスポットウォレットに資金を戻します |
GetFeeScheduleVolumes |
手数料ティア計算のための出来高を返します |
GetAccountLogCSV |
口座アクティビティログを CSV ファイルとしてダウンロードします |
完全なコード例
以下の例は Kraken スポット API への接続・REST 経由の市場データ取得・口座残高照会・WebSocket 経由のリアルタイムティッカーフィードのサブスクライブを示しています。
var
oClient: TsgcWebSocketClient;
oKraken: TsgcWSAPI_Kraken;
begin
// Create and configure the WebSocket client
oClient := TsgcWebSocketClient.Create(nil);
oKraken := TsgcWSAPI_Kraken.Create(nil);
oKraken.Client := oClient;
// Configure API credentials for private endpoints
oKraken.Kraken.ApiKey := 'your_api_key';
oKraken.Kraken.ApiSecret := 'your_api_secret';
// Connect to Kraken
oClient.Active := True;
// REST: Get ticker data for BTC/USD
ShowMessage(oKraken.REST_API.GetTicker('XBTUSD'));
// REST: Get account balance (requires API key)
ShowMessage(oKraken.REST_API.GetAccountBalance);
// WebSocket: Subscribe to real-time ticker
oKraken.SubscribeTicker('XBT/USD');
end;
先物の例
先物コンポーネントのセットアップは同じパターンに従い、代わりに TsgcWSAPI_Kraken_Futures を使用します:
var
oClient: TsgcWebSocketClient;
oFutures: TsgcWSAPI_Kraken_Futures;
begin
oClient := TsgcWebSocketClient.Create(nil);
oFutures := TsgcWSAPI_Kraken_Futures.Create(nil);
oFutures.Client := oClient;
// Configure API credentials
oFutures.Kraken.ApiKey := 'your_futures_api_key';
oFutures.Kraken.ApiSecret := 'your_futures_api_secret';
oClient.Active := True;
// REST: Get all available futures instruments
ShowMessage(oFutures.REST_API.GetInstruments);
// REST: Get account information
ShowMessage(oFutures.REST_API.GetAccounts);
// WebSocket: Subscribe to futures ticker
oFutures.SubscribeTicker('PI_XBTUSD');
// WebSocket: Subscribe to private account updates
oFutures.SubscribeOpenPositions;
oFutures.SubscribeAccountBalanceAndMargins;
end;
注意事項とベストプラクティス
スポットと先物の API キー
Kraken はスポット取引と先物取引に別々の API キーを使用します。Kraken の設定ページから各プラットフォーム専用のキーを生成してください。同じキーを両方のコンポーネントで再利用しないでください。
プライベートチャンネル用 WebSocket トークン
スポット取引所のプライベート WebSocket サブスクリプションには GetWebSocketsToken REST メソッドで取得した一時トークンが必要です。API 認証情報が設定されているとコンポーネントが自動的に処理しますが、トークンには有効期限があり必要に応じて更新されることに注意してください。
レート制限
Kraken は REST・WebSocket API の両方にレート制限を設けています。REST エンドポイントはカウンターベースのシステムを使用し、各呼び出しでカウンターが増加し時間とともに減少します。制限を超えると一時的なロックアウトが発生します。REST エンドポイントのポーリングではなく、リアルタイムデータには WebSocket サブスクリプションを使用してください。
資産ペアの命名規則
注:Kraken は REST と WebSocket API で異なる命名規則を使用します。REST エンドポイントは通常
XBTUSD のような連結名を使用し、WebSocket チャンネルはスラッシュ区切りの
XBT/USD 形式を使用します。コンポーネントはこの違いを処理しますが、レスポンスを処理する際に念頭に置いてください。
GetAssetPairs を使用してすべての利用可能なペアの正確な名前を確認できます。