OKX API 업데이트 sgcWebSockets

· 기능
Delphi에서 OKX WebSocket 트레이딩 API 통합하기

TsgcWSAPI_OKX 컴포넌트는 통합된 WebSocket 인터페이스를 통해 OKX 거래소에 대한 포괄적인 Delphi 접근을 제공해요. 공개 시장 데이터 스트림, 비공개 계정 채널, 시장가 및 지정가 주문을 포함한 직접 트레이딩 작업을 단일 컴포넌트로 모두 지원해요. 이 가이드는 사용 가능한 모든 메서드와 설정 속성을 설명하고, Delphi에서 OKX 트레이딩을 시작할 수 있는 동작하는 코드 예제를 포함해요.

목차

WebSocket 공개 채널

공개 채널은 인증 없이 연결된 모든 클라이언트에 시장 데이터를 스트리밍해요. 이 채널들은 종목, 시세, 호가창, 체결, 캔들스틱, 펀딩 비율 등을 다뤄요. 각 구독 메서드에는 그에 대응하는 구독 취소 메서드가 있어요.

시장 데이터 채널

메서드 설명
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 알고리즘 주문 업데이트(트리거, TP/SL, 추적 스톱)를 구독해요.
SubscribeAdvanceAlgo 고급 알고리즘 주문 업데이트(아이스버그, TWAP)를 구독해요.

RFQ 및 블록 트레이드 채널

메서드 설명
SubscribeRfqs 블록 트레이딩을 위한 호가 요청(RFQ) 업데이트를 구독해요.
SubscribeQuotes RFQ에 대한 응답 호가 업데이트를 구독해요.
SubscribePrivateStructureBlockTrades 비공개 구조 블록 트레이드 업데이트를 구독해요.

그리드 트레이딩 채널

메서드 설명
SubscribeSpotGridAlgoOrders 현물 그리드 알고 주문 업데이트를 구독해요.
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 키, 시크릿, 암호 문구를 직접 하드코딩하지 마세요. 자격 증명을 저장하려면 안전한 설정 파일이나 환경 변수를 사용하세요.