Delphi'de Kraken Spot ve Futures API Entegrasyonu
Kraken, hem spot hem de vadeli işlem piyasaları sunan, en uzun süredir faaliyet gösteren ve en güvenilir kripto para borsalarından biridir. Delphi için TsgcWSAPI_Kraken ve TsgcWSAPI_Kraken_Futures bileşenleri, Kraken'in WebSocket ve REST API'lerine tam erişim sağlar; tek bir kod tabanından gerçek zamanlı piyasa verisi akışı, hesap yönetimi, emir verme ve vadeli işlem yapma olanağı tanır.
İçindekiler
Genel Bakış
Kraken'in API'si, her birinin kendi bileşeni olan iki ayrı platforma bölünmüştür:
| Bileşen |
Piyasa |
Açıklama |
TsgcWSAPI_Kraken |
Spot |
WebSocket ve REST desteğiyle Kraken'in spot borsasında kripto paralar alıp satın |
TsgcWSAPI_Kraken_Futures |
Vadeli İşlem |
Kaldıraçlı pozisyonlarla sürekli ve sabit vadeli vadeli işlem sözleşmeleri alıp satın |
Her iki bileşen de iki kanallı bir yaklaşım sağlar: düşük gecikmeli gerçek zamanlı veri akışı için WebSocket bağlantıları ve bakiye sorgulama, emir verme ve geçmiş verileri alma gibi istek/yanıt işlemleri için REST uç noktaları.
Yapılandırma
Hem Spot hem de Vadeli İşlem bileşenleri, özel (kimlik doğrulamalı) işlemler için API kimlik bilgileri gerektirir. Piyasa verileri gibi herkese açık uç noktalar kimlik doğrulaması gerektirmez.
| Özellik |
Tür |
Açıklama |
Kraken.ApiKey |
String |
Kraken hesap ayarları sayfasından oluşturulan Kraken API anahtarınız |
Kraken.ApiSecret |
String |
Özel istekleri imzalamak için kullanılan Kraken API secret'ınız |
Not: API anahtarlarınızı
kraken.com > Security > API adresinden oluşturun. Yalnızca uygulamanızın gerektirdiği izinleri atayın. Salt okunur gösterge panoları için işlem ve para çekme izinlerini tamamen devre dışı bırakın.
Spot WebSocket API
Spot WebSocket API'si, piyasa verileri ve özel hesap olayları için gerçek zamanlı akış sağlar. Metotlar, herkese açık kanallar (kimlik doğrulaması gerekmez) ve özel kanallar (geçerli bir WebSocket belirteci gerektirir) olarak ikiye ayrılır.
Herkese Açık Kanallar
| Metot |
Açıklama |
SubscribeTicker / UnSubscribeTicker |
En iyi alış/satış, 24 saatlik hacim ve fiyat istatistikleri dahil gerçek zamanlı ticker bilgisi |
SubscribeOHLC / UnSubscribeOHLC |
Yapılandırılabilir aralıklarda gerçek zamanlı OHLC (mum çubuğu) verisi |
SubscribeTrade / UnSubscribeTrade |
Borsadaki her işlemi gösteren gerçek zamanlı işlem yürütme akışı |
SubscribeBook / UnSubscribeBook |
Yapılandırılabilir derinlikte emir defteri anlık görüntüleri ve artımlı güncellemeler |
SubscribeSpread / UnSubscribeSpread |
Gerçek zamanlı en iyi alış/satış spread güncellemeleri |
SubscribeAll / UnSubscribeAll |
Belirli bir parite için tüm herkese açık kanallara aynı anda abone olun veya abonelikten çıkın |
Özel Kanallar
| Metot |
Açıklama |
SubscribeOwnTrades / UnSubscribeOwnTrades |
Kendi yürütülen işlemlerinizin gerçek zamanlı akışı |
SubscribeOpenOrders / UnSubscribeOpenOrders |
Açık emirleriniz hakkında gerçek zamanlı güncellemeler (yeni, değiştirilmiş, iptal edilmiş, gerçekleşmiş) |
AddOrder |
WebSocket aracılığıyla yeni bir emir verin (REST'ten daha düşük gecikme) |
CancelOrder |
WebSocket aracılığıyla mevcut bir emri iptal edin |
// Subscribe to public ticker data for BTC/USD
oKraken.SubscribeTicker('XBT/USD');
// Subscribe to the order book with 10-level depth
oKraken.SubscribeBook('XBT/USD');
// Subscribe to real-time trades
oKraken.SubscribeTrade('ETH/USD');
// Subscribe to private channels (requires API key)
oKraken.SubscribeOwnTrades;
oKraken.SubscribeOpenOrders;
Spot REST API
Spot REST API'sine TsgcWSAPI_Kraken bileşeninin REST_API özelliği aracılığıyla erişilir. Piyasa verisi sorguları, hesap yönetimi, işlem ve fon işlemleri için kapsamlı bir uç nokta seti sağlar.
Herkese Açık REST Metotları
| Metot |
Açıklama |
GetServerTime |
Sunucunun mevcut zamanını döndürür (saat senkronizasyonu için kullanışlıdır) |
GetAssets |
Mevcut tüm varlıkları ve özelliklerini listeler (ondalıklar, görünen ad) |
GetAssetPairs |
Ücret yapısı ve teminat bilgisiyle birlikte tüm işlem yapılabilir varlık paritelerini listeler |
GetTicker |
Bir veya daha fazla parite için ticker verisi döndürür (alış, satış, son, hacim, VWAP) |
GetOHLC |
Belirli bir parite ve aralık için OHLC mum verisi döndürür |
GetOrderBook |
Belirli bir parite için belirtilen derinlikte mevcut emir defterini döndürür |
GetTrades |
Belirli bir parite için son işlemleri döndürür |
GetSpread |
Belirli bir parite için son spread verisini döndürür |
Özel REST Metotları - Hesap ve İşlem
| Metot |
Açıklama |
GetAccountBalance |
Hesabınızdaki tüm varlıkların bakiyelerini döndürür |
GetTradeBalance |
İşlem bakiyesi bilgisi döndürür (özkaynak, teminat, serbest teminat, kâr/zarar) |
GetOpenOrders |
Şu anda açık olan tüm emirleri döndürür |
GetClosedOrders |
Yakın zamanda kapatılan emirleri döndürür |
QueryOrders |
İşlem kimliğine göre belirli emirleri sorgular |
GetTradesHistory |
İşlem geçmişinizi döndürür |
QueryTrades |
İşlem kimliğine göre belirli işlemleri sorgular |
GetLedgers |
Defter kayıtlarını döndürür (yatırmalar, çekmeler, işlemler, ücretler) |
QueryLedgers |
Kimliğe göre belirli defter kayıtlarını sorgular |
GetTradeVolume |
30 günlük işlem hacminizi ve ücret kademenizi döndürür |
AddOrder |
REST aracılığıyla yeni bir emir verin |
CancelOrder |
REST aracılığıyla mevcut bir emri iptal edin |
GetWebSocketsToken |
Özel WebSocket abonelikleri için gereken bir belirteç oluşturur |
Özel REST Metotları - Dışa Aktarma ve Raporlama
| Metot |
Açıklama |
AddExport |
Bir veri dışa aktarımı isteyin (işlemler veya defter kayıtları) |
ExportStatus |
Bekleyen bir dışa aktarma isteğinin durumunu kontrol edin |
RetrieveExport |
Tamamlanmış bir dışa aktarma dosyasını indirin |
RemoveExport |
Bir dışa aktarma raporunu silin |
Özel REST Metotları - Fon
| Metot |
Açıklama |
GetDepositMethods |
Belirli bir varlık için mevcut yatırma yöntemlerini döndürür |
GetDepositAddresses |
Belirli bir varlık ve yöntem için yatırma adreslerini döndürür |
GetStatusOfRecentDeposits |
Son yatırma işlemlerinin durumunu döndürür |
GetWithdrawalInformation |
Belirli bir varlık için para çekme ayrıntılarını döndürür (ücret, minimum, limit) |
WithdrawFunds |
Harici bir adrese para çekme işlemi başlatın |
GetStatusOfRecentWithdraws |
Son para çekme işlemlerinin durumunu döndürür |
RequestWithdrawalCancelation |
Bekleyen bir para çekme işlemini iptal etmeyi deneyin |
RequestWalletTransfer |
Kraken cüzdanları arasında fon aktarın (örneğin spot'tan vadeli işleme) |
// Public REST: Get ticker data
ShowMessage(oKraken.REST_API.GetTicker('XBTUSD'));
// Public REST: Get OHLC data
ShowMessage(oKraken.REST_API.GetOHLC('XBTUSD'));
// Private REST: Get account balance
ShowMessage(oKraken.REST_API.GetAccountBalance);
// Private REST: Get open orders
ShowMessage(oKraken.REST_API.GetOpenOrders);
Vadeli İşlem WebSocket API
TsgcWSAPI_Kraken_Futures bileşeni, sürekli sözleşmeler ve sabit vadeli vadeli işlemler dahil olmak üzere Kraken'in vadeli işlem piyasaları için gerçek zamanlı akış sağlar.
Herkese Açık Kanallar
| Metot |
Açıklama |
SubscribeTicker / UnSubscribeTicker |
İşaret fiyatı, endeks fiyatı ve fonlama oranı dahil gerçek zamanlı vadeli işlem ticker verisi |
SubscribeTrade / UnSubscribeTrade |
Vadeli işlem piyasaları için gerçek zamanlı işlem yürütme akışı |
SubscribeBook / UnSubscribeBook |
Vadeli işlem sözleşmeleri için emir defteri anlık görüntüleri ve artımlı güncellemeler |
SubscribeHeartBeat / UnSubscribeHeartBeat |
Periyodik heartbeat mesajları aracılığıyla bağlantı sağlığı izleme |
SubscribeTickerLite / UnSubscribeTickerLite |
Yüksek frekanslı izleme için azaltılmış yüke sahip hafif ticker |
Özel Kanallar
| Metot |
Açıklama |
SubscribeOpenOrdersVerbose / UnSubscribeOpenOrdersVerbose |
Tam emir bilgisiyle ayrıntılı gerçek zamanlı açık emir güncellemeleri |
SubscribeOpenPositions / UnSubscribeOpenPositions |
Açık vadeli işlem pozisyonları hakkında gerçek zamanlı güncellemeler |
SubscribeAccountLog / UnSubscribeAccountLog |
Gerçek zamanlı hesap etkinlik günlüğü (fonlama, tasfiyeler vb.) |
SubscribeFills / UnSubscribeFills |
Vadeli işlem emirleriniz için gerçek zamanlı gerçekleşme bildirimleri |
SubscribeOpenOrders / UnSubscribeOpenOrders |
Hafif açık emir durumu güncellemeleri |
SubscribeAccountBalanceAndMargins / UnSubscribeAccountBalanceAndMargins |
Vadeli işlem hesabınız için gerçek zamanlı bakiye ve teminat güncellemeleri |
SubscribeNotifications / UnSubscribeNotifications |
Hesabınız için sistem bildirimleri ve uyarıları |
Vadeli İşlem REST API
Vadeli İşlem REST API'sine TsgcWSAPI_Kraken_Futures'in REST_API özelliği aracılığıyla erişilir. Piyasa verileri, emir yönetimi, hesap sorguları ve fon transferleri için uç noktalar sağlar.
Herkese Açık REST Metotları
| Metot |
Açıklama |
GetFeeSchedules |
Vadeli işlemler için mevcut ücret programını döndürür |
GetHistory |
Vadeli işlem sözleşmeleri için geçmiş piyasa verisi döndürür |
GetInstruments |
Mevcut tüm vadeli işlem enstrümanlarını ve sözleşme özelliklerini listeler |
GetTickers |
Tüm vadeli işlem sözleşmeleri için ticker verisi döndürür |
Özel REST Metotları - Hesap ve Emirler
| Metot |
Açıklama |
GetAccounts |
Vadeli işlem hesap bakiyelerini ve teminat bilgilerini döndürür |
GetFills |
Vadeli işlem emirleriniz için son gerçekleşme geçmişini döndürür |
GetHistoricalExecutions |
Geçmiş emir yürütmelerini döndürür |
GetHistoricalOrders |
Geçmiş emir verisini döndürür |
GetHistoricalTriggers |
Koşullu emirler için geçmiş tetikleme olaylarını döndürür |
GetOpenPositions |
Şu anda açık olan tüm vadeli işlem pozisyonlarını döndürür |
GetNotifications |
Hesap bildirimlerini döndürür |
Özel REST Metotları - Emir Yönetimi
| Metot |
Açıklama |
SendMarketOrder |
Mevcut en iyi fiyattan bir piyasa emri verin |
SendLimitOrder |
Belirtilen bir fiyattan bir limit emri verin |
SendStopOrder |
Belirtilen bir fiyatta tetiklenen bir stop emri verin |
SendTakeProfit |
Bir kâr al (take-profit) emri verin |
CancelAllOrders |
Tüm açık vadeli işlem emirlerini aynı anda iptal edin |
CancelOrderByOrderId |
Kraken'in emir kimliğini kullanarak belirli bir emri iptal edin |
CancelOrderByCliOrderId |
İstemci emir kimliğinizi kullanarak belirli bir emri iptal edin |
EditOrderByOrderId |
Kraken'in emir kimliğini kullanarak mevcut bir emri değiştirin |
EditOrderByCliOrderId |
İstemci emir kimliğinizi kullanarak mevcut bir emri değiştirin |
Özel REST Metotları - Transferler ve Raporlama
| Metot |
Açıklama |
Transfer |
Vadeli işlem alt hesapları arasında fon aktarın |
WalletTransfer |
Cüzdan türleri arasında transfer yapın |
SubAccountTransfer |
Alt hesaplar arasında transfer yapın |
WithdrawalToSpotWallet |
Fonları vadeli işlem cüzdanından tekrar spot cüzdana taşıyın |
GetFeeScheduleVolumes |
Ücret kademesi hesaplaması için hacminizi döndürür |
GetAccountLogCSV |
Hesap etkinlik günlüğünü CSV dosyası olarak indirin |
Tam Kod Örneği
Aşağıdaki örnek, Kraken Spot API'sine bağlanmayı, REST aracılığıyla piyasa verisi getirmeyi, hesap bakiyenizi sorgulamayı ve WebSocket aracılığıyla gerçek zamanlı bir ticker akışına abone olmayı gösterir.
var
oClient: TsgcWebSocketClient;
oKraken: TsgcWSAPI_Kraken;
begin
// Create and configure the WebSocket client
oClient := TsgcWebSocketClient.Create(nil);
oKraken := TsgcWSAPI_Kraken.Create(nil);
oKraken.Client := oClient;
// Configure API credentials for private endpoints
oKraken.Kraken.ApiKey := 'your_api_key';
oKraken.Kraken.ApiSecret := 'your_api_secret';
// Connect to Kraken
oClient.Active := True;
// REST: Get ticker data for BTC/USD
ShowMessage(oKraken.REST_API.GetTicker('XBTUSD'));
// REST: Get account balance (requires API key)
ShowMessage(oKraken.REST_API.GetAccountBalance);
// WebSocket: Subscribe to real-time ticker
oKraken.SubscribeTicker('XBT/USD');
end;
Vadeli İşlem Örneği
Vadeli İşlem bileşenini kurmak aynı kalıbı izler; bunun yerine TsgcWSAPI_Kraken_Futures kullanılır:
var
oClient: TsgcWebSocketClient;
oFutures: TsgcWSAPI_Kraken_Futures;
begin
oClient := TsgcWebSocketClient.Create(nil);
oFutures := TsgcWSAPI_Kraken_Futures.Create(nil);
oFutures.Client := oClient;
// Configure API credentials
oFutures.Kraken.ApiKey := 'your_futures_api_key';
oFutures.Kraken.ApiSecret := 'your_futures_api_secret';
oClient.Active := True;
// REST: Get all available futures instruments
ShowMessage(oFutures.REST_API.GetInstruments);
// REST: Get account information
ShowMessage(oFutures.REST_API.GetAccounts);
// WebSocket: Subscribe to futures ticker
oFutures.SubscribeTicker('PI_XBTUSD');
// WebSocket: Subscribe to private account updates
oFutures.SubscribeOpenPositions;
oFutures.SubscribeAccountBalanceAndMargins;
end;
Notlar ve En İyi Uygulamalar
Spot ve Vadeli İşlem API Anahtarları Karşılaştırması
Kraken, spot ve vadeli işlemler için ayrı API anahtarları kullanır. Her platform için Kraken ayarlar sayfasından özel anahtarlar oluşturun. Aynı anahtarı her iki bileşende yeniden kullanmayın.
Özel Kanallar için WebSocket Belirteci
Spot borsasındaki özel WebSocket abonelikleri, GetWebSocketsToken REST metodu aracılığıyla edinilen geçici bir belirteç gerektirir. Bileşen, API kimlik bilgileri yapılandırıldığında bunu otomatik olarak halleder, ancak belirteçlerin süresinin dolduğunu ve gerektiğinde yenileneceğini unutmayın.
Hız Sınırları
Kraken, hem REST hem de WebSocket API'lerinde hız sınırları uygular. REST uç noktaları, her çağrının bir sayacı artırdığı ve sayacın zamanla azaldığı sayaç tabanlı bir sistem kullanır. Sınırın aşılması geçici kilitlenmeyle sonuçlanır. REST uç noktalarını yoklamak yerine gerçek zamanlı veriler için WebSocket aboneliklerini kullanın.
Varlık Paritesi Adlandırma
Not: Kraken, REST ve WebSocket API'leri için farklı adlandırma kuralları kullanır. REST uç noktaları genellikle
XBTUSD gibi birleştirilmiş adlar kullanırken, WebSocket kanalları eğik çizgiyle ayrılmış
XBT/USD biçimini kullanır. Bileşen bu ayrımı halleder, ancak yanıtları işlerken bunu aklınızda bulundurun. Mevcut tüm pariteler için tam adları keşfetmek üzere
GetAssetPairs kullanın.