API OKX

OKX

 

지원되는 API

 

Properties

WebSocket 채널은 두 가지 범주로 나뉩니다: public 및 private 채널.

 

 

OKX 속성에서 다음 속성을 구성할 수 있습니다.

 

 

연결

클라이언트가 OKX 서버에 성공적으로 연결되면 OnOKXConnect 이벤트가 발생합니다. 연결을 시도하는 동안 오류가 발생하면 OnOKXError 이벤트가 오류 세부 정보와 함께 발생합니다.

OnOKXConnect 이벤트가 발생한 후, OKX servers로 메시지를 보내고 받기 시작할 수 있습니다.

 


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;

Public Channels

websocket 피드는 주문 및 거래에 대한 실시간 시장 데이터 업데이트를 제공합니다. websocket 피드에는 ticker, trades 등과 같은 일부 public 채널이 있습니다...

 

다음 Public 채널을 구독할 수 있습니다:

 

메서드 설명
SubscribeInstruments 전체 상품 목록이 구독 후 처음으로 푸시됩니다. 이후 상품 상태에 변경 사항이 있는 경우(예: FUTURES 인도, OPTION 행사, 신규 계약/거래 쌍 상장, 거래 정지 등) 상품이 푸시됩니다.
SubscribeTicker instrument의 최근 거래 가격, bid 가격, ask 가격 및 24시간 거래량을 검색합니다. 데이터는 100ms마다 푸시됩니다.
SubscribeOpenInterest 미결제 약정을 검색합니다. 데이터는 3초마다 푸시됩니다.
SubscribeCandlestick 상품의 캔들스틱 데이터를 검색합니다. 푸시 빈도는 가장 빠른 간격인 500ms로 데이터를 푸시합니다.
SubscribeTrades 최근 거래 데이터를 검색합니다. 거래가 있을 때마다 데이터가 푸시됩니다.
SubscribeEstimatedPrices

FUTURES 계약 및 OPTION의 예상 인도/행사 가격을 검색합니다.

예상 인도/행사 가격만 인도/행사 1시간 전에 푸시되며, 가격 변경이 있는 경우 푸시됩니다.

SubscribeMarkPrice mark price를 검색합니다. 데이터는 mark price가 변경될 때 200 ms마다 푸시되고, mark price가 변경되지 않을 때 10초마다 푸시됩니다.
SubscribeMarkPriceCandlestick mark price의 캔들스틱 데이터를 검색합니다. 데이터는 500 ms마다 푸시됩니다.
SubscribePriceLimit instrument의 최대 매수 가격과 최소 매도 가격을 검색합니다. 데이터는 limit에 변경이 있을 때 5초마다 푸시되며, limit에 변경이 없을 때는 푸시되지 않습니다.
SubscribeOrderBook

order book 데이터를 검색합니다.

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 인덱스의 캔들스틱 데이터를 검색합니다. 데이터는 500ms마다 푸시됩니다.
SubscribeIndexTicker index ticker 데이터를 검색합니다
SubscribeStatus 시스템 유지 보수 상태를 가져오고 시스템 유지 보수 상태가 변경될 때 푸시합니다. 첫 구독: "최신 변경 데이터 푸시"; 상태 변경이 있을 때마다 변경된 내용을 푸시
SubscribePublicStructureBlockTrades 블록 거래가 있을 때마다 데이터가 푸시됩니다.
SubscribeBlockTickers 지난 24시간 동안의 최신 블록 거래량을 검색합니다. 데이터는 거래 실행 이벤트에 의해 트리거될 때 푸시됩니다. 또한 구독 단위에 따라 5분 간격으로도 푸시됩니다.
SubscribeAllTrades 모든 거래 데이터를 검색합니다. 거래가 있을 때마다 데이터가 푸시됩니다.
SubscribeLiquidationOrders 청산 주문을 검색합니다. 청산 주문이 있을 때 데이터가 푸시됩니다.
SubscribeADLWarning ADL 경고 데이터를 검색합니다. 자동 디레버리징 위험이 증가하면 데이터가 푸시됩니다.
SubscribeEconomicCalendar 경제 캘린더 이벤트를 검색합니다. 경제 이벤트에 업데이트가 있을 때 데이터가 푸시됩니다.
SubscribePublicBlockTrades public block trades를 검색합니다. block trade가 있을 때마다 데이터가 푸시됩니다.
SubscribeOptionTrades 옵션 거래 데이터를 검색합니다. 옵션 거래가 있을 때마다 데이터가 푸시됩니다.
SubscribeCallAuctionDetails call auction 세부 정보를 검색합니다. call auction 정보에 업데이트가 있으면 데이터가 푸시됩니다.

 


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;

