CEX Plus API 업데이트 sgcWebSockets

· 기능
Delphi에서 CEX.IO Plus WebSocket API 통합

CEX.IO Plus는 CEX.IO의 고급 트레이딩 플랫폼으로, 전문 및 기관 트레이더를 위해 설계되었어요. TsgcWSAPI_CexPlus 컴포넌트는 시장 데이터 구독, 주문 관리, 계좌 운영, 자금 이체 등 WebSocket API에 대한 포괄적인 Delphi 접근을 단일 지속 연결을 통해 제공해요.

Table of Contents

개요

CEX.IO Plus API는 표준 CEX.IO 기능을 크게 확장해요. 실시간 호가창과 거래 피드를 위한 공개 구독, 티커·캔들·거래소 정보의 온디맨드 스냅샷을 위한 시장 데이터 조회, 주문 관리·수수료 조회·거래 내역·자금 이체를 포함한 전체 거래 운영을 위한 계좌 메서드의 세 가지 기능 계층을 제공해요. TsgcWSAPI_CexPlus 컴포넌트가 이 모든 기능을 캡슐화해요.

시작하기

TsgcWebSocketClientTsgcWSAPI_CexPlus 컴포넌트를 생성하고 연결한 후 API 인증 정보를 설정하세요. 컴포넌트가 CEX.IO Plus WebSocket 엔드포인트에 자동으로 연결해요.

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
참고: CEX.IO Plus는 표준 CEX.IO API와 다른 API 엔드포인트와 인증 방식을 사용해요. API 인증 정보가 표준 CEX.IO 플랫폼이 아닌 CEX.IO Plus 대시보드에서 생성되었는지 확인하세요.

공개 WebSocket 메서드

공개 구독 메서드는 인증 없이 실시간 데이터를 스트리밍해요. 시장 모니터링과 실시간 데이터 피드 구축에 적합해요.

Method Description
SubscribeOrderBook 거래 쌍의 실시간 호가창 업데이트를 구독해요.
UnSubscribeOrderBook 거래 쌍의 호가창 업데이트 구독을 취소해요.
SubscribeTrade 거래 쌍의 실시간 체결 피드를 구독해요.
UnSubscribeTrade 체결 피드 구독을 취소해요.
// Subscribe to BTC-USD order book and trades
oCexPlus.SubscribeOrderBook('BTC-USD');
oCexPlus.SubscribeTrade('BTC-USD');
// Unsubscribe when no longer needed
oCexPlus.UnSubscribeOrderBook('BTC-USD');
oCexPlus.UnSubscribeTrade('BTC-USD');

시장 데이터 메서드

시장 데이터 메서드는 거래소 데이터의 온디맨드 스냅샷을 반환해요. 구독과 달리 단일 결과를 반환하는 요청-응답 호출이에요.

Method Description
GetTicker 쌍의 현재 티커(매수호가, 매도호가, 최종 가격)를 조회해요.
GetOrderBook 쌍의 현재 호가창 스냅샷을 조회해요.
GetCandles 차트 작성을 위한 OHLCV 캔들 데이터를 조회해요.
GetTradeHistory 쌍의 최근 공개 거래 내역을 조회해요.
GetServerTime 동기화를 위한 현재 서버 타임스탬프를 조회해요.
GetPairsInfo 이용 가능한 모든 거래 쌍에 대한 정보를 조회해요.
GetCurrenciesInfo 지원하는 모든 통화에 대한 정보를 조회해요.
GetProcessingInfo 입출금 처리 세부 정보를 조회해요.

시장 데이터 조회

// Get current ticker for BTC-USD
oCexPlus.GetTicker('BTC-USD');
// Get order book snapshot
oCexPlus.GetOrderBook('BTC-USD');
// Get candle data for charting
oCexPlus.GetCandles('BTC-USD');
// Get available trading pairs
oCexPlus.GetPairsInfo;

계좌 및 거래 메서드

계좌 메서드는 인증이 필요하며 주문 접수, 계좌 상태 확인, 수수료 관리, 자금 이체 등 전체 거래 기능을 제공해요.

계좌 관리

Method Description
Ping 연결을 유지하기 위해 킵얼라이브 핑을 전송해요.
CreateAccount 플랫폼에 새 서브계좌를 생성해요.
GetAccountStatus 현재 계좌 상태와 세부 정보를 조회해요.
GetCurrentFee 계좌의 현재 거래 수수료율을 조회해요.
GetFeeStrategy 수수료 전략과 등급 정보를 조회해요.
GetVolume 수수료 등급 산정을 위한 거래량을 조회해요.

