API OKX

OKX

 

サポートされている API

 

プロパティ

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 を使用します。

  • books: 最初の完全スナップショットで 400 深度レベルがプッシュされます。オーダーブックに変更がある場合、増分データは 100 ms ごとにプッシュされます。
  • books5: 毎回 5 深度レベルがプッシュされます。オーダーブックに変更がある場合、データは 100 ms ごとにプッシュされます。
  • bbo-tbt: 毎回 1 深度レベルがプッシュされます。オーダーブックに変更がある場合、データは 10 ms ごとにプッシュされます。
  • books-l2-tbt: 最初の完全スナップショットで 400 深度レベルがプッシュされます。オーダーブックに変更がある場合、増分データは 10 ms ごとにプッシュされます。
  • books50-l2-tbt: 最初の完全スナップショットで 50 深度レベルがプッシュされます。オーダーブックに変更がある場合、増分データは 10 ms ごとにプッシュされます。asks または bids が空の配列の場合、50 深度ではなく 400 深度に変更があることを意味します。オーダーブックデータをローカルで維持している場合は、空の asks および bids を無視してください。
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;

 

Trading

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);

Batch Trade Operations

WebSocket Trade API は、複数の注文を一度に発注、キャンセル、修正するためのバッチ操作もサポートしています。これらの操作には認証が必要です。

メソッド 説明
BatchPlaceOrders 1回のリクエストで複数の注文を発注します。一度に最大 20 件の注文を発注できます。
BatchCancelOrders 1回のリクエストで複数の注文をキャンセルします。一度にキャンセルできる注文の最大数は20件です。
BatchAmendOrders 1回のリクエストで複数の未完了注文を修正します。一度に最大20件まで修正できます。
MassCancelOrders 特定のインストゥルメントタイプのすべての保留中の注文を一括キャンセルします。