Private 채널

account 채널, order 채널, position 채널 등을 포함하며 로그인이 필요합니다.

 

다음 Private 채널을 구독할 수 있습니다:

 

메서드 설명
SubscribeAccount 계정 정보를 검색합니다. 주문 등록, 주문 취소, 거래 실행 등의 이벤트에 의해 트리거될 때 데이터가 푸시됩니다. 또한 구독 세분성에 따라 정기적인 간격으로 푸시됩니다.
SubscribePositions 포지션 정보를 검색합니다. 구독 단위에 따라 초기 스냅샷이 푸시됩니다. 주문 넣기/취소와 같은 이벤트에 의해 트리거될 때 데이터가 푸시되며, 구독 단위에 따라 정기적인 간격으로도 푸시됩니다.
SubscribeBalanceAndPosition 계정 잔액과 포지션 정보를 검색합니다. 체결된 주문, 펀딩 이체와 같은 이벤트에 의해 트리거될 때 데이터가 푸시됩니다.
SubscribeOrders 주문 정보를 검색합니다. 처음 구독할 때는 데이터가 푸시되지 않습니다. 주문 배치/취소와 같은 이벤트에 의해 트리거될 때만 데이터가 푸시됩니다.
SubscribeOrdersAlgo algo 주문(trigger 주문, oco 주문, conditional 주문 포함)을 검색합니다. 데이터는 처음 구독할 때 푸시되지 않습니다. 데이터는 주문 배치/취소와 같은 이벤트에 의해 트리거될 때만 푸시됩니다.
SubscribeAdvanceAlgo

고급 algo 주문(Iceberg 주문, TWAP 주문, Trailing 주문 포함)을 검색합니다. 처음 구독 시 데이터가 푸시됩니다. 주문 넣기/취소와 같은 이벤트로 트리거될 때 데이터가 푸시됩니다.

SubscribePositionRisk 이 푸시 채널은 위험 경고로만 사용되며, 전략적 거래를 위한 위험 판단으로 권장되지 않습니다
시장이 격렬하게 움직이지 않는 경우, 이 메시지가 푸시되는 동시에 포지션이 청산되었을 가능성이 있습니다.
SubscribeAccountGreeks 계정 greeks 정보를 검색합니다. 데이터는 계정의 포지션 증가/감소 또는 현금 잔액과 같은 이벤트에 의해 트리거될 때 푸시되며, 구독 세분성에 따라 정기적인 간격으로도 푸시됩니다.
SubscribeRfqs Rfq를 검색합니다.
SubscribeQuotes

Quotes를 검색합니다.

