CEX API Update sgcWebSockets

· 機能
Delphi 向け CEX.IO WebSocket API 統合

CEX.IO はリアルタイム市場データとトレーディング機能を WebSocket API で提供する実績ある暗号通貨取引所です。TsgcWSAPI_Cex コンポーネントは CEX.IO への接続のためのネイティブ Delphi インターフェースを提供し、開発者がライブティッカー更新のサブスクライブ・注文板の管理・注文の発注とキャンセル・口座ポジションの管理を永続的な WebSocket 接続で行えます。

目次

概要

CEX.IO WebSocket API は 2 つのカテゴリの機能を提供します:認証なしで市場データをストリーミングするパブリックチャンネルと、トレーディングと口座管理のために API キー認証が必要なプライベートメソッドTsgcWSAPI_Cex コンポーネントは両カテゴリをラップし、ライブ価格フィードから注文実行まですべてを処理する単一の Delphi コンポーネントを提供します。

はじめに

CEX.IO に接続するには、フォームに TsgcWebSocketClientTsgcWSAPI_Cex コンポーネントをドロップするか、コードで作成します。クライアントを API コンポーネントに割り当て、認証情報を設定して接続をアクティブにします。

oClient := TsgcWebSocketClient.Create(nil);
oCex := TsgcWSAPI_Cex.Create(nil);
oCex.Client := oClient;
oCex.Cex.ApiKey := 'your_api_key';
oCex.Cex.ApiSecret := 'your_api_secret';
oClient.Active := True;
注意:ティッカーサブスクリプションなどのパブリックメソッドは API 認証情報を必要としません。注文の発注や残高確認などのプライベート(認証済み)メソッドを使用する場合にのみ ApiKeyApiSecret を設定する必要があります。

パブリック WebSocket メソッド

パブリックメソッドを使用すると認証なしでリアルタイム市場データを受信できます。ダッシュボード・チャートツール・価格アラートシステムの構築に最適です。

メソッド 説明
SubscribeTickers 通貨ペア(例:BTC/USD)のリアルタイムティッカー更新にサブスクライブします。
SubscribeChart 指定した取引ペアのチャート/ローソク足データにサブスクライブします。
SubscribePair 特定の取引ペアの更新にサブスクライブします。
UnSubscribePair 以前にサブスクライブした取引ペアからアンサブスクライブします。
SubscribeOrderBook ペアの注文板スナップショットとインクリメンタル更新にサブスクライブします。
UnSubscribeOrderBook 注文板更新からアンサブスクライブします。

ティッカーへのサブスクライブ

SubscribeTickers メソッドは通貨ペアの価格データのライブストリームを開きます。最初のパラメーターはベース通貨、2 番目はクォート通貨です。

// Subscribe to BTC/USD ticker updates
oCex.SubscribeTickers('BTC', 'USD');

注文板の操作

注文板サブスクリプションは初期スナップショットとその後のインクリメンタル更新の両方を提供します。データの受信を開始するには SubscribeOrderBook、不要になったら UnSubscribeOrderBook を使用します。

// Subscribe to the BTC/USD order book
oCex.SubscribeOrderBook('BTC', 'USD');
// Later, unsubscribe when no longer needed
oCex.UnSubscribeOrderBook('BTC', 'USD');

プライベート WebSocket メソッド(認証済み)

プライベートメソッドは CEX.IO API キーとシークレットによる認証が必要です。コンポーネントは認証ハンドシェイクを自動的に処理しますが、プライベートメソッドを呼び出す前に Authenticate を呼び出す必要があります。

