Kucoin API 업데이트 sgcWebSockets

· 기능
KuCoin 현물 및 선물 API Delphi 통합

TsgcWSAPI_KucoinTsgcWSAPI_Kucoin_Futures 컴포넌트는 KuCoin 거래소에 대한 포괄적인 Delphi 접근을 제공해요. 실시간 WebSocket 시장 데이터, 비공개 계정 스트림, 거래·출금·시장 조회를 위한 완전한 REST API를 다뤄요. 이 가이드는 현물과 선물 모두에서 사용 가능한 모든 메서드를 설정 세부 사항과 실제 코드 예제와 함께 안내해요.

목차

현물 WebSocket API

현물 WebSocket API는 시장 데이터와 비공개 계정 이벤트를 실시간으로 스트리밍해요. 공개 채널은 인증 없이 사용할 수 있으며, 비공개 채널은 유효한 API 자격 증명이 필요해요.

공개 채널

공개 채널은 인증 없이 연결된 모든 클라이언트에 시장 데이터를 스트리밍해요. 각 구독 메서드에는 대응하는 구독 취소 메서드가 있어요.

메서드 설명
SubscribeSymbolTicker 특정 거래 심볼의 실시간 시세 업데이트를 구독해요.
SubscribeAllSymbolsTicker 거래소의 모든 심볼에 대한 시세 업데이트를 구독해요.
SubscribeSymbolSnapshot 24시간 통계를 포함한 특정 심볼의 스냅샷 데이터를 구독해요.
SubscribeMarketSnapshot 시장 전체 스냅샷 업데이트를 구독해요.
SubscribeLevel2MarketData Level 2 주문서 변경사항(전체 깊이)을 구독해요.
SubscribeLevel2_5BestAskBid 주문서 상위 5개 매도/매수 호가를 구독해요.
SubscribeLevel2_50BestAskBid 주문서 상위 50개 매도/매수 호가를 구독해요.
SubscribeKlines 지정된 간격으로 특정 심볼의 캔들스틱 데이터를 구독해요.
SubscribeMatchExecutionData 특정 심볼의 실시간 체결 데이터를 구독해요.
SubscribeIndexPrice 특정 심볼의 지수 가격 업데이트를 구독해요.
SubscribeMarkPrice 특정 심볼의 마크 가격 업데이트를 구독해요.
SubscribeOrderBookChanged 특정 심볼의 주문서 변경 이벤트를 구독해요.
참고: 위에 나열된 모든 구독 메서드에는 해당 채널의 업데이트 수신을 중단하는 UnSubscribe 대응 메서드가 있어요(예: UnSubscribeSymbolTicker).

비공개 채널

비공개 채널은 유효한 API 자격 증명이 필요하며, 주문·잔액·포지션·마진 활동에 대한 실시간 업데이트를 제공해요.

메서드 설명
SubscribeTradeOrders 거래 주문(오픈, 체결, 취소)의 실시간 업데이트를 구독해요.
SubscribeAccountBalance 실시간 계정 잔액 변경을 구독해요.
SubscribePositionStatus 마진 거래의 포지션 상태 업데이트를 구독해요.
SubscribeMarginTradeOrders 마진 거래 주문 업데이트를 구독해요.
SubscribeStopOrder 스톱 주문의 트리거 및 상태 업데이트를 구독해요.

현물 REST API

현물 REST API는 TsgcWSAPI_KucoinREST_API 속성을 통해 접근해요. 모든 메서드는 JSON 문자열을 반환해요. API는 계정, 출금, 주문 관리, 스톱 주문, 시장 데이터를 다뤄요.

Accounts

메서드 설명
GetAccounts 모든 계정(메인, 거래, 마진) 목록을 반환해요.
GetAccount 계정 ID로 특정 계정의 세부 정보를 반환해요.
GetAccountBalanceSubAccount 서브 계정의 잔액을 반환해요.
InnerTransfer 내부 계정 간에 자금을 이체해요(예: 메인 → 거래 계정).

Withdrawals

