Delphi'de KuCoin Spot ve Futures API Entegrasyonu
TsgcWSAPI_Kucoin ve TsgcWSAPI_Kucoin_Futures bileşenleri; gerçek zamanlı WebSocket piyasa verilerini, özel hesap akışlarını ve alım satım, para çekme ve piyasa sorguları için eksiksiz bir REST API'yi kapsayan KuCoin borsasına kapsamlı Delphi erişimi sağlar. Bu kılavuz, hem spot hem de futures genelinde mevcut her metodu yapılandırma ayrıntıları ve çalışan kod örnekleriyle birlikte kapsar.
İçindekiler
Spot WebSocket API
Spot WebSocket API, piyasa verileri ve özel hesap olayları için gerçek zamanlı akış sağlar. Genel kanallar kimlik doğrulama olmadan kullanılabilirken, özel kanallar geçerli API kimlik bilgileri gerektirir.
Genel Kanallar
Genel kanallar, kimlik doğrulama gerektirmeden bağlı tüm istemcilere piyasa verilerini akıtır. Her abone olma metodunun, karşılık gelen bir abonelikten çıkma metodu vardır.
| Metot |
Açıklama |
SubscribeSymbolTicker |
Belirli bir alım satım sembolü için gerçek zamanlı ticker güncellemelerine abone olur. |
SubscribeAllSymbolsTicker |
Borsadaki tüm semboller için ticker güncellemelerine abone olur. |
SubscribeSymbolSnapshot |
24 saatlik istatistikler dahil olmak üzere belirli bir sembolün anlık görüntü verilerine abone olur. |
SubscribeMarketSnapshot |
Piyasa geneli anlık görüntü güncellemelerine abone olur. |
SubscribeLevel2MarketData |
Level 2 emir defteri değişikliklerine (tam derinlik) abone olur. |
SubscribeLevel2_5BestAskBid |
Emir defterinin en iyi 5 alış ve satış seviyesine abone olur. |
SubscribeLevel2_50BestAskBid |
Emir defterinin en iyi 50 alış ve satış seviyesine abone olur. |
SubscribeKlines |
Bir sembol için belirtilen aralıkta mum/kline verilerine abone olur. |
SubscribeMatchExecutionData |
Bir sembol üzerindeki işlemler için gerçek zamanlı eşleşme/gerçekleşme verilerine abone olur. |
SubscribeIndexPrice |
Bir sembol için endeks fiyatı güncellemelerine abone olur. |
SubscribeMarkPrice |
Bir sembol için işaret fiyatı güncellemelerine abone olur. |
SubscribeOrderBookChanged |
Bir sembol için emir defteri değişiklik olaylarına abone olur. |
Not: Yukarıda listelenen her Subscribe metodunun, o kanal için güncelleme almayı durdurmak üzere karşılık gelen bir
UnSubscribe eşi vardır (örneğin
UnSubscribeSymbolTicker).
Özel Kanallar
Özel kanallar geçerli API kimlik bilgileri gerektirir ve emirleriniz, bakiyeleriniz, pozisyonlarınız ve marj etkinliğiniz hakkında gerçek zamanlı güncellemeler sağlar.
| Metot |
Açıklama |
SubscribeTradeOrders |
Alım satım emirlerinizdeki (açık, gerçekleşmiş, iptal edilmiş) gerçek zamanlı güncellemelere abone olur. |
SubscribeAccountBalance |
Gerçek zamanlı hesap bakiyesi değişikliklerine abone olur. |
SubscribePositionStatus |
Marjlı alım satım için pozisyon durumu güncellemelerine abone olur. |
SubscribeMarginTradeOrders |
Marjlı alım satım emri güncellemelerine abone olur. |
SubscribeStopOrder |
Stop emri tetikleme ve durum güncellemelerine abone olur. |
Spot REST API
Spot REST API'ye TsgcWSAPI_Kucoin bileşeninin REST_API özelliği üzerinden erişilir. Tüm metotlar JSON dizeleri döndürür. API; hesapları, para çekme işlemlerini, emir yönetimini, stop emirlerini ve piyasa verilerini kapsar.
Hesaplar
| Metot |
Açıklama |
GetAccounts |
Tüm hesapların (ana, alım satım, marj) bir listesini döndürür. |
GetAccount |
Hesap kimliğine göre belirli bir hesabın ayrıntılarını döndürür. |
GetAccountBalanceSubAccount |
Bir alt hesabın bakiyesini döndürür. |
InnerTransfer |
Dahili hesaplarınız arasında (örneğin ana hesaptan alım satım hesabına) fon aktarır. |
Para Çekme İşlemleri
| Metot |
Açıklama |
GetWithdrawalsList |
Son para çekme kayıtlarının bir listesini döndürür. |
GetHistoricalWithdrawalsList |
Yakın dönemin ötesindeki geçmiş para çekme kayıtlarını döndürür. |
GetWithdrawalsQuotas |
Belirli bir para birimi için para çekme kotasını ve limitlerini döndürür. |
ApplyWithdraw |
Harici bir adrese para çekme işlemi başlatır. |
CancelWithdraw |
Kimliğine göre bekleyen bir para çekme işlemini iptal eder. |
Emirler
| Metot |
Açıklama |
PlaceOrder |
Yeni bir spot emri (piyasa veya limit, alış veya satış) verir. |
PlaceMarginOrder |
Ödünç alınan fonlarla bir marj emri verir. |
CancelOrderByClientOid |
İstemci tarafından atanan emir kimliğini kullanarak bir emri iptal eder. |
GetOrder |
Borsa tarafından atanan kimliğine göre belirli bir emrin ayrıntılarını döndürür. |
GetOrderByClientOid |
İstemci tarafından atanan kimliğine göre belirli bir emrin ayrıntılarını döndürür. |
ListFills |
Gerçekleşen emirlerin (işlem gerçekleşmeleri) bir listesini döndürür. |
GetRecentFills |
En son gerçekleşme kayıtlarını döndürür. |
Stop Emirleri
| Metot |
Açıklama |
PlaceStopOrder |
Stop fiyatına ulaşıldığında tetiklenen bir stop emri verir. |
PlaceStopMarketOrder |
Tetiklendiğinde piyasa fiyatından gerçekleşen bir stop-market emri verir. |
PlaceStopLimitOrder |
Tetiklendiğinde bir limit emri oluşturan bir stop-limit emri verir. |
CancelStopOrder |
Borsa tarafından atanan kimliğine göre bir stop emrini iptal eder. |
CancelStopOrderByClientOid |
İstemci tarafından atanan kimliğine göre bir stop emrini iptal eder. |
CancelAllStopOrders |
İsteğe bağlı olarak sembole göre filtrelenmiş tüm aktif stop emirlerini iptal eder. |
GetStopOrder |
Borsa tarafından atanan kimliğine göre belirli bir stop emrinin ayrıntılarını döndürür. |
GetStopOrderByClientOid |
İstemci tarafından atanan kimliğine göre belirli bir stop emrinin ayrıntılarını döndürür. |
ListStopOrders |
Tüm aktif stop emirlerinin bir listesini döndürür. |
Piyasa Verileri
| Metot |
Açıklama |
GetSymbolList |
Mevcut alım satım sembollerinin bir listesini döndürür. |
GetAllTickers |
Tüm alım satım çiftleri için ticker verilerini döndürür. |
GetMarketList |
Mevcut piyasaların bir listesini döndürür. |
GetPartOrderBook100 |
Bir sembol için emir defterinin en iyi 100 kaydını döndürür. |
GetFullOrderBook |
Bir sembol için tam emir defterini (Level 3 verileri) döndürür. |
GetHistories |
Bir sembol için son işlem geçmişini döndürür. |
GetKLines |
Bir sembol için belirli bir aralıkta mum/kline verilerini döndürür. |
GetCurrencies |
Desteklenen tüm para birimlerinin bir listesini döndürür. |
GetCurrencyDetail |
Belirli bir para biriminin ayrıntılarını (zincir bilgisi, hassasiyet vb.) döndürür. |
GetFiatPrice |
Belirtilen para birimleri için fiat fiyatını (örneğin BTC'nin USD değeri) döndürür. |
Futures WebSocket API
Futures WebSocket API, TsgcWSAPI_Kucoin_Futures tarafından sağlanır ve futures sözleşme verileri ile özel hesap olayları için gerçek zamanlı akış sunar.
Genel Kanallar
| Metot |
Açıklama |
SubscribeSymbolTickerV2 |
Bir futures sözleşme sembolü için V2 ticker güncellemelerine abone olur. |
SubscribeSymbolTicker |
Bir futures sözleşme sembolü için ticker güncellemelerine abone olur. |
SubscribeLevel2MarketData |
Bir futures sözleşmesi için Level 2 emir defteri verilerine abone olur. |
SubscribeExecutionData |
Futures işlemleri için gerçek zamanlı eşleşme/gerçekleşme verilerine abone olur. |
SubscribeLevel2_5BestAskBid |
Bir futures sözleşmesi için en iyi 5 alış/satış seviyesine abone olur. |
SubscribeLevel2_50BestAskBid |
Bir futures sözleşmesi için en iyi 50 alış/satış seviyesine abone olur. |
SubscribeContractMarketData |
Sözleşme düzeyinde piyasa verilerine (fonlama oranı, işaret fiyatı vb.) abone olur. |
SubscribeSystemAnnouncements |
Sistem geneli duyurulara ve bakım bildirimlerine abone olur. |
SubscribeTransactionStatistics |
Bir futures sözleşmesi için toplu işlem istatistiklerine abone olur. |
Not: Futures tablolarında listelenen her Subscribe metodunun, o kanal için güncelleme almayı durdurmak üzere karşılık gelen bir
UnSubscribe eşi vardır.
Özel Kanallar
| Metot |
Açıklama |
SubscribeTradeOrders |
Futures alım satım emirlerinizdeki gerçek zamanlı güncellemelere abone olur. |
SubscribeStopOrder |
Futures için stop emri tetikleme ve durum güncellemelerine abone olur. |
SubscribeAccountBalance |
Gerçek zamanlı futures hesap bakiyesi değişikliklerine abone olur. |
SubscribePositionChange |
Pozisyon değişiklik olaylarına (açma, kapama, tasfiye) abone olur. |
Futures REST API
Futures REST API'ye TsgcWSAPI_Kucoin_Futures bileşeninin REST_API özelliği üzerinden erişilir. Bu metotlar; marj yönetimini, risk limitlerini, fonlama geçmişini ve emir defteri sorgularını kapsar.
| Metot |
Açıklama |
AddMarginManually |
Bir futures pozisyonuna manuel olarak marj ekler. |
ObtainFuturesRiskLimitLevel |
Bir futures sözleşmesi için geçerli risk limiti seviyesini döndürür. |
AdjustRiskLimitLevel |
Bir futures sözleşmesi için risk limiti seviyesini ayarlar. |
GetFundingHistory |
Bir futures sözleşmesi için fonlama oranı geçmişini döndürür. |
GetPartOrderBook100 |
Futures emir defterinin en iyi 100 kaydını döndürür. |
GetFullOrderBook |
Tam futures emir defterini döndürür. |
GetLevel2PullingMessages |
Artımlı emir defteri güncellemeleri için Level 2 çekme mesajlarını döndürür. |
GetInterestRateList |
Fonlama hesaplamaları için kullanılan faiz oranı listesini döndürür. |
GetIndexList |
Bir futures sözleşmesi için endeks bileşim listesini döndürür. |
Kod Örneği
Aşağıdaki örnek, spot alım satım için TsgcWSAPI_Kucoin bileşeninin nasıl oluşturulup yapılandırılacağını, API ile kimlik doğrulamayı, REST üzerinden ticker'ların nasıl alınacağını, bir emrin nasıl verileceğini ve WebSocket üzerinden gerçek zamanlı bir ticker akışına nasıl abone olunacağını gösterir.
var
oClient: TsgcWebSocketClient;
oKucoin: TsgcWSAPI_Kucoin;
begin
// Create the WebSocket client
oClient := TsgcWebSocketClient.Create(nil);
oKucoin := TsgcWSAPI_Kucoin.Create(nil);
oKucoin.Client := oClient;
// Configure API credentials
oKucoin.Kucoin.ApiKey := 'your_api_key';
oKucoin.Kucoin.ApiSecret := 'your_api_secret';
oKucoin.Kucoin.Passphrase := 'your_passphrase';
// Connect to KuCoin
oClient.Active := True;
// REST: Get all tickers
ShowMessage(oKucoin.REST_API.GetAllTickers);
// REST: Place a limit order
ShowMessage(oKucoin.REST_API.PlaceOrder(myOrder));
// WebSocket: Subscribe to BTC-USDT ticker
oKucoin.SubscribeSymbolTicker('BTC-USDT');
end;
WebSocket Olaylarını İşleme
Gelen mesajları işlemek için bir olay işleyici atayın. Olay, her güncelleme için konuyu, özneyi ve JSON verisini sağlar.
procedure TForm1.OnKucoinEvent(Sender: TObject;
const aTopic, aSubject, aData: string);
begin
// aTopic identifies the channel
// aSubject provides the specific symbol or identifier
// aData contains the JSON payload
Memo1.Lines.Add(aTopic + ' [' + aSubject + ']: ' + aData);
end;
Configuration & Notes
Yapılandırma Özellikleri
Hem TsgcWSAPI_Kucoin (spot) hem de TsgcWSAPI_Kucoin_Futures (futures), Kucoin özelliği üzerinden erişilen aynı kimlik doğrulama özelliklerini paylaşır.
| Özellik |
Tür |
Açıklama |
Kucoin.ApiKey |
String |
KuCoin API anahtarınız. Bunu KuCoin API Management sayfasından oluşturun. |
Kucoin.ApiSecret |
String |
KuCoin API gizli anahtarınız. Bu değeri güvende tutun ve istemci tarafı kodda asla açığa çıkarmayın. |
Kucoin.Passphrase |
String |
API anahtarını oluştururken belirlediğiniz parola. Tüm kimliği doğrulanmış istekler için gereklidir. |
Önemli Notlar
Güvenlik: API anahtarınızı, gizli anahtarınızı veya parolanızı asla doğrudan üretim kodunda sabit olarak yazmayın. Kimlik bilgilerini saklamak için güvenli bir yapılandırma dosyası veya ortam değişkeni kullanın.
- Spot alım satım için
TsgcWSAPI_Kucoin, futures alım satım için TsgcWSAPI_Kucoin_Futures kullanın. Her bileşen farklı bir KuCoin uç noktasına bağlanır.
Passphrase özelliği KuCoin için zorunludur ve KuCoin web sitesinde API anahtarı oluşturma sırasında belirlenir.
- Tüm REST metotları JSON dizeleri döndürür. Yanıtları ayrıştırmak için bir JSON ayrıştırıcısı (örneğin System.JSON'dan
TJSONObject) kullanın.
- Genel WebSocket kanalları kimlik doğrulama gerektirmez ve API kimlik bilgileri ayarlanmadan piyasa verileri için kullanılabilir.
- Özel WebSocket kanalları ve hesap durumunu değiştiren tüm REST metotları geçerli API kimlik bilgileri gerektirir.
- KuCoin, hem REST hem de WebSocket API'lerinde hız limitleri uygular. Güncel limitler için resmi KuCoin belgelerine başvurun.
- WebSocket bağlantıları token tabanlı bir kimlik doğrulama sistemi kullanır. Bileşen, token alımını ve yenilenmesini otomatik olarak yönetir.