KuCoin 현물 및 선물 API Delphi 통합
TsgcWSAPI_Kucoin과 TsgcWSAPI_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_Kucoin의 REST_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_Futures의 REST_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 키, 시크릿, 패스프레이즈를 프로덕션 코드에 직접 하드코딩하지 마세요. 자격 증명은 안전한 설정 파일이나 환경 변수에 저장하세요.
- 현물 거래에는
TsgcWSAPI_Kucoin을, 선물 거래에는 TsgcWSAPI_Kucoin_Futures를 사용하세요. 각 컴포넌트는 서로 다른 KuCoin 엔드포인트에 연결해요.
Passphrase 속성은 KuCoin에서 필수이며 KuCoin 웹사이트에서 API 키 생성 시 설정해요.
- 모든 REST 메서드는 JSON 문자열을 반환해요. System.JSON의
TJSONObject 같은 JSON 파서로 응답을 파싱하세요.
- 공개 WebSocket 채널은 인증이 필요 없으며 API 자격 증명 없이 시장 데이터를 수신할 수 있어요.
- 비공개 WebSocket 채널과 계정 상태를 변경하는 모든 REST 메서드는 유효한 API 자격 증명이 필요해요.
- KuCoin은 REST 및 WebSocket API 모두에 요청 제한을 적용해요. 현재 제한은 공식 KuCoin 문서를 참조하세요.
- WebSocket 연결은 토큰 기반 인증 시스템을 사용해요. 컴포넌트가 토큰 획득 및 갱신을 자동으로 처리해요.