API MEXC Futures

MEXC 的永续和交割合约提供了专用的流式 API,详见官方 期货 WebSocket 规范TsgcWSAPI_MEXC_Futures 组件封装了消费实时衍生品数据所需的连接、登录握手和主题管理。

 

MEXC 还为衍生品交易维护了一个 REST 接口。sgcHTTP_API_MEXC 中包含的 TsgcHTTP_API_MEXC_Futures 组件通过与官方端点一一对应的 HTTP 辅助方法来补充 WebSocket 数据流。

 

组件配置

Futures WebSocket 端点为 wss://contract.mexc.com/edge。消息以 JSON 对象编码,交易所要求定期发送 ping/pong 帧,这由组件自动处理。

 

要接收私有通知(订单和账户数据),您必须进行身份验证。在激活 WebSocket 客户端之前,请设置 MEXCAPI.ApiKeyMEXCAPI.ApiSecret。凭据存在时,组件将在套接字连接后立即签署登录请求(HMAC SHA256)。

 

var
  WSClient: TsgcWebSocketClient;
  Futures: TsgcWSAPI_MEXC_Futures;
begin
  WSClient := TsgcWebSocketClient.Create(nil);
  Futures := TsgcWSAPI_MEXC_Futures.Create(nil);
  Futures.Client := WSClient;
  Futures.MEXCAPI.ApiKey := 'YOUR_KEY';
  Futures.MEXCAPI.ApiSecret := 'YOUR_SECRET';
  if WSClient.Connect then
    Futures.SubscribeDepth('BTC_USDT', True);
end;

 

属性

 

事件

 

以下处理程序记录订阅确认并打印传入的深度快照:

 

procedure TMainForm.MEXCSubscribed(Sender: TObject; const aChannel, aRaw: string);
begin
  Memo1.Lines.Add('Subscribed to ' + aChannel);
end;
procedure TMainForm.MEXCMessage(Sender: TObject; const aChannel, aRaw: string);
begin
  if SameText(aChannel, 'push.depth') then
    Memo1.Lines.Add(aRaw);
end;

 

WebSocket 订阅方法

每个辅助方法将 订阅/取消订阅请求封装为官方 API 所描述的格式。使用对应的 UnSubscribe* 方法可取消流。

 

方法 参数 描述
SubscribeDeal 交易对 在合约上执行的交易(频道:deal)。
SubscribeTickers 所有合约的全局行情统计。
SubscribeTicker 交易对 单个合约的行情摘要。
SubscribeDepth Symbol, Compress 增量订单簿更新
SubscribeDepthFull Symbol, Level 可配置深度级别数的完整深度快照(默认 20)。
SubscribeKline Symbol, Interval 支持的时间框架(Min1、Min5、Min15、Min30、Min60、Hour4、Hour12、Day1、Week1、Month1)的 K 线数据。
SubscribeFundingRate 交易对 最新资金费率公告。
SubscribeIndexPrice 交易对 标的指数价格数据流。
SubscribeFairPrice 交易对 交易所推送的标记(公允)价格更新。

 

服务器确认请求时,OnMEXCSubscribed 事件将以通道名称(例如 rs.sub.depth.BTC_USDT)触发。错误通过 OnMEXCError 转发,包含服务器消息以供故障排查。

私有频道

私有通道需要有效的 API 密钥。提供凭据后,组件将自动进行身份验证。

方法 描述
SubscribePersonalOrder 个人订单更新。
SubscribePersonalOrderDeal 个人订单成交更新。
SubscribePersonalPosition 个人持仓更新。
SubscribePersonalPlanOrder 个人计划(触发器)订单更新。
SubscribePersonalStopOrder 个人止损订单更新。
SubscribePersonalStopPlanOrder 个人停止计划订单更新。
SubscribePersonalRiskLimit 个人风险限额更新。
SubscribePersonalADLLevel 个人 ADL(自动去杠杆)级别更新。
SubscribePersonalAsset 个人资产更新。

 

 

 

公开 REST 端点

公开可用的 REST 方法。

 

方法 描述
GetPing 通过 /api/v1/ping 检查 API 可达性。
GetServerTime /api/v1/time 返回服务器时间戳。
GetContracts 提供可用合约列表(/api/v1/contract/detail)。
GetDepth 通过 /api/v1/contract/depth 下载订单簿深度;使用可选 limit 参数(默认 50)选择级别数。
GetDeals 通过 /api/v1/contract/deals 检索最近的交易,可选 limit 参数(默认 100)。
GetKlines 通过 /api/v1/contract/kline 返回 K 线数据,支持可选的 startTimeendTimelimit 过滤条件(默认 200)。
GetIndexPrice 获取请求交易对的底层指数价格(/api/v1/contract/indexPrice)。
GetFairPrice /api/v1/contract/fairPrice 返回合约的公允(标记)价格。
GetFundingRate 使用 /api/v1/contract/fundingRate 报告交易对的最新资金费率。
GetAllTickers 获取所有期货合约行情及实时价格摘要。
GetFundingRateHistory 获取合约的历史资金费率记录。
GetFairPriceKline 获取合约的公允价格(标记价格)K 线/蜡烛图数据。
GetIndexPriceKline 获取某一合约的指数价格K线/蜡烛图数据。

 

私有 REST 端点

私有衍生品端点需要 API 凭据。组件会自动使用时间戳和 recvWindow 对每个请求进行签名。

 

方法 描述
GetAccountAssets /api/v1/private/account/assets 返回保证金余额。
GetPositionList 通过 /api/v1/private/position/list 列出当前持仓,可选择按 symbol 过滤。
SetPositionLeverage 更新某交易对的杠杆,如果提供了保证金模式,也一并更新。
PlaceOrder /api/v1/private/order 上下期货订单,需提供 symbolsidepositionSidetypequantity,以及可选的 priceclientOrderId 和额外参数。
CancelOrder 使用 /api/v1/private/order/cancel 通过 orderIdclientOrderId 取消特定订单。
CancelAllOrders 通过 /api/v1/private/order/cancel-all 取消某个交易对的所有未成交订单。
GetOpenOrders 通过 /api/v1/private/order/list/open 列出当前未成交订单,支持可选的品种过滤器。
GetOrderHistory 获取订单历史(/api/v1/private/order/list/history),支持可选的交易对、时间范围和条数限制参数。
GetFundingHistory /api/v1/private/account/funding 返回过去的资金支付,支持可选的 startTimeendTimelimit 过滤器。
GetOpenPositions 获取所有当前持仓。
ChangeMargin 更改某持仓的保证金金额。
GetPositionMode 获取当前持仓模式(单向或对冲模式)。
ChangePositionMode 在单向和对冲模式之间更改持仓模式。
PlaceBatchOrder 在单个批量请求中下多个期货订单。
GetOrderDetail 获取特定订单的详细信息。
GetOrderDealDetails 获取特定订单的成交/交易详情。
PlaceTriggerOrder 下达在满足条件时执行的触发(计划)订单。
CancelTriggerOrder 取消特定触发订单。
CancelAllTriggerOrders 取消所有未成交的触发委托单。
GetTriggerOrders 获取触发(计划)订单列表。
GetStopOrders 获取止损单列表。
CancelStopOrder 取消特定止损单。
CancelAllStopOrders 取消所有未结止损订单。