API MEXC

MEXC는 안전한 WebSocket 연결을 통해 스트리밍 시장 및 계정 데이터를 노출하는 글로벌 암호화폐 거래소입니다.

 

WebSocket Spot API는 Market StreamsUser 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에 추가합니다.

 

TsgcWebSocketClientTsgcWSAPI_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;

 

Properties

 

Events

 

다음 샘플은 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;

 

WebSocket 구독 메서드

구성 요소는 각 공개 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을 유효성 검사합니다.

 

 

Public REST endpoints

공개적으로 사용 가능한 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 선택적 limitfromId 필터로 과거 거래 데이터를 제공합니다.
GetAggregateTrades /api/v3/aggTrades를 통해 압축/집계된 거래를 반환하며, 선택적 limit, fromId, startTimeendTime 필터를 지원합니다.
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 시세를 가져옵니다.

 

비공개 REST 엔드포인트

비공개 엔드포인트는 유효한 API 키와 서명된 쿼리 문자열을 요구합니다. 구성 요소는 timestamp, recvWindow 및 HMAC 서명을 자동으로 추가합니다.

 

Method 설명
GetAccountInformation /api/v3/account에서 잔액과 권한을 반환합니다.
GetOpenOrders 현재 미결제 주문을 나열합니다(선택적으로 심볼로 필터링).
GetAllOrders 선택적 시간 및 제한 필터로 과거 주문을 검색합니다.
GetOrder orderId 또는 origClientOrderId를 제공하여 특정 주문의 상태를 쿼리합니다.
GetMyTrades 선택적 limit, fromId, startTimeendTime 필터와 함께 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, startTimeendTime 필터로 입금 기록을 가져옵니다.
GetWithdrawHistory coin, status 및 선택적 시간 범위로 필터링된 출금 내역을 반환합니다.
Withdraw 필수 coin, addressamount와 선택적 network, addressTag, withdrawOrderId 및 추가 매개변수를 포함하여 /api/v3/capital/withdraw/apply를 통해 출금 요청을 제출합니다.
BatchOrders 단일 요청으로 여러 심볼에 대한 배치 주문을 제출합니다.
GetTradeFee 특정 심볼에 대한 거래 수수료율을 가져옵니다.
GetDepositHistory 선택적 coin, status, startTimeendTime 필터로 입금 기록을 가져옵니다.
CancelWithdraw 출금 ID로 보류 중인 출금 요청을 취소합니다.
CreateInternalTransfer 계정 간 내부적으로 자산을 이체합니다.
GetTransferHistory 계정 간 내부 이체 내역을 가져옵니다.