MEXC, akış halindeki piyasa ve hesap verilerini güvenli WebSocket bağlantıları üzerinden sunan global bir kripto para borsasıdır.
WebSocket Spot API, Market Streams ve User Data Streams belgelerinde yayınlanan belirtimleri izler. Piyasa kanalları Protocol Buffers çerçeveleri olarak teslim edilirken özel akışlar JSON kullanır. TsgcWSAPI_MEXC bileşeni bağlantı yaşam döngüsünü, kimlik doğrulamayı ve listen key bakımını yönetir, böylece uygulamalar gönderilen verileri işlemeye odaklanabilir.
WebSocket üzerinden streaming'in yanı sıra, araç seti tam Spot HTTP API'sini de sunar. TsgcHTTP_API_MEXC_Spot bileşeni (birim sgcHTTP_API_MEXC) her resmi REST uç noktasını sarmalar, böylece uygulamalar piyasa verilerini sorgulayabilir veya imzalı isteklerle işlem yapabilir.
Temel WebSocket uç noktası wss://wbs-api.mexc.com/ws adresidir. MEXCUserDataStreams.UserStream etkinleştirildiğinde ve geçerli bir API anahtarı sağlandığında, bileşen otomatik olarak bir listen key ister ve bunu bağlantı URL'sine ekler.
Forma bir TsgcWebSocketClient ve bir TsgcWSAPI_MEXC bileşeni bırakın (veya kodda oluşturun), istemci örneğini API bileşenine atayın ve oturumu başlatmak için istemciyi etkinleştirin.
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;
Aşağıdaki örnek, bir işlem çerçevesinin (trade frame) kodunun nasıl çözüleceğini gösterir:
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;
Bileşen, her genel Spot kanalı için yardımcılar sunar. Veri stream'lemeye başlamak için Subscribe* yöntemini ve durdurmak için ilgili UnSubscribe* yöntemini çağırın.
| Yöntem | Parametreler | Açıklama |
| SubscribeTrade | Symbol, Interval (ms) | Protobuf publicdeals olarak teslim edilen toplu işlem yürütmeleri. |
| SubscribeKline | Symbol, Interval | Yapılandırılabilir aralıklar (1 dakikadan 1 aya) için mum çubuğu (candlestick) güncellemeleri. |
| SubscribeDiffDepth | Symbol, Interval (ms) | Yerel emir defteri bakımı için emir defteri artımlı derinlik delta'ları. |
| SubscribeBookDepth | Symbol, Levels | İstenen derinlikte limit emir defterinin periyodik anlık görüntüleri (varsayılan 5). |
| SubscribeBookTicker | Symbol, Interval (ms) | Tek bir ticaret çifti için en iyi bid/ask güncellemeleri. |
| SubscribeBookTickerBatch | UTC bayrağı | Birden çok sembol için toplanmış book ticker güncellemeleri. |
| SubscribeMiniTickers | UTC bayrağı | Tüm etkin enstrümanlar için kayan 24 saatlik mini ticker istatistikleri. |
| SubscribeMiniTicker | Sembol, UTC bayrağı | Tek bir sembol için mini ticker. |
Private konular geçerli bir API anahtarı gerektirir. Bileşen, etkin listen key kullanarak abone olur ve periyodik olarak yeniler.
| Yöntem | Açıklama |
| SubscribeAccountUpdate | Hesap bakiyesi ve pozisyon değişiklikleri. |
| SubscribeAccountDeals | Gerçekleştirilen emirler için yürütme raporları. |
| SubscribeAccountOrders | Emir yaşam döngüsü güncellemeleri (yeni, iptal edilmiş, reddedilmiş, vb.). |
Bir akışı sonlandırmak için ilgili UnSubscribe* yöntemlerini kullanın. Bileşen, bağlantıyı izlemek için otomatik olarak PING komutları gönderir ve döndürülen PONG'u doğrular.
Herkese açık REST yöntemleri.
| Yöntem | Açıklama |
| Ping | /api/v3/ping çağıran ve borsa boş bir nesneyle yanıt verdiğinde True döndüren bağlantı kontrolü. |
| GetServerTime | /api/v3/time öğesinden geçerli borsa zaman damgasını alır. |
| GetExchangeInformation | /api/v3/exchangeInfo'dan trading kurallarını ve sembol metadata'sını döndürür. |
| GetOrderBook | /api/v3/depth öğesinden order book anlık görüntülerini indirir; düzey sayısını kontrol etmek için isteğe bağlı limit parametresini ayarlayın (varsayılan 100). |
| GetTrades | İsteğe bağlı bir limit (varsayılan 100) ile /api/v3/trades'ten son genel işlemleri alır. |
| GetHistoricalTrades | İsteğe bağlı limit ve fromId filtreleriyle geçmiş işlem verileri sağlar. |
| GetAggregateTrades | İsteğe bağlı limit, fromId, startTime ve endTime filtrelerini destekleyerek /api/v3/aggTrades aracılığıyla sıkıştırılmış/toplanmış işlemleri döndürür. |
| GetKlines | /api/v3/klines adresinden mum çubuklarını indirir, zaman aralığı ve limit filtrelerini destekler. |
| GetAveragePrice | /api/v3/avgPrice'den mevcut ağırlıklı ortalama fiyatı döndürür. |
| Get24hrTicker | /api/v3/ticker/24hr aracılığıyla bir veya tüm semboller için 24 saatlik ticker istatistiklerini alır. |
| GetPriceTicker | /api/v3/ticker/price kullanarak en son fiyatı getirir; her işlem çifti için fiyatları almak üzere boş bir sembol geçirin. |
| GetBookTicker | Tek sembol veya tüm borsa istekleri desteğiyle /api/v3/ticker/bookTicker adresinden en iyi alış/satış tekliflerini alır. |
Özel uç noktalar geçerli API anahtarları ve imzalı bir sorgu dizesi gerektirir. Bileşen, zaman damgasını, recvWindow ve HMAC imzasını otomatik olarak ekler.
| Yöntem | Açıklama |
| GetAccountInformation | /api/v3/account'tan bakiyeleri ve izinleri döndürür. |
| GetOpenOrders | Mevcut açık emirleri listeler (isteğe bağlı olarak sembole göre filtrelenir). |
| GetAllOrders | İsteğe bağlı zaman ve limit filtreleriyle tarihsel siparişleri alır. |
| GetOrder | orderId veya origClientOrderId sağlayarak belirli bir emrin durumunu sorgular. |
| GetMyTrades | İsteğe bağlı limit, fromId, startTime ve endTime filtreleriyle özel işlem yürütmelerini listeler. |
| NewOrder | İsteğe bağlı timeInForce, quantity, quoteOrderQty, price, newClientOrderId, stopPrice, icebergQty ve ekstra parametrelerle /api/v3/order üzerinde canlı bir emir (market, limit, stop, vb.) verir. |
| TestNewOrder | NewOrder ile aynı parametre kümesini kabul ederek /api/v3/order/test adresine yalnızca doğrulama isteği gönderir. |
| CancelOrder | orderId veya origClientOrderId kullanarak /api/v3/order üzerinde belirli bir emri iptal eder. |
| CancelAllOrders | Bir sembol için tüm açık emirleri /api/v3/openOrders aracılığıyla toplu olarak iptal eder. |
| GetSubAccounts | Yönetilen alt hesapları listeler (/api/v3/sub-account/list). |
| GetSubAccountAssets | Belirli bir alt hesap için bakiyeleri döndürür. |
| TransferSubAccount | /api/v3/sub-account/transfer aracılığıyla alt hesaplar arasında varlık transferi yapar; tutarı ve isteğe bağlı olarak transfer type değerini sağlayın. |
| GetDepositAddress | İsteğe bağlı bir network filtresiyle yatırma adreslerini ister. |
| GetDepositHistory | İsteğe bağlı coin, status, startTime ve endTime filtreleriyle para yatırma kayıtlarını alır. |
| GetWithdrawHistory | coin, status ve isteğe bağlı zaman aralığına göre filtrelenmiş para çekme geçmişini döndürür. |
| Withdraw | Zorunlu coin, address ve amount ile isteğe bağlı network, addressTag, withdrawOrderId ve ek parametreler dahil olmak üzere /api/v3/capital/withdraw/apply aracılığıyla bir çekim isteği gönderir. |
| BatchOrders | Birden çok sembol için tek bir istekte toplu (batch) emirler gönderin. |
| GetTradeFee | Belirli bir sembol için işlem ücreti oranını alın. |
| GetDepositHistory | İsteğe bağlı coin, status, startTime ve endTime filtreleriyle para yatırma kayıtlarını alır. |
| CancelWithdraw | Çekim Kimliğine göre bekleyen bir çekim talebini iptal edin. |
| CreateInternalTransfer | Hesaplar arasında dahili olarak varlık aktarın. |
| GetTransferHistory | Hesaplar arasındaki dahili transferlerin geçmişini alın. |