OKX API の sgcWebSockets での更新

· 機能
Delphi 向け OKX WebSocket 取引 API 統合

TsgcWSAPI_OKX コンポーネントは、統一された WebSocket インターフェースを通じて OKX 取引所への包括的な Delphi アクセスを提供します。パブリック市場データストリーム、プライベートアカウントチャネル、成行・指値注文を含む直接取引操作をすべて単一コンポーネントでサポートします。このガイドでは、利用可能なすべてのメソッド、設定プロパティ、Delphi から OKX で取引を始めるための実際のコード例を解説します。

目次

WebSocket パブリックチャネル

パブリックチャネルは認証を必要とせず、接続されたすべてのクライアントに市場データをストリーミングします。銘柄・ティッカー・板情報・取引・ローソク足・ファンディングレートなどを対象としています。各 Subscribe メソッドには対応する Unsubscribe メソッドがあります。

市場データチャネル

メソッド 説明
SubscribeInstruments 銘柄の更新(新規上場・上場廃止・ステータス変更)にサブスクライブします。
SubscribeTicker 特定の銘柄のリアルタイムティッカーデータにサブスクライブします。
SubscribeOpenInterest 先物・無期限契約の未建玉更新にサブスクライブします。
SubscribeCandlestick 指定した間隔のローソク足/KLine データにサブスクライブします。
SubscribeTrades 特定の銘柄のリアルタイム取引約定データにサブスクライブします。
SubscribeOrderBook 深度を設定可能な板情報の更新にサブスクライブします。

価格・インデックスチャネル

メソッド 説明
SubscribeEstimatedPrices オプション・先物の推定受渡価格/行使価格にサブスクライブします。
SubscribeMarkPrice 証拠金・損益計算に使用するマーク価格の更新にサブスクライブします。
SubscribeMarkPriceCandlestick マーク価格に基づくローソク足データにサブスクライブします。
SubscribePriceLimit 銘柄の価格制限(価格帯)更新にサブスクライブします。
SubscribeIndexCandlestick 指数価格に基づくローソク足データにサブスクライブします。
SubscribeIndexTicker 指定したインデックスの指数ティッカー更新にサブスクライブします。
SubscribeFundingRate 無期限契約のファンディングレート更新にサブスクライブします。

オプション・システムチャネル

メソッド 説明
SubscribeOptionSummary オプションのサマリーデータ(グリークス・ボラティリティ・未建玉)にサブスクライブします。
SubscribeStatus システムステータスの更新(メンテナンス・障害)にサブスクライブします。
SubscribePublicStructureBlockTrades パブリックストラクチャーブロック取引データにサブスクライブします。
SubscribeBlockTickers ブロック取引ティッカーの更新にサブスクライブします。
注意: 上記のすべての Subscribe メソッドには対応する UnSubscribe メソッド(例:UnSubscribeTicker)があり、そのチャネルの更新受信を停止できます。

WebSocket プライベートチャネル

プライベートチャネルは認証が必要で、アカウント状態・ポジション・注文・アルゴリズム取引アクティビティのリアルタイム更新を提供します。これらのチャネルをサブスクライブする前に OKX.IsPrivate := True を設定し、有効な API 認証情報を提供してください。

アカウント・ポジションチャネル

メソッド 説明
SubscribeAccount 口座残高と資産のリアルタイム更新にサブスクライブします。
SubscribePositions ポジション更新(オープン・クローズ・サイズ変更)にサブスクライブします。
SubscribeBalanceAndPosition 残高とポジションの複合更新を単一ストリームでサブスクライブします。
SubscribePositionRisk ポジションリスク警告の更新(清算近接状態)にサブスクライブします。
SubscribeAccountGreeks オプションポジションのアカウントレベルのグリークス更新にサブスクライブします。

注文・アルゴチャネル

メソッド 説明
SubscribeOrders 注文ステータスの更新(発注・約定・キャンセル・部分約定)にサブスクライブします。
SubscribeOrdersAlgo アルゴリズム注文の更新(トリガー・利確ストップロス・トレイリングストップ)にサブスクライブします。
SubscribeAdvanceAlgo 高度なアルゴリズム注文の更新(アイスバーグ・TWAP)にサブスクライブします。

RFQ・ブロック取引チャネル

メソッド 説明
SubscribeRfqs ブロック取引の見積もりリクエスト(RFQ)更新にサブスクライブします。
SubscribeQuotes RFQ への回答として届くクォート更新にサブスクライブします。
SubscribePrivateStructureBlockTrades プライベートストラクチャーブロック取引の更新にサブスクライブします。