메서드 설명
GetWithdrawalsList 최근 출금 기록 목록을 반환해요.
GetHistoricalWithdrawalsList 최근 범위를 벗어난 이전 출금 기록을 반환해요.
GetWithdrawalsQuotas 특정 통화의 출금 한도 및 제한을 반환해요.
ApplyWithdraw 외부 주소로의 출금을 시작해요.
CancelWithdraw ID로 보류 중인 출금을 취소해요.

Orders

메서드 설명
PlaceOrder 새로운 현물 주문을 실행해요(시장가 또는 지정가, 매수 또는 매도).
PlaceMarginOrder 차입 자금으로 마진 주문을 실행해요.
CancelOrderByClientOid 클라이언트 지정 주문 ID로 주문을 취소해요.
GetOrder 거래소 지정 ID로 특정 주문의 세부 정보를 반환해요.
GetOrderByClientOid 클라이언트 지정 ID로 특정 주문의 세부 정보를 반환해요.
ListFills 체결된 주문(거래 실행) 목록을 반환해요.
GetRecentFills 가장 최근 체결 기록을 반환해요.

Stop Orders

메서드 설명
PlaceStopOrder 스톱 가격에 도달하면 트리거되는 스톱 주문을 실행해요.
PlaceStopMarketOrder 트리거 후 시장가로 실행되는 스톱-마켓 주문을 실행해요.
PlaceStopLimitOrder 트리거 후 지정가 주문을 생성하는 스톱-리밋 주문을 실행해요.
CancelStopOrder 거래소 지정 ID로 스톱 주문을 취소해요.
CancelStopOrderByClientOid 클라이언트 지정 ID로 스톱 주문을 취소해요.
CancelAllStopOrders 활성 스톱 주문 전체를 취소해요(심볼로 필터링 가능).
GetStopOrder 거래소 지정 ID로 특정 스톱 주문의 세부 정보를 반환해요.
GetStopOrderByClientOid 클라이언트 지정 ID로 특정 스톱 주문의 세부 정보를 반환해요.
ListStopOrders 모든 활성 스톱 주문 목록을 반환해요.

시장 데이터

메서드 설명
GetSymbolList 사용 가능한 거래 심볼 목록을 반환해요.
GetAllTickers 모든 거래 쌍의 시세 데이터를 반환해요.
GetMarketList 사용 가능한 시장 목록을 반환해요.
GetPartOrderBook100 특정 심볼의 주문서 상위 100개 항목을 반환해요.
GetFullOrderBook 특정 심볼의 전체 주문서(Level 3 데이터)를 반환해요.
GetHistories 특정 심볼의 최근 거래 내역을 반환해요.
GetKLines 지정된 간격으로 특정 심볼의 캔들스틱 데이터를 반환해요.
GetCurrencies 지원되는 모든 통화 목록을 반환해요.
GetCurrencyDetail 특정 통화의 세부 정보(체인 정보, 소수점 자릿수 등)를 반환해요.
GetFiatPrice 지정된 통화의 법정화폐 가격을 반환해요(예: BTC의 USD 가치).

선물 WebSocket API

선물 WebSocket API는 TsgcWSAPI_Kucoin_Futures가 제공하며, 선물 계약 데이터와 비공개 계정 이벤트를 실시간으로 스트리밍해요.

공개 채널

메서드 설명
SubscribeSymbolTickerV2 선물 계약 심볼의 V2 시세 업데이트를 구독해요.
SubscribeSymbolTicker 선물 계약 심볼의 시세 업데이트를 구독해요.
SubscribeLevel2MarketData 선물 계약의 Level 2 주문서 데이터를 구독해요.
SubscribeExecutionData 선물 거래의 실시간 체결 데이터를 구독해요.
SubscribeLevel2_5BestAskBid 선물 계약의 상위 5개 매도/매수 호가를 구독해요.
SubscribeLevel2_50BestAskBid 선물 계약의 상위 50개 매도/매수 호가를 구독해요.
SubscribeContractMarketData 계약 수준의 시장 데이터(펀딩 비율, 마크 가격 등)를 구독해요.
SubscribeSystemAnnouncements 시스템 전체 공지 및 유지보수 알림을 구독해요.
SubscribeTransactionStatistics 선물 계약의 집계 거래 통계를 구독해요.
참고: 선물 표에 나열된 모든 구독 메서드에는 해당 채널의 업데이트 수신을 중단하는 UnSubscribe 대응 메서드가 있어요.

