Kraken API の sgcWebSockets 更新

· 機能
Kraken スポット・先物 API の Delphi 統合

Kraken は最も長い歴史を持つ信頼性の高い暗号通貨取引所の一つで、スポット市場と先物市場の両方を提供しています。Delphi 向けの TsgcWSAPI_KrakenTsgcWSAPI_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_FuturesREST_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 を使用してすべての利用可能なペアの正確な名前を確認できます。