SubscribePrivateStructureBlockTrades 구조화된 블록 거래를 검색합니다.
SubscribeSpotGridAlgoOrders spot grid algo 주문을 검색합니다. 처음 구독할 때 데이터가 푸시됩니다. 주문 배치/취소와 같은 이벤트에 의해 트리거될 때 데이터가 푸시됩니다.
SubscribeContactGridAlgoOrders 계약 grid algo 주문을 검색합니다. 데이터는 처음 구독할 때 푸시됩니다. 데이터는 주문 배치/취소와 같은 이벤트에 의해 트리거될 때 푸시됩니다.
SubscribeGridPositions grid 포지션을 검색합니다. 데이터는 처음 구독할 때 푸시됩니다. 데이터는 주문 배치/취소와 같은 이벤트에 의해 트리거될 때 푸시됩니다.
SubscribeGridSubOrders grid 하위 주문을 검색합니다. 데이터는 처음 구독할 때 푸시됩니다. 데이터는 주문 배치와 같은 이벤트에 의해 트리거될 때 푸시됩니다.
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 Trade는 Authentication을 요구합니다.

 

충분한 자금이 있는 경우에만 주문할 수 있습니다. 아래에서 요청 매개변수가 있는 표를 확인하십시오:

 

매개변수 Type 필수 설명
id String Yes 메시지의 고유 식별자입니다
클라이언트가 제공합니다. 해당 요청을 식별하기 위해 응답 메시지에서 반환됩니다.
대소문자를 구분하는 영숫자, 모두 숫자 또는 모두 문자로 최대 32자까지의 조합입니다.
> instId String Yes Instrument ID, 예: BTC-USD-190927-5000-C
> tdMode String Yes Trade mode
Margin mode isolated cross
Non-Margin mode cash
> ccy String No 마진 통화
Single-currency margin cross MARGIN 주문에만 적용됩니다.
> clOrdId String No 클라이언트가 제공한 주문 ID
대소문자를 구분하는 영숫자, 모두 숫자 또는 모두 문자의 조합으로 최대 32자.
> tag String No 주문 태그
대소문자를 구분하는 영숫자, 모두 숫자 또는 모두 문자의 조합으로 최대 16자.
> side String Yes Order side, buy sell
> posSide String 선택적 Position side
기본값은 net 모드에서 net 입니다
long/short 모드에서는 필수이며, long 또는 short만 될 수 있습니다.
FUTURES/SWAP 에만 적용됩니다.
> ordType String Yes 주문 유형
market: market order
limit: limit order
post_only: Post-only order
fok: Fill-or-kill order
ioc: Immediate-or-cancel order
optimal_limit_ioc :immediate-or-cancel order가 있는 Market order
> sz String Yes 매수 또는 매도할 수량입니다.
> px String 선택적 Price
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: Base currency ,quote_ccy: Quote currency
Market 주문으로 거래되는 SPOT 에만 적용됩니다
기본값은 매수의 경우 quote_ccy, 매도의 경우 base_ccy 입니다
> banAmend Boolean No 현물 주문 수정을 금지할지 여부입니다(true 또는 false, 기본값은 false).
banAmend가 true일 때 잔액이 충분하지 않으면 주문 발주에 실패합니다. SPOT 시장가 주문에만 적용됩니다.

 

 

주문 발주 예제

 

충분한 자금이 있는 경우에만 주문할 수 있습니다.


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

 

Amend Order

 

미완료 주문을 수정합니다.


TsgcWSAPI_OKX1.AmendOrder('ETH-BTC', '457589362405027840', '', 2);

Batch Trade Operations

WebSocket Trade API는 또한 여러 주문을 한 번에 발주, 취소 및 수정하는 배치 작업을 지원합니다. 이러한 작업에는 Authentication이 필요합니다.

메서드 설명
BatchPlaceOrders 단일 요청으로 여러 주문을 실행합니다. 한 번에 최대 20개의 주문을 실행할 수 있습니다.
BatchCancelOrders 단일 요청으로 여러 주문을 취소합니다. 한 번에 최대 20개의 주문을 취소할 수 있습니다.
BatchAmendOrders 단일 요청으로 여러 개의 미완료 주문을 수정합니다. 한 번에 최대 20개의 주문을 수정할 수 있습니다.
MassCancelOrders 특정 상품 유형에 대한 모든 대기 중인 주문을 일괄 취소합니다.