MEXC는 안전한 WebSocket 연결을 통해 스트리밍 시장 및 계정 데이터를 노출하는 글로벌 암호화폐 거래소입니다.
WebSocket Spot API는 Market Streams 및 User Data Streams 문서에 게시된 사양을 따릅니다. Market 채널은 Protocol Buffers 프레임으로 전달되는 반면 비공개 스트림은 JSON을 사용합니다. TsgcWSAPI_MEXC 구성 요소는 연결 수명 주기, 인증 및 listen key 유지 관리를 관리하므로 애플리케이션은 푸시된 데이터 처리에 집중할 수 있습니다.
WebSockets를 통한 스트리밍 외에도 툴킷은 완전한 Spot HTTP API도 노출합니다. TsgcHTTP_API_MEXC_Spot 구성 요소(유닛 sgcHTTP_API_MEXC)는 모든 공식 REST 엔드포인트를 래핑하므로 애플리케이션이 시장 데이터를 쿼리하거나 서명된 요청으로 거래할 수 있습니다.
기본 WebSocket 엔드포인트는 wss://wbs-api.mexc.com/ws입니다. MEXCUserDataStreams.UserStream이 활성화되고 유효한 API 키가 제공되면, 구성 요소는 자동으로 listen key를 요청하고 연결 URL에 추가합니다.
TsgcWebSocketClient와 TsgcWSAPI_MEXC 구성 요소를 폼에 드롭하고(또는 코드로 생성하고), 클라이언트 인스턴스를 API 구성 요소에 할당한 다음, 클라이언트를 활성화하여 세션을 시작하십시오.
var
WSClient: TsgcWebSocketClient;
MEXC: TsgcWSAPI_MEXC;
begin
WSClient := TsgcWebSocketClient.Create(nil);
MEXC := TsgcWSAPI_MEXC.Create(nil);
MEXC.Client := WSClient;
MEXC.MEXCAPI.ApiKey := 'YOUR_KEY';
MEXC.MEXCAPI.ApiSecret := 'YOUR_SECRET';
MEXC.MEXCUserDataStreams.UserStream := True;
if WSClient.Connect then
MEXC.SubscribeTrade('BTCUSDT');
end;
다음 샘플은 trade 프레임을 디코딩하는 방법을 보여줍니다:
procedure TMainForm.MEXCMarketStream(Sender: TObject;
const aMessage: TsgcMEXCSpotProtoMessage; const aStream: TMemoryStream);
var
Deal: TsgcMEXCDealItem;
begin
if aMessage.MessageType = sgcmxspmtTrade then
begin
Deal := TsgcMEXCTradeStream(aMessage.Trade).PublicDeals.DealsList[0];
Memo1.Lines.Add(Format('Trade %s x %s', [Deal.Quantity, Deal.Price]));
end;
end;
구성 요소는 각 공개 Spot 채널에 대한 헬퍼를 노출합니다. 데이터 스트리밍을 시작하려면 Subscribe* 메서드를 호출하고, 중지하려면 해당 UnSubscribe*를 호출하십시오.
| Method | 매개변수 | 설명 |
| SubscribeTrade | Symbol, Interval (ms) | Protobuf publicdeals로 전달되는 집계된 거래 체결입니다. |
| SubscribeKline | Symbol, Interval | 구성 가능한 간격(1분에서 1개월)에 대한 Candlestick 업데이트. |
| SubscribeDiffDepth | Symbol, Interval (ms) | 로컬 호가창 유지를 위한 주문 호가창 증분 깊이 델타입니다. |
| SubscribeBookDepth | Symbol, Levels | 요청된 깊이(기본값 5)로 지정가 주문장의 주기적 스냅샷입니다. |
| SubscribeBookTicker | Symbol, Interval (ms) | 단일 거래 쌍에 대한 최적 bid/ask 업데이트. |
| SubscribeBookTickerBatch | UTC 플래그 | 여러 심볼에 대한 집계된 book ticker 업데이트. |
| SubscribeMiniTickers | UTC 플래그 | 모든 활성 instrument에 대한 롤링 24시간 미니 ticker 통계입니다. |
| SubscribeMiniTicker | Symbol, UTC flag | 단일 심볼에 대한 미니 티커입니다. |
Private 토픽에는 유효한 API 키가 필요합니다. 구성 요소는 활성 listen key를 사용하여 구독하고 주기적으로 갱신합니다.
| Method | 설명 |
| SubscribeAccountUpdate | 계정 잔액 및 포지션 변경. |
| SubscribeAccountDeals | 체결된 주문에 대한 실행 보고서입니다. |
| SubscribeAccountOrders | 주문 수명 주기 업데이트(신규, 취소됨, 거부됨 등). |
스트림을 종료하려면 해당하는 UnSubscribe* 메서드를 사용하십시오. 구성 요소는 연결성을 모니터링하기 위해 PING 명령을 자동으로 보내고 반환된 PONG을 유효성 검사합니다.
공개적으로 사용 가능한 REST 메서드입니다.
| Method | 설명 |
| Ping | /api/v3/ping을 호출하고 거래소가 빈 객체로 응답하면 True를 반환하는 연결 확인입니다. |
| GetServerTime | /api/v3/time에서 현재 거래소 타임스탬프를 검색합니다. |
| GetExchangeInformation | /api/v3/exchangeInfo에서 거래 규칙과 심볼 메타데이터를 반환합니다. |
| GetOrderBook | /api/v3/depth에서 order book 스냅샷을 다운로드합니다. 레벨 수를 제어하려면 선택적 limit 매개변수를 설정하십시오(기본값 100). |
| GetTrades | 선택적 limit(기본값 100)와 함께 /api/v3/trades에서 최근 공개 거래를 검색합니다. |
| GetHistoricalTrades | 선택적 limit 및 fromId 필터로 과거 거래 데이터를 제공합니다. |
| GetAggregateTrades | /api/v3/aggTrades를 통해 압축/집계된 거래를 반환하며, 선택적 limit, fromId, startTime 및 endTime 필터를 지원합니다. |
| GetKlines | 시간 범위 및 limit 필터를 지원하는 /api/v3/klines에서 캔들스틱을 다운로드합니다. |
| GetAveragePrice | /api/v3/avgPrice에서 현재 가중 평균 가격을 반환합니다. |
| Get24hrTicker | /api/v3/ticker/24hr을 통해 하나 또는 모든 심볼에 대한 24시간 ticker 통계를 검색합니다. |
| GetPriceTicker | /api/v3/ticker/price를 사용하여 최신 가격을 가져옵니다. 모든 거래 쌍의 가격을 검색하려면 빈 심볼을 전달하십시오. |
| GetBookTicker | 단일 심볼 또는 전체 거래소 요청을 지원하여 /api/v3/ticker/bookTicker에서 최적의 bid/ask 시세를 가져옵니다. |
비공개 엔드포인트는 유효한 API 키와 서명된 쿼리 문자열을 요구합니다. 구성 요소는 timestamp, recvWindow 및 HMAC 서명을 자동으로 추가합니다.
| Method | 설명 |
| GetAccountInformation | /api/v3/account에서 잔액과 권한을 반환합니다. |
| GetOpenOrders | 현재 미결제 주문을 나열합니다(선택적으로 심볼로 필터링). |
| GetAllOrders | 선택적 시간 및 제한 필터로 과거 주문을 검색합니다. |
| GetOrder | orderId 또는 origClientOrderId를 제공하여 특정 주문의 상태를 쿼리합니다. |
| GetMyTrades | 선택적 limit, fromId, startTime 및 endTime 필터와 함께 private 거래 실행을 나열합니다. |
| NewOrder | 선택적 timeInForce, quantity, quoteOrderQty, price, newClientOrderId, stopPrice, icebergQty 및 추가 매개변수와 함께 /api/v3/order에 라이브 주문(market, limit, stop 등)을 배치합니다. |
| TestNewOrder | NewOrder와 동일한 매개변수 집합을 수락하면서 /api/v3/order/test에 검증 전용 요청을 보냅니다. |
| CancelOrder | orderId 또는 origClientOrderId를 사용하여 /api/v3/order에서 특정 주문을 취소합니다. |
| CancelAllOrders | /api/v3/openOrders를 통해 심볼에 대한 모든 미체결 주문을 일괄 취소합니다. |
| GetSubAccounts | 관리되는 하위 계정을 나열합니다(/api/v3/sub-account/list). |
| GetSubAccountAssets | 특정 하위 계정의 잔액을 반환합니다. |
| TransferSubAccount | /api/v3/sub-account/transfer를 통해 sub-account 간에 자산을 이체합니다. 금액과 선택적으로 이체 type을 제공하십시오. |
| GetDepositAddress | 선택적 network 필터와 함께 입금 주소를 요청합니다. |
| GetDepositHistory | 선택적 coin, status, startTime 및 endTime 필터로 입금 기록을 가져옵니다. |
| GetWithdrawHistory | coin, status 및 선택적 시간 범위로 필터링된 출금 내역을 반환합니다. |
| Withdraw | 필수 coin, address 및 amount와 선택적 network, addressTag, withdrawOrderId 및 추가 매개변수를 포함하여 /api/v3/capital/withdraw/apply를 통해 출금 요청을 제출합니다. |
| BatchOrders | 단일 요청으로 여러 심볼에 대한 배치 주문을 제출합니다. |
| GetTradeFee | 특정 심볼에 대한 거래 수수료율을 가져옵니다. |
| GetDepositHistory | 선택적 coin, status, startTime 및 endTime 필터로 입금 기록을 가져옵니다. |
| CancelWithdraw | 출금 ID로 보류 중인 출금 요청을 취소합니다. |
| CreateInternalTransfer | 계정 간 내부적으로 자산을 이체합니다. |
| GetTransferHistory | 계정 간 내부 이체 내역을 가져옵니다. |