MEXC는 수백 개의 토큰 페어에서 현물 거래와 무기한 선물 계약을 지원하는 글로벌 암호화폐 거래소예요. Delphi 개발자는 두 가지 전용 컴포넌트를 통해 MEXC와 통합할 수 있어요: 현물 시장의 TsgcWSAPI_MEXC와 선물 시장의 TsgcWSAPI_MEXC_Futures. 각 컴포넌트는 실시간 데이터를 위한 WebSocket 구독과 온디맨드 조회 및 주문 관리를 위한 REST 인터페이스를 모두 제공해요. 이 글은 두 시장에서 사용 가능한 모든 메서드를 자세히 설명해요.
목차
- Architecture 개요
- 현물 WebSocket API
- 현물 REST API
- 선물 WebSocket API
- 선물 REST API
- 시작하기 — 코드 예제
- 설정 참고
- 팁 및 참고 사항
Architecture 개요
MEXC는 현물과 선물 시장에 대해 별도의 API 서피스를 제공해요. sgcWebSockets 라이브러리에서는 두 가지 구분된 컴포넌트로 반영돼요:
TsgcWSAPI_MEXC— 현물 시장을 처리해요. 실시간 거래, 캔들, 호가 깊이, 시세에 대한 WebSocket 구독과 비공개 계정 이벤트 스트림을 제공해요. REST 인터페이스는REST_API(유형TsgcHTTP_API_MEXC_Spot)를 통해 접근해요.TsgcWSAPI_MEXC_Futures— 선물 시장을 처리해요. 체결, 펀딩 비율, 지수 가격, 공정 가격 같은 선물 전용 데이터의 WebSocket 구독을 제공해요. REST 인터페이스는REST_API(유형TsgcHTTP_API_MEXC_Futures)를 통해 접근해요.
두 컴포넌트 모두 동일한 패턴을 따라요: TsgcWebSocketClient를 할당하고, API 자격 증명을 설정하고, WebSocket 구독을 위해 클라이언트를 활성화하고, 동기 HTTP 호출을 위해 REST_API에 접근해요.
현물 WebSocket API
현물 WebSocket API는 공개 채널을 통해 실시간 시장 데이터를, 비공개 채널을 통해 계정 업데이트를 제공해요. 각 구독에는 대응하는 구독 취소 메서드가 있어요.
공개 채널
| Subscribe | Unsubscribe | 설명 |
|---|---|---|
SubscribeTrade |
UnSubscribeTrade |
특정 심볼의 실시간 거래 체결 내역이에요. |
SubscribeKline |
UnSubscribeKline |
특정 심볼과 간격의 실시간 캔들스틱 업데이트예요. |
SubscribeDiffDepth |
UnSubscribeDiffDepth |
주문서 깊이의 증분 업데이트(차이 스트림)예요. |
SubscribeBookDepth |
UnSubscribeBookDepth |
지정된 레벨의 주문서 전체 깊이 스냅샷이에요. |
SubscribeBookTicker |
UnSubscribeBookTicker |
특정 심볼의 최우선 매수/매도 가격과 수량이에요. |
SubscribeBookTickerBatch |
UnSubscribeBookTickerBatch |
단일 스트림으로 모든 심볼의 최우선 매수/매도 가격이에요. |
SubscribeMiniTickers |
UnSubscribeMiniTickers |
모든 심볼의 간략한 시세 데이터(가격, 거래량)예요. |
SubscribeMiniTicker |
UnSubscribeMiniTicker |
특정 심볼의 간략한 시세 데이터예요. |
비공개 채널
비공개 채널은 인증이 필요하며 계정 활동에 대한 실시간 업데이트를 제공해요. MEXCUserDataStreams.UserStream 속성으로 사용자 데이터 스트림을 활성화하세요.
| Subscribe | Unsubscribe | 설명 |
|---|---|---|
SubscribeAccountUpdate |
UnSubscribeAccountUpdate |
변경 발생 시 계정 잔액 및 포지션 업데이트예요. |
SubscribeAccountDeals |
UnSubscribeAccountDeals |
주문이 체결될 때의 실시간 알림(거래 실행)이에요. |
SubscribeAccountOrders |
UnSubscribeAccountOrders |
주문 상태 변경(접수, 부분 체결, 체결, 취소)이에요. |
현물 REST API
현물 REST API는 oMEXC.REST_API(유형 TsgcHTTP_API_MEXC_Spot)를 통해 접근해요. 공개 엔드포인트는 인증이 필요 없으며, 비공개 엔드포인트는 유효한 API 키와 시크릿이 필요해요.
공개 엔드포인트
| 메서드 | 설명 |
|---|---|
Ping |
MEXC API 서버에 대한 연결을 테스트해요. |
GetServerTime |
현재 MEXC 서버 시간을 반환해요. |
GetDefaultSymbols |
기본 거래 심볼 목록을 반환해요. |
GetExchangeInformation |
거래소 거래 규칙과 심볼 정보(필터, 정밀도, 상태)를 반환해요. |
GetOrderBook |
특정 심볼의 주문서(매수/매도 호가)를 지정된 깊이로 반환해요. |
GetTrades |
특정 심볼의 최근 공개 거래 내역을 반환해요. |
GetAggregateTrades |
집계/압축된 거래 기록을 반환해요. |
GetKlines |
특정 심볼과 간격의 과거 캔들스틱 데이터를 반환해요. |
GetAveragePrice |
특정 심볼의 현재 평균 가격을 반환해요. |
Get24hrTicker |
24시간 롤링 윈도우 가격 변동 통계를 반환해요. |
GetPriceTicker |
하나 또는 모든 심볼의 최신 가격을 반환해요. |
GetBookTicker |
주문서에서 최우선 매수/매도 가격과 수량을 반환해요. |
비공개 엔드포인트
| 메서드 | 설명 |
|---|---|
NewOrder |
새로운 현물 주문을 실행해요(시장가, 지정가 또는 기타 지원 유형). |
TestNewOrder |
실제로 주문을 실행하지 않고 유효성을 검사해요(드라이 런). |
CancelOrder |
주문 ID로 특정 오픈 주문을 취소해요. |
CancelAllOrders |
특정 심볼의 모든 오픈 주문을 취소해요. |
GetOrder |
특정 주문의 상태와 세부 정보를 반환해요. |
GetOpenOrders |
현재 미체결된 모든 오픈 주문을 반환해요. |
GetAllOrders |
지정된 시간 범위 내 모든 주문(오픈, 체결, 취소)을 반환해요. |
GetAccountInformation |
계정 잔액과 권한을 반환해요. |
GetMyTrades |
특정 심볼의 거래 내역을 반환해요. |
GetSubAccounts |
마스터 계정 하위 서브 계정 목록을 반환해요. |
GetDepositAddress |
특정 코인과 네트워크의 입금 주소를 반환해요. |
GetWithdrawHistory |
출금 내역 기록을 반환해요. |
Withdraw |
외부 주소로의 출금을 시작해요. |
GetCapitalConfig |
자본 설정(지원 네트워크, 최소/최대 출금액, 수수료)을 반환해요. |
선물 WebSocket API
선물 WebSocket API는 무기한 선물 계약에 특화된 실시간 데이터를 제공해요. 모든 채널은 공개이며 인증이 필요 없어요. 각 구독에는 대응하는 구독 취소 메서드가 있어요.
| Subscribe | Unsubscribe | 설명 |
|---|---|---|
SubscribeDeal |
UnSubscribeDeal |
선물 거래/체결의 실시간 내역이에요. |
SubscribeTickers |
UnSubscribeTickers |
모든 선물 계약의 시세 데이터예요. |
SubscribeTicker |
UnSubscribeTicker |
특정 선물 계약의 시세 데이터예요. |
SubscribeDepth |
UnSubscribeDepth |
선물의 주문서 깊이 증분 업데이트예요. |
SubscribeDepthFull |
UnSubscribeDepthFull |
선물의 주문서 전체 깊이 스냅샷이에요. |
SubscribeKline |
UnSubscribeKline |
선물 계약의 실시간 캔들스틱 업데이트예요. |
SubscribeFundingRate |
UnSubscribeFundingRate |
무기한 계약의 실시간 펀딩 비율 업데이트예요. |
SubscribeIndexPrice |
UnSubscribeIndexPrice |
실시간 지수 가격 업데이트예요. |
SubscribeFairPrice |
UnSubscribeFairPrice |
청산 계산에 사용되는 실시간 공정/마크 가격 업데이트예요. |
선물 REST API
선물 REST API는 oMEXCFut.REST_API(유형 TsgcHTTP_API_MEXC_Futures)를 통해 접근해요. 시장 데이터, 계정 관리, 포지션 제어, 주문 작업을 다뤄요.
공개 엔드포인트
| 메서드 | 설명 |
|---|---|
GetPing |
MEXC 선물 API 서버에 대한 연결을 테스트해요. |
GetServerTime |
현재 선물 서버 시간을 반환해요. |
GetContracts |
사용 가능한 모든 선물 계약과 사양 목록을 반환해요. |
GetDepth |
선물 계약의 주문서 깊이를 반환해요. |
GetDeals |
선물 계약의 최근 공개 거래/체결 내역을 반환해요. |
GetKlines |
선물 계약의 과거 캔들스틱 데이터를 반환해요. |
GetIndexPrice |
계약의 현재 지수 가격을 반환해요. |
GetFairPrice |
계약의 현재 공정/마크 가격을 반환해요. |
GetFundingRate |
무기한 계약의 현재 및 예상 펀딩 비율을 반환해요. |
비공개 엔드포인트
| 메서드 | 설명 |
|---|---|
GetAccountAssets |
선물 계정 자산 잔액과 마진 정보를 반환해요. |
GetPositionList |
크기, 진입 가격, 손익이 포함된 모든 오픈 선물 포지션을 반환해요. |
SetPositionLeverage |
특정 선물 계약의 레버리지 배수를 설정해요. |
PlaceOrder |
새로운 선물 주문을 실행해요(시장가, 지정가 또는 기타 지원 유형). |
CancelOrder |
특정 오픈 선물 주문을 취소해요. |
CancelAllOrders |
계약의 모든 오픈 선물 주문을 취소해요. |
GetOpenOrders |
현재 오픈된 모든 선물 주문을 반환해요. |
GetOrderHistory |
과거 선물 주문 내역(체결, 취소 등)을 반환해요. |
GetFundingHistory |
펀딩 비용 납부 내역을 반환해요. |
시작하기 — 코드 예제
현물 시장 예제
다음 예제는 MEXC 현물 WebSocket에 연결하고, 실시간 거래를 구독하고, REST를 통해 거래소 정보를 조회하고, 시장가 매수 주문을 실행하는 방법을 보여줘요.
var
oClient: TsgcWebSocketClient;
oMEXC: TsgcWSAPI_MEXC;
begin
// Create the WebSocket client
oClient := TsgcWebSocketClient.Create(nil);
// Create the MEXC Spot API component
oMEXC := TsgcWSAPI_MEXC.Create(nil);
oMEXC.Client := oClient;
// Configure API credentials
oMEXC.MEXCAPI.ApiKey := 'your_api_key';
oMEXC.MEXCAPI.ApiSecret := 'your_api_secret';
// Connect to the WebSocket
oClient.Active := True;
// WebSocket: Subscribe to real-time trades for BTCUSDT
oMEXC.SubscribeTrade('BTCUSDT');
// REST: Get exchange information
ShowMessage(oMEXC.REST_API.GetExchangeInformation);
// REST: Place a market buy order for 0.001 BTC
ShowMessage(oMEXC.REST_API.NewOrder('BTCUSDT', 'BUY', 'MARKET', '', 0.001));
end;
선물 시장 예제
이 예제는 MEXC 선물 WebSocket에 연결하고, 선물 시세를 구독하고, REST를 통해 사용 가능한 계약을 조회하는 방법을 보여줘요.
var
oClientFut: TsgcWebSocketClient;
oMEXCFut: TsgcWSAPI_MEXC_Futures;
begin
// Create the WebSocket client for futures
oClientFut := TsgcWebSocketClient.Create(nil);
// Create the MEXC Futures API component
oMEXCFut := TsgcWSAPI_MEXC_Futures.Create(nil);
oMEXCFut.Client := oClientFut;
// Configure API credentials
oMEXCFut.MEXCFuturesAPI.ApiKey := 'your_api_key';
oMEXCFut.MEXCFuturesAPI.ApiSecret := 'your_api_secret';
// Connect to the WebSocket
oClientFut.Active := True;
// WebSocket: Subscribe to futures ticker for BTC_USDT
oMEXCFut.SubscribeTicker('BTC_USDT');
// REST: Get all available futures contracts
ShowMessage(oMEXCFut.REST_API.GetContracts);
end;
참고: 현물과 선물은 별도의 WebSocket 연결과 별도의 API 컴포넌트를 사용해요. 각각에 대해 별도의 TsgcWebSocketClient 인스턴스가 필요해요.
설정 참고
현물 설정
| 속성 | 유형 | 설명 |
|---|---|---|
MEXCAPI.ApiKey |
문자열 | 인증된 현물 요청을 위한 MEXC API 키예요. |
MEXCAPI.ApiSecret |
문자열 | 요청 서명을 위한 MEXC API 시크릿이에요. |
MEXCUserDataStreams.UserStream |
불리언 | True로 설정하면 계정 업데이트, 체결, 주문 이벤트를 위한 비공개 사용자 데이터 스트림이 활성화돼요. |
선물 설정
| 속성 | 유형 | 설명 |
|---|---|---|
MEXCFuturesAPI.ApiKey |
문자열 | 인증된 선물 요청을 위한 MEXC API 키예요. |
MEXCFuturesAPI.ApiSecret |
문자열 | 선물 요청 서명을 위한 MEXC API 시크릿이에요. |
팁 및 참고 사항
현물과 선물에 대한 별도 컴포넌트
MEXC는 현물과 선물을 서로 다른 API 엔드포인트, 심볼 명명 규칙(예: 현물은 BTCUSDT, 선물은 BTC_USDT), 인증 범위를 가진 완전히 별개의 시장으로 취급해요. 항상 목표 시장에 맞는 컴포넌트를 사용하세요.
사용자 데이터 스트림
현물 WebSocket에서 비공개 계정 이벤트(계정 업데이트, 체결, 주문 변경)를 받으려면 클라이언트를 활성화하기 전에 MEXCUserDataStreams.UserStream := True로 설정해야 해요. 이렇게 하면 컴포넌트가 리슨 키를 요청하고 비공개 스트림을 자동으로 설정해요.
주문 테스트
현물 REST API의 TestNewOrder 메서드를 사용해 실제로 주문을 실행하지 않고 주문 파라미터의 유효성을 검사하세요. 실제 자금을 사용하기 전에 심볼, 방향, 유형, 수량 파라미터가 올바르게 포맷되었는지 확인하는 데 유용해요.
심볼 명명 규칙
두 시장에서의 다른 심볼 형식에 주의하세요. 현물은 BTCUSDT처럼 연결된 페어를 사용하고, 선물은 BTC_USDT처럼 밑줄로 구분된 페어를 사용해요. 잘못된 형식을 사용하면 "심볼을 찾을 수 없음" 오류가 발생해요.
요청 제한
MEXC는 REST 및 WebSocket API 모두에 요청 제한을 적용해요. REST 엔드포인트는 보통 분당 고정된 수의 요청을 허용해요. 제한을 초과하면 429 상태 코드를 받게 돼요. 자주 변경되는 데이터에는 적절한 백오프 로직을 구현하거나 WebSocket 구독을 사용하세요.
팁: 고빈도 모니터링에는 REST 엔드포인트 폴링보다 WebSocket 구독을 선호하세요. 구독은 더 낮은 지연 시간으로 실시간 데이터를 제공하며 REST 요청 제한에 포함되지 않아요.