주문 관리

Method Description
GetOrders 계좌의 미체결 주문을 모두 조회해요.
NewOrder 전체 파라미터를 제어하여 새 주문을 접수해요.
NewMarketOrder 현재 최적 가격으로 실행되는 시장가 주문을 접수해요.
NewLimitOrder 지정한 가격으로 지정가 주문을 접수해요.
CancelOrder 식별자로 특정 미체결 주문을 취소해요.
CancelAllOrders 미체결 주문을 한 번에 모두 취소해요.

내역 및 자금

Method Description
GetTransactionHistory 계좌의 거래 내역을 조회해요.
GetFundingHistory 입출금 내역을 조회해요.
InternalTransfer 서브계좌 간 내부 자금 이체를 해요.
GetDepositAddress 통화의 입금 주소를 생성하거나 조회해요.
FundsDepositFromWallet 외부 지갑에서 거래 계좌로 자금을 입금해요.
FundsWithdrawalToWallet 거래 계좌에서 외부 지갑으로 자금을 출금해요.

코드 예제

다음 예제는 CEX.IO Plus 연결, 계좌 상태 확인, 호가창 구독, 시장가 주문 접수를 보여줘요.

oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your_api_key';
oCexPlus.CexPlus.ApiSecret := 'your_api_secret';
oClient.Active := True;
// Get account status
oCexPlus.GetAccountStatus;
// Subscribe to order book
oCexPlus.SubscribeOrderBook('BTC-USD');
// Place a market order
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);

다양한 주문 유형 접수

CEX.IO Plus는 여러 주문 유형을 지원해요. 최적 가격으로 즉시 실행하려면 NewMarketOrder를, 특정 가격 주문에는 NewLimitOrder를, 전체 파라미터 제어에는 NewOrder를 사용해요.

// Market order: buy BTC with USD at market price
oCexPlus.NewMarketOrder('BTC', 'USD', cxpsBuy);
// Limit order: buy BTC at a specific price
oCexPlus.NewLimitOrder('BTC', 'USD', cxpsBuy, 0.01, 30000);
// Cancel a specific order
oCexPlus.CancelOrder('order-id-here');
// Cancel all open orders
oCexPlus.CancelAllOrders;

자금 이체

컴포넌트는 서브계좌 간 내부 자금 이체와 입출금 운영을 지원해요.

// Get deposit address for BTC
oCexPlus.GetDepositAddress('BTC');
// Retrieve funding history
oCexPlus.GetFundingHistory;
// Transfer funds between sub-accounts
oCexPlus.InternalTransfer('from-account', 'to-account', 'BTC', 0.5);

설정 및 참고 사항

API 인증 정보

CEX.IO Plus 플랫폼에서 API 키와 시크릿을 생성하세요. 표준 CEX.IO 인증 정보와 다르니 주의하세요. 수행하려는 작업(예: 거래, 출금)에 적합한 권한이 API 키에 활성화되어 있는지 확인하세요.

쌍 명칭 규칙

CEX.IO Plus는 기본 통화와 견적 통화 파라미터를 별도로 사용하는 표준 CEX.IO API와 달리 BTC-USD처럼 하이픈으로 연결된 쌍 형식을 사용해요. 구독 메서드와 시장 데이터 조회 시 항상 하이픈 형식을 사용하세요.

주문 방향 열거

주문 메서드는 주문 방향을 지정하기 위해 cxpsBuycxpsSell 열거 값을 사용해요. 이는 CEX.IO Plus 컴포넌트에 특화된 것으로 표준 CEX.IO 열거와 달라요.

연결 킵얼라이브

인증된 세션을 유지하기 위해 정기적으로 Ping 메서드를 사용하세요. 이렇게 하면 서버가 비활동으로 인해 연결을 끊지 않아요.

팁: 애플리케이션에 하드코딩하는 대신 시작 시 GetPairsInfoGetCurrenciesInfo를 사용하여 이용 가능한 거래 쌍과 지원 통화를 동적으로 확인하세요.

오류 처리

CEX.IO Plus의 모든 응답에는 상태 필드가 포함돼요. 컴포넌트의 메시지 이벤트에서 응답 상태와 오류 세부 정보를 확인하여 오류 응답을 처리하세요. 일반적인 오류로는 잔고 부족, 잘못된 쌍 이름, 인증 실패 등이 있어요.