MEXC perpetual ve delivery kontratları, resmi Futures WebSocket belirtiminde belgelenen özel bir akış API'si sunar. TsgcWSAPI_MEXC_Futures bileşeni, gerçek zamanlı türev verilerini tüketmek için gereken bağlantıyı, login handshake'ini ve topic yönetimini kapsar.
MEXC ayrıca türev işlemleri için bir REST arayüzü de sürdürür. sgcHTTP_API_MEXC içinde yer alan TsgcHTTP_API_MEXC_Futures bileşeni, WebSocket akışlarını resmi uç noktalarla bire bir eşleşen HTTP yardımcılarıyla tamamlar.
Futures WebSocket uç noktası wss://contract.mexc.com/edge adresidir. Mesajlar JSON nesneleri olarak kodlanır ve exchange, bileşen tarafından otomatik olarak işlenen periyodik ping/pong çerçeveleri gerektirir.
Özel bildirimleri (emir ve hesap verileri) almak için kimlik doğrulaması yapmanız gerekir. WebSocket istemcisini etkinleştirmeden önce MEXCAPI.ApiKey ve MEXCAPI.ApiSecret'i ayarlayın. Kimlik bilgileri mevcut olduğunda bileşen, soket bağlanır bağlanmaz bir oturum açma isteğini (HMAC SHA256) imzalar.
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;
Aşağıdaki işleyici, abonelik onaylarını kaydeder ve gelen derinlik anlık görüntülerini yazdırır:
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;
Her yardımcı, resmi API tarafından açıklandığı gibi bir sub/unsub isteğini sarar. Akışı iptal etmek için eşleşen UnSubscribe* yöntemini kullanın.
| Yöntem | Parametreler | Açıklama |
| SubscribeDeal | Symbol | Sözleşmede gerçekleştirilen işlemler (kanal: deal). |
| SubscribeTickers | – | Tüm sözleşmeler için genel ticker istatistikleri. |
| SubscribeTicker | Symbol | Tek bir enstrüman için Ticker özeti. |
| SubscribeDepth | Symbol, Compress | Artımlı emir defteri güncellemeleri |
| SubscribeDepthFull | Symbol, Level | Yapılandırılabilir seviye sayısına sahip tam derinlik anlık görüntüleri (varsayılan 20). |
| SubscribeKline | Symbol, Interval | Desteklenen zaman dilimleri için Candlestick verileri (Min1, Min5, Min15, Min30, Min60, Hour4, Hour12, Day1, Week1, Month1). |
| SubscribeFundingRate | Symbol | En son funding rate duyuruları. |
| SubscribeIndexPrice | Symbol | Altta yatan endeks fiyatı akışı. |
| SubscribeFairPrice | Symbol | Borsa tarafından gönderilen Mark (adil) fiyat güncellemeleri. |
Sunucu bir isteği onayladığında, OnMEXCSubscribed olayı kanal adıyla (örneğin rs.sub.depth.BTC_USDT) tetiklenir. Hatalar, sorun giderme için sunucu mesajı dahil olmak üzere OnMEXCError aracılığıyla iletilir.
Özel kanallar geçerli bir API anahtarı gerektirir. Kimlik bilgileri sağlandığında bileşen otomatik olarak kimlik doğrular.
| Yöntem | Açıklama |
| SubscribePersonalOrder | Kişisel emir güncellemeleri. |
| SubscribePersonalOrderDeal | Kişisel emir gerçekleşme (fill) güncellemeleri. |
| SubscribePersonalPosition | Kişisel pozisyon güncellemeleri. |
| SubscribePersonalPlanOrder | Kişisel plan (tetikleyici) emir güncellemeleri. |
| SubscribePersonalStopOrder | Kişisel stop emri güncellemeleri. |
| SubscribePersonalStopPlanOrder | Kişisel stop plan sipariş güncellemeleri. |
| SubscribePersonalRiskLimit | Kişisel risk limiti güncellemeleri. |
| SubscribePersonalADLLevel | Kişisel ADL (otomatik kaldıraç azaltma) seviyesi güncellemeleri. |
| SubscribePersonalAsset | Kişisel varlık güncellemeleri. |
Herkese açık REST yöntemleri.
| Yöntem | Açıklama |
| GetPing | /api/v1/ping aracılığıyla API erişilebilirliğini denetler. |
| GetServerTime | /api/v1/time adresinden sunucu zaman damgasını döndürür. |
| GetContracts | Mevcut sözleşmelerin listesini sağlar (/api/v1/contract/detail). |
| GetDepth | /api/v1/contract/depth adresinden emir defteri derinliğini indirir; düzey sayısını seçmek için isteğe bağlı limit parametresini (varsayılan 50) kullanın. |
| GetDeals | İsteğe bağlı bir limit (varsayılan 100) ile /api/v1/contract/deals kullanarak son işlemleri alır. |
| GetKlines | İsteğe bağlı startTime, endTime ve limit filtreleriyle (varsayılan 200) /api/v1/contract/kline aracılığıyla mum verilerini döndürür. |
| GetIndexPrice | İstenen sembol için temel endeks fiyatını alır (/api/v1/contract/index_price). |
| GetFairPrice | /api/v1/contract/fair_price adresinden bir kontrat için fair (mark) fiyatını döndürür. |
| GetFundingRate | /api/v1/contract/funding_rate kullanarak bir sembol için en son fonlama oranını raporlar. |
| GetAllTickers | Gerçek zamanlı fiyat özetleriyle tüm futures sözleşme ticker'larını alın. |
| GetFundingRateHistory | Bir kontrat için geçmiş funding rate kayıtlarını alın. |
| GetFairPriceKline | Bir sözleşme için adil (mark) fiyat kline/mum çubuğu verisini alın. |
| GetIndexPriceKline | Bir sözleşme için endeks fiyatı kline/mum çubuğu verisini alın. |
Özel türev uç noktaları API kimlik bilgileri gerektirir. Bileşen her isteği timestamp ve recvWindow ile otomatik olarak imzalar.
Uyumluluğu bozan değişiklik: PlaceOrder ve SetPositionLeverage imzaları, MEXC tarafından yayınlanan kontrat uç noktalarıyla eşleşecek şekilde değişti, bu nedenle bunları çağıran bir uygulama güncellenene kadar derlenmeyecektir. PlaceOrder, positionSide parametresini openType ile değiştirdi ve SetPositionLeverage, uç noktanın kabul etmediği marginMode parametresini positionId, openType ve positionType ile değiştirdi. Ayrıca birkaç uç nokta adresi de düzeltildi.
| Yöntem | Açıklama |
| GetAccountAssets | /api/v1/private/account/assets adresinden margin bakiyelerini döndürür. |
| GetPositionList | /api/v1/private/position/list/history_positions aracılığıyla mevcut pozisyonları listeler. |
| SetPositionLeverage | /api/v1/private/position/change_leverage aracılığıyla bir pozisyonun kaldıracını günceller. symbol ve leverage parametrelerini, ayrıca isteğe bağlı bir positionId ile yalnızca pozisyon henüz açık değilken gereken openType (1 izole, 2 çapraz) ve positionType (1 uzun, 2 kısa) parametrelerini alır. |
| PlaceOrder | symbol, side, type, openType (1 izole, 2 çapraz), vol olarak iletilen miktar ve uç noktanın market emirleri için de zorunlu kıldığı price değeri, artı isteğe bağlı bir externalOid ve ek parametreler sağlayarak /api/v1/private/order/submit üzerine bir vadeli işlem emri verir. |
| CancelOrder | orderId veya clientOrderId ile /api/v1/private/order/cancel kullanarak belirli bir emri iptal eder. |
| CancelAllOrders | /api/v1/private/order/cancel_all aracılığıyla bir sembol için tüm açık emirleri iptal eder. |
| GetOpenOrders | İsteğe bağlı bir sembol filtresiyle /api/v1/private/order/list/open_orders aracılığıyla mevcut açık emirleri listeler. |
| GetOrderHistory | İsteğe bağlı sembol, zaman aralığı ve limit parametreleriyle sipariş geçmişini (/api/v1/private/order/list/history) alır. |
| GetFundingHistory | /api/v1/private/account/funding üzerinden, isteğe bağlı startTime, endTime ve limit filtreleriyle geçmiş funding ödemelerini döndürür. |
| GetOpenPositions | Şu anda açık olan tüm pozisyonları alın. |
| ChangeMargin | Bir pozisyon için marjin tutarını değiştirir. |
| GetPositionMode | Mevcut position mode'u (one-way veya hedge modu) alın. |
| ChangePositionMode | Pozisyon modunu tek yönlü (one-way) ve hedge modu arasında değiştirin. |
| PlaceBatchOrder | Tek bir toplu istekte birden fazla futures emri verin. |
| GetOrderDetail | Belirli bir emir için ayrıntılı bilgi alın. |
| GetOrderDealDetails | Belirli bir emir için fill/deal ayrıntılarını alın. |
| PlaceTriggerOrder | Koşullar karşılandığında yürütülen bir tetikleyici (plan) emri verin. |
| CancelTriggerOrder | Belirli bir tetikleyici emrini iptal edin. |
| CancelAllTriggerOrders | Tüm açık tetikleyici (trigger) emirlerini iptal eder. |
| GetTriggerOrders | Tetikleyici (plan) siparişlerinin listesini alın. |
| GetStopOrders | Stop emirlerinin listesini alın. |
| CancelStopOrder | Belirli bir stop emrini iptal eder. |
| CancelAllStopOrders | Tüm açık stop emirlerini iptal eder. |