WebSocket チャンネルはパブリックとプライベートの 2 つのカテゴリに分けられます。
OKX プロパティで以下のプロパティを設定できます。
クライアントが OKX サーバーへの接続に成功すると、OnOKXConnect イベントが発火します。接続中にエラーが発生すると、OnOKXError イベントがエラーの詳細とともに発火します。
OnOKXConnect イベントが発生した後、OKXサーバーからのメッセージの送信および受信を開始できます。
oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
DoLog('#OKX Connected');
end;
procedure OnOKXError(Sender: TObject; aCode, aMessage, aRawMessage: string);
begin
DoLog('#error: ' + aMessage);
end;
WebSocket フィードはオーダーと取引のリアルタイムマーケットデータ更新を提供します。WebSocket フィードにはティッカー、取引などのパブリックチャンネルがあります。
次のPublic channelsにサブスクライブできます:
| メソッド | 説明 |
| SubscribeInstruments | 全インストゥルメントリストはサブスクリプション後に初回プッシュされます。その後、インストゥルメントの状態に変化(FUTURES の配信、OPTION の行使、新規コントラクト/取引ペアの上場、取引停止など)があった場合にプッシュされます。 |
| SubscribeTicker | 商品の直近取引価格、bid価格、ask価格、24時間取引高を取得します。データは100msごとにプッシュされます。 |
| SubscribeOpenInterest | オープンインタレストを取得します。データは 3 秒ごとにプッシュされます。 |
| SubscribeCandlestick | 銘柄のローソク足データを取得します。プッシュ頻度は最速インターバルの 500ms でデータをプッシュします。 |
| SubscribeTrades | 直近の約定データを取得します。約定が発生するたびにデータがプッシュされます。 |
| SubscribeEstimatedPrices |
FUTURES契約およびOPTIONの推定受渡し/権利行使価格を取得します。 推定配信/行使価格は、配信/行使の 1 時間前にプッシュされ、価格変動があった場合にプッシュされます。 |
| SubscribeMarkPrice | マーク価格を取得します。データは、マーク価格が変化すると200ミリ秒ごとにプッシュされ、マーク価格が変化しない場合は10秒ごとにプッシュされます。 |
| SubscribeMarkPriceCandlestick | マーク価格のローソク足データを取得します。データは 500 ms ごとにプッシュされます。 |
| SubscribePriceLimit | 銘柄の最大買い価格と最小売り価格を取得します。制限に変更がある場合は 5 秒ごとにデータがプッシュされ、制限に変更がない場合はプッシュされません。 |
| SubscribeOrderBook |
注文板データを取得します。 400 深さレベルには books を、5 深さレベルには book5 を、ティックバイティック 1 深さレベルには bbo-tbt を、ティックバイティック 50 深さレベルには books50-l2-tbt を、ティックバイティック 400 深さレベルには books-l2-tbt を使用します。
|
| SubscribeOptionSummary | すべての OPTION 契約の詳細な価格情報を取得します。データは一度にプッシュされます。 |
| SubscribeFundingRate | ファンディングレートを取得します。データは30秒から90秒でプッシュされます。 |
| SubscribeIndexCandlestick | インデックスのローソク足データを取得します。データは 500 ms ごとにプッシュされます。 |
| SubscribeIndexTicker | インデックス Ticker データを取得します |
| SubscribeStatus | システムメンテナンスのステータスを取得し、システムメンテナンスのステータスが変化したときにプッシュします。最初のサブスクリプション時: 「最新の変更データをプッシュ」。状態が変化するたびに変更されたコンテンツをプッシュします。 |
| SubscribePublicStructureBlockTrades | ブロックトレードが発生したときにデータがプッシュされます。 |
| SubscribeBlockTickers | 過去 24 時間の最新のブロック取引量を取得します。データはトランザクション実行イベントによってトリガーされたときにプッシュされます。また、サブスクリプションの粒度に応じて 5 分間隔でもプッシュされます。 |
| SubscribeAllTrades | すべての取引データを取得します。取引が発生するたびにデータがプッシュされます。 |
| SubscribeLiquidationOrders | 強制清算注文を取得します。強制清算注文が発生するとデータがプッシュされます。 |
| SubscribeADLWarning | ADL警告データを取得します。自動デレバレッジリスクが増加するとデータがプッシュされます。 |
| SubscribeEconomicCalendar | 経済カレンダーイベントを取得します。経済イベントの更新があるとデータがプッシュされます。 |
| SubscribePublicBlockTrades | パブリックなブロックトレードを取得します。ブロックトレードがあるたびにデータがプッシュされます。 |
| SubscribeOptionTrades | オプション取引データを取得します。オプション取引が発生するたびにデータがプッシュされます。 |
| SubscribeCallAuctionDetails | コールオークションの詳細を取得します。コールオークション情報の更新があると、データがプッシュされます。 |
oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
oOKX.SubscribeInstruments(okxitFutures);
end;
アカウントチャンネル、注文チャンネル、ポジションチャンネルなど、ログインが必要です。
以下のプライベートチャンネルにサブスクライブできます:
| メソッド | 説明 |
| SubscribeAccount | アカウント情報を取得します。注文の発注、キャンセル、取引執行などのイベントによってトリガーされるとデータがプッシュされます。また、サブスクリプションの粒度に応じた定期的な間隔でもプッシュされます。 |
| SubscribePositions | ポジション情報を取得します。初期スナップショットはサブスクリプションの粒度に応じてプッシュされます。注文の発注/キャンセルなどのイベントによってトリガーされたときにデータがプッシュされ、サブスクリプションの粒度に応じて定期的にもプッシュされます。 |
| SubscribeBalanceAndPosition | アカウント残高とポジション情報を取得します。約定や資金移動などのイベントによってトリガーされたときにデータがプッシュされます。 |
| SubscribeOrders | 注文情報を取得します。最初のサブスクライブ時にはデータはプッシュされません。注文の発注/キャンセルなどのイベントによってトリガーされた場合にのみデータがプッシュされます。 |
| SubscribeOrdersAlgo | アルゴオーダーを取得します(トリガーオーダー、OCOオーダー、条件付きオーダーを含む)。最初にサブスクライブしたときにデータはプッシュされません。注文の発注/キャンセルなどのイベントによってトリガーされた場合にのみデータがプッシュされます。 |
| SubscribeAdvanceAlgo |
高度なアルゴ注文(氷山注文、TWAP 注文、トレーリング注文を含む)を取得します。最初のサブスクライブ時にデータがプッシュされます。注文の発注/キャンセルなどのイベントによってトリガーされたときにデータがプッシュされます。 |
| SubscribePositionRisk | このプッシュチャンネルはリスクの警告としてのみ使用され、戦略的取引のリスク判断として推奨されません。 市場が激しく動いていない場合、このメッセージがプッシュされると同時にポジションが清算される可能性があります。 |
| SubscribeAccountGreeks | アカウントのギリシャ文字情報を取得します。ポジションの増減やアカウントの現金残高などのイベントによってトリガーされたときにデータがプッシュされ、サブスクリプションの粒度に応じて定期的にもプッシュされます。 |
| SubscribeRfqs | Rfqsを取得します。 |
| SubscribeQuotes |
クォートを取得します。 |
| SubscribePrivateStructureBlockTrades | 構造化ブロックトレードを取得します。 |
| SubscribeSpotGridAlgoOrders | スポットグリッドのアルゴリズム注文を取得します。最初にサブスクライブしたときにデータがプッシュされます。注文の発注/キャンセルなどのイベントによってトリガーされたときにデータがプッシュされます。 |
| SubscribeContactGridAlgoOrders | コントラクトグリッドアルゴ注文を取得します。最初にサブスクライブしたときにデータがプッシュされます。注文の発注/キャンセルなどのイベントによってトリガーされたときにデータがプッシュされます。 |
| SubscribeGridPositions | グリッドポジションを取得します。最初にサブスクライブしたときにデータがプッシュされます。注文の発注/キャンセルなどのイベントによってトリガーされた場合にもデータがプッシュされます。 |
| SubscribeGridSubOrders | グリッドサブオーダーを取得します。最初にサブスクライブしたときにデータがプッシュされます。注文の発注などのイベントによってトリガーされた場合にもデータがプッシュされます。 |
| SubscribeFills | 約定済み注文データを取得します。注文が約定するとデータがプッシュされます。 |
| SubscribeDepositInfo | 入金情報を取得します。入金ステータスが更新されるとデータがプッシュされます。 |
| SubscribeWithdrawalInfo | 出金情報を取得します。出金ステータスが更新されるとデータがプッシュされます。 |
oClient := TsgcWebSocketClient.Create(nil);
oOKX := TsgcWSAPI_OKX.Create(nil);
oOKX.Client := oClient;
oOKX.OKX.ApiKey := 'alsdjk23kandfnasbdfdkjhsdf';
oOKX.OKX.ApiSecret := 'aldskjfk3jkadknfajndsjfj23j';
oOKX.OKX.Passphrase := 'secret_passphrase';
oClient.Active := True;
procedure OnOKXConnect(Sender: TObject; aMessage, aCode, aRawMessage: string);
begin
oOKX.SubscribeOrders(okxitFutures, 'BTC-USD', 'BTC-USD-200329');
end;
WebSocket 取引には認証が必要です。
注文を行うには、十分な資金が必要です。以下にリクエストパラメータの表を示します:
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| id | String | Yes | メッセージの一意識別子 クライアントが提供します。対応するリクエストを識別するためにレスポンスメッセージで返されます。 最大 32 文字の大文字小文字を区別する英数字、すべての数字、またはすべての文字の組み合わせ。 |
| > instId | String | Yes | インストルメントID。例 BTC-USD-190927-5000-C |
| > tdMode | String | Yes | 取引モード マージンモード isolated cross非マージンモード cash |
| > ccy | String | No | 証拠金通貨Single-currency margin でのcross MARGIN 注文にのみ適用されます。 |
| > clOrdId | String | No | クライアント指定の注文 ID 大文字・小文字を区別する英数字の組み合わせ、数字のみ、または文字のみで最大 32 文字。 |
| > タグ | String | No | 注文タグ 大文字と小文字を区別した英数字の組み合わせ、すべて数字、またはすべて文字で最大 16 文字。 |
| > サイド | String | Yes | 注文側、 buy sell |
| > posSide | String | オプション | ポジションサイド デフォルトは net モードでは net ですlong/short モードでは必須であり、 long または shortのみが指定できます。FUTURES/SWAPにのみ適用されます。 |
| > ordType | String | Yes | 注文タイプmarket: 成行注文limit: 指値注文post_only: Post-only注文fok: Fill-or-kill注文ioc: Immediate-or-cancel注文optimal_limit_ioc :Immediate-or-cancelを伴う成行注文
|
| > sz | String | Yes | 購入または販売する数量。 |
| > px | String | オプション | 価格limit,post_only,fok,ioc 注文にのみ適用されます。 |
| > reduceOnly | Boolean | No | ポジションのみを縮小するかどうか。 true false。デフォルトは false。MARGIN 注文、および net モードの FUTURES/SWAP 注文にのみ適用Single-currency margin および Multi-currency marginにのみ適用 |
| > tgtCcy | String | No | 数量タイプbase_ccy: 基軸通貨、quote_ccy: 決済通貨Market注文で取引される SPOT にのみ適用されますデフォルトは買いの場合 quote_ccy 、売りの場合 base_ccy
|
| > banAmend | Boolean | No | スポット注文の修正をBANするかどうか、trueまたはfalse、デフォルトはfalseです。 banAmendがtrueの場合、残高が不足していると注文の発注に失敗します。SPOTのmarket orderにのみ適用されます |
注文発注の例
注文は十分な資金がある場合にのみ行えます。
// Place Martket Order
TsgcWSAPI_OKX1.PlaceMarketOrder(okxosBuy, 'ETH-BTC', 1);
// Place Limit Order
TsgcWSAPI_OKX1.PlaceLimitOrder(okxosBuy, 'ETH-BTC', 1, 0.25);
注文キャンセルの使用例
未完了の注文をキャンセルします。
TsgcWSAPI_OKX1.CancelOrder('ETH-BTC', '457589362405027840');
注文の修正
未完了の注文を変更します。
TsgcWSAPI_OKX1.AmendOrder('ETH-BTC', '457589362405027840', '', 2);
WebSocket Trade API は、複数の注文を一度に発注、キャンセル、修正するためのバッチ操作もサポートしています。これらの操作には認証が必要です。
| メソッド | 説明 |
| BatchPlaceOrders | 1回のリクエストで複数の注文を発注します。一度に最大 20 件の注文を発注できます。 |
| BatchCancelOrders | 1回のリクエストで複数の注文をキャンセルします。一度にキャンセルできる注文の最大数は20件です。 |
| BatchAmendOrders | 1回のリクエストで複数の未完了注文を修正します。一度に最大20件まで修正できます。 |
| MassCancelOrders | 特定のインストゥルメントタイプのすべての保留中の注文を一括キャンセルします。 |