비공개 채널

메서드 설명
SubscribeTradeOrders 선물 거래 주문의 실시간 업데이트를 구독해요.
SubscribeStopOrder 선물의 스톱 주문 트리거 및 상태 업데이트를 구독해요.
SubscribeAccountBalance 실시간 선물 계정 잔액 변경을 구독해요.
SubscribePositionChange 포지션 변경 이벤트(오픈, 청산, 강제청산)를 구독해요.

선물 REST API

선물 REST API는 TsgcWSAPI_Kucoin_FuturesREST_API 속성을 통해 접근해요. 마진 관리, 리스크 한도, 펀딩 내역, 주문서 조회를 다뤄요.

메서드 설명
AddMarginManually 선물 포지션에 마진을 수동으로 추가해요.
ObtainFuturesRiskLimitLevel 선물 계약의 현재 리스크 한도 수준을 반환해요.
AdjustRiskLimitLevel 선물 계약의 리스크 한도 수준을 조정해요.
GetFundingHistory 선물 계약의 펀딩 비율 내역을 반환해요.
GetPartOrderBook100 선물 주문서 상위 100개 항목을 반환해요.
GetFullOrderBook 선물 주문서 전체를 반환해요.
GetLevel2PullingMessages 주문서 증분 업데이트를 위한 Level 2 풀링 메시지를 반환해요.
GetInterestRateList 펀딩 계산에 사용되는 이자율 목록을 반환해요.
GetIndexList 선물 계약의 지수 구성 목록을 반환해요.

코드 예제

다음 예제는 현물 거래를 위해 TsgcWSAPI_Kucoin 컴포넌트를 생성·설정하고, API 인증, REST를 통한 시세 조회, 주문 실행, WebSocket을 통한 실시간 시세 스트림 구독 방법을 보여줘요.

var
  oClient: TsgcWebSocketClient;
  oKucoin: TsgcWSAPI_Kucoin;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  oKucoin := TsgcWSAPI_Kucoin.Create(nil);
  oKucoin.Client := oClient;
  // Configure API credentials
  oKucoin.Kucoin.ApiKey := 'your_api_key';
  oKucoin.Kucoin.ApiSecret := 'your_api_secret';
  oKucoin.Kucoin.Passphrase := 'your_passphrase';
  // Connect to KuCoin
  oClient.Active := True;
  // REST: Get all tickers
  ShowMessage(oKucoin.REST_API.GetAllTickers);
  // REST: Place a limit order
  ShowMessage(oKucoin.REST_API.PlaceOrder(myOrder));
  // WebSocket: Subscribe to BTC-USDT ticker
  oKucoin.SubscribeSymbolTicker('BTC-USDT');
end;

WebSocket 이벤트 처리

수신 메시지를 처리하는 이벤트 핸들러를 할당하세요. 이벤트는 각 업데이트의 토픽, 주제, JSON 데이터를 제공해요.

procedure TForm1.OnKucoinEvent(Sender: TObject;
  const aTopic, aSubject, aData: string);
begin
  // aTopic identifies the channel
  // aSubject provides the specific symbol or identifier
  // aData contains the JSON payload
  Memo1.Lines.Add(aTopic + ' [' + aSubject + ']: ' + aData);
end;

설정 및 참고

설정 속성

TsgcWSAPI_Kucoin(현물)과 TsgcWSAPI_Kucoin_Futures(선물)는 모두 Kucoin 속성을 통해 접근하는 동일한 인증 속성을 공유해요.

속성 유형 설명
Kucoin.ApiKey 문자열 KuCoin API 키예요. KuCoin API 관리 페이지에서 발급받으세요.
Kucoin.ApiSecret 문자열 KuCoin API 시크릿이에요. 이 값을 안전하게 보관하고 클라이언트 코드에 절대 노출하지 마세요.
Kucoin.Passphrase 문자열 API 키 생성 시 설정한 패스프레이즈예요. 모든 인증된 요청에 필요해요.

중요 사항

보안: API 키, 시크릿, 패스프레이즈를 프로덕션 코드에 직접 하드코딩하지 마세요. 자격 증명은 안전한 설정 파일이나 환경 변수에 저장하세요.