Kraken API Güncellemesi sgcWebSockets

· Özellikler
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.