メソッド 説明
Authenticate API キーとシークレットを使用して WebSocket セッションを認証します。
GetTicker 特定の通貨ペアの現在のティッカーを取得します。
GetBalance すべての通貨の口座残高を取得します。
Ping WebSocket 接続を維持するためのキープアライブ Ping を送信します。
GetOpenOrders 口座のすべての現在のオープン注文を取得します。
PlaceOrder 指定した金額と価格で新しい買いまたは売り注文を発注します。
CancelReplaceOrder 既存の注文をキャンセルし、アトミックに新しい注文に置き換えます。
GetOrderRequest 識別子で特定の注文の詳細を取得します。
CancelOrderRequest 識別子で特定の注文をキャンセルします。
GetArchivedOrders 履歴(完了/キャンセル済み)注文を取得します。
OpenPosition 新しい信用取引ポジションを開きます。
GetPosition 特定のオープンポジションの詳細を取得します。
GetOpenPositions 現在のすべてのオープン信用取引ポジションを取得します。
ClosePosition 既存の信用取引ポジションをクローズします。

コード例

以下の例は完全なワークフローを示しています:CEX.IO への接続・ティッカーへのサブスクライブ・買い注文の発注・口座残高の取得。

oClient := TsgcWebSocketClient.Create(nil);
oCex := TsgcWSAPI_Cex.Create(nil);
oCex.Client := oClient;
oCex.Cex.ApiKey := 'your_api_key';
oCex.Cex.ApiSecret := 'your_api_secret';
oClient.Active := True;
// Subscribe to ticker
oCex.SubscribeTickers('BTC', 'USD');
// Place an order
oCex.PlaceOrder('BTC', 'USD', 0.01, 30000, ctBuy);
// Get balance
oCex.GetBalance;

注文の発注

PlaceOrder メソッドはベース通貨・クォート通貨・金額・価格・注文タイプを受け取ります。注文タイプパラメーターは ctBuy または ctSell の列挙型値を使用します。

// Place a buy order: 0.01 BTC at $30,000
oCex.PlaceOrder('BTC', 'USD', 0.01, 30000, ctBuy);
// Place a sell order: 0.05 ETH at $2,000
oCex.PlaceOrder('ETH', 'USD', 0.05, 2000, ctSell);

ポジションの管理

CEX.IO はポジション管理メソッドを通じた信用取引をサポートしています。WebSocket 接続を通じてポジションを直接開く・照会する・クローズできます。

// Retrieve all open positions
oCex.GetOpenPositions;
// Close a specific position by ID
oCex.ClosePosition(positionId);

イベントとコールバック

TsgcWSAPI_Cex コンポーネントは取引所からデータを受信すると イベントを発生させます。ティッカー更新・注文確認・残高情報などの受信メッセージを処理するハンドラーを割り当てます。

イベント 発生タイミング
OnCexMessage CEX.IO WebSocket サーバーからメッセージを受信したとき。
OnCexConnect CEX.IO への WebSocket 接続が確立されたとき。
OnCexDisconnect WebSocket 接続がクローズされたとき。
OnCexError 取引所からエラーレスポンスを受信したとき。

設定と注意事項

API 認証情報

CEX.IO のアカウント設定から API キーとシークレットを取得します。認証情報を安全に保存し、本番コードにハードコードしないでください。暗号化された設定ファイルや環境変数から読み込むことを検討してください。

接続管理

WebSocket 接続は TsgcWebSocketClient コンポーネントで管理されます。接続するには Active := True、切断するには Active := False を設定します。クライアントの再接続プロパティで設定した場合、コンポーネントは自動再接続をサポートします。

認証フロー

プライベートメソッドを呼び出す前に認証を完了する必要があります。接続確立後に Authenticate を呼び出すか、OnCexConnect イベント内で処理します。コンポーネントは API キーとシークレットから必要な HMAC 署名を自動的に生成します。

キープアライブ

認証済みセッションを維持するために定期的に Ping メソッドを使用してください。CEX.IO はタイムアウト後にアイドルセッションを切断する場合があります。

ヒント:複数のペアをサブスクライブする場合、各サブスクリプションは独立しています。BTC/USD・ETH/USD などのペアを同一接続で同時にサブスクライブできます。