グリッド取引チャネル

メソッド 説明
SubscribeSpotGridAlgoOrders Spot グリッドアルゴ注文の更新にサブスクライブします。
SubscribeContactGridAlgoOrders 契約グリッドアルゴ注文の更新にサブスクライブします。
SubscribeGridPositions グリッド取引ポジションの更新にサブスクライブします。
SubscribeGridSubOrders グリッド戦略内の個々のサブ注文の更新にサブスクライブします。

WebSocket 取引操作

OKX は WebSocket 接続を通じて直接注文の発注・管理をサポートしており、REST API 呼び出しと比べてレイテンシーが低くなります。これらのメソッドは認証が必要です。

メソッド 説明
PlaceOrder すべての注文パラメーターを完全に制御して新規注文を発注します。
PlaceMarketOrder 利用可能な最良価格で即時約定する成行注文を発注します。
PlaceLimitOrder 市場が指定価格に達したときのみ約定する指値注文を発注します。
CancelOrder 注文 ID で既存の注文をキャンセルします。
AmendOrder 既存の注文を修正します(キャンセル・再発注なしで価格またはサイズを変更)。
注意: WebSocket ベースの取引は REST ベースの注文発注よりも大幅に低レイテンシーです。OKX は WebSocket 注文を優先的に処理するため、レイテンシーが重要な戦略に推奨される方法です。

コード例

以下の例では、TsgcWSAPI_OKX コンポーネントの作成・設定、API 認証、ティッカーデータのサブスクライブ、注文の監視、WebSocket 接続を通じた成行・指値注文の発注方法を示します。

var
  oClient: TsgcWebSocketClient;
  oOKX: TsgcWSAPI_OKX;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  oOKX := TsgcWSAPI_OKX.Create(nil);
  oOKX.Client := oClient;
  // Configure API credentials
  oOKX.OKX.ApiKey := 'your_api_key';
  oOKX.OKX.ApiSecret := 'your_api_secret';
  oOKX.OKX.Passphrase := 'your_passphrase';
  oOKX.OKX.IsPrivate := True;
  // Connect to OKX
  oClient.Active := True;
  // Subscribe to BTC-USDT ticker
  oOKX.SubscribeTicker('BTC-USDT');
  // Subscribe to order updates for spot trading
  oOKX.SubscribeOrders(okxitSpot);
  // Place a market buy order
  oOKX.PlaceMarketOrder(okxosBuy, 'BTC-USDT', 0.001);
  // Place a limit buy order
  oOKX.PlaceLimitOrder(okxosBuy, 'BTC-USDT', 0.001, 30000);
end;

WebSocket イベントの処理

受信 WebSocket メッセージを処理するためにイベントハンドラーを割り当てます。イベントは各更新のチャネル名と JSON ペイロードを提供します。

procedure TForm1.OnOKXEvent(Sender: TObject;
  const aChannel, aData: string);
begin
  // aChannel identifies the subscription (e.g., 'tickers', 'orders')
  // aData contains the JSON payload
  Memo1.Lines.Add(aChannel + ': ' + aData);
end;

デモ取引モードの使用

OKX はテスト用のデモ取引環境を提供しています。接続前に OKX.IsDemo := True を設定することで有効化できます。デモモードはシミュレートされた残高を持つ別のエンドポイントに接続し、実際の資金リスクなしに取引ロジックをテストできます。

// Enable demo trading mode
oOKX.OKX.IsDemo := True;
oOKX.OKX.IsPrivate := True;
oClient.Active := True;

設定とメモ

設定プロパティ

すべての設定はコンポーネントの OKX プロパティからアクセスします。

プロパティ 説明
OKX.ApiKey String OKX の API キーです。OKX API 管理ページから生成してください。
OKX.ApiSecret String OKX の API シークレットです。この値は安全に保管し、クライアント側のコードに公開しないでください。
OKX.Passphrase String API キー作成時に設定したパスフレーズです。認証が必要なすべてのリクエストに必要です。
OKX.IsDemo Boolean True に設定すると、シミュレートされた資金を使用した OKX デモ取引環境に接続します。デフォルトは False です。
OKX.IsPrivate Boolean True に設定すると、WebSocket 接続で認証を有効化します。プライベートチャネルおよび取引操作に必要です。デフォルトは False です。

重要なメモ

セキュリティ: API キー・シークレット・パスフレーズを本番コードに直接ハードコードしないでください。認証情報の保存には安全な設定ファイルまたは環境変数を使用してください。