CEX API Güncellemesi sgcWebSockets

· Özellikler
Delphi'de CEX.IO WebSocket API Entegrasyonu

CEX.IO, WebSocket API'si aracılığıyla gerçek zamanlı piyasa verisi ve alım satım yetenekleri sunan köklü bir kripto para borsasıdır. TsgcWSAPI_Cex bileşeni, CEX.IO'ya bağlanmak için yerel bir Delphi arayüzü sağlar ve geliştiricilerin canlı ticker güncellemelerine abone olmasına, emir defterlerini yönetmesine, emir verip iptal etmesine ve hesap pozisyonlarını işlemesine olanak tanır — tümü kalıcı bir WebSocket bağlantısı üzerinden.

İçindekiler

Genel Bakış

CEX.IO WebSocket API'si iki işlevsellik kategorisi sağlar: kimlik doğrulaması olmadan piyasa verisi akıtan genel kanallar ve alım satım ile hesap yönetimi için API anahtarı kimlik doğrulaması gerektiren özel metotlar. TsgcWSAPI_Cex bileşeni her iki kategoriyi de sarmalar ve size canlı fiyat akışlarından emir yürütmeye kadar her şeyi işleyecek tek bir Delphi bileşeni sunar.

Başlarken

CEX.IO'ya bağlanmak için forma bir TsgcWebSocketClient ve bir TsgcWSAPI_Cex bileşeni bırakın veya bunları kodda oluşturun. İstemciyi API bileşenine atayın, kimlik bilgilerinizi yapılandırın ve bağlantıyı etkinleştirin.

oClient := TsgcWebSocketClient.Create(nil);
oCex := TsgcWSAPI_Cex.Create(nil);
oCex.Client := oClient;
oCex.Cex.ApiKey := 'your_api_key';
oCex.Cex.ApiSecret := 'your_api_secret';
oClient.Active := True;
Not: Ticker abonelikleri gibi genel metotlar API kimlik bilgileri gerektirmez. ApiKey ve ApiSecret'i yalnızca emir verme veya bakiye kontrolü gibi özel (kimlik doğrulamalı) metotları kullanmayı düşünüyorsanız ayarlamanız gerekir.

Genel WebSocket Metotları

Genel metotlar, kimlik doğrulaması olmadan gerçek zamanlı piyasa verisi almanıza olanak tanır. Bunlar panolar, grafik araçları veya fiyat uyarı sistemleri oluşturmak için idealdir.

Metot Açıklama
SubscribeTickers Bir para birimi çifti için gerçek zamanlı ticker güncellemelerine abone olur (örneğin, BTC/USD).
SubscribeChart Belirli bir işlem çifti için grafik/mum verilerine abone olur.
SubscribePair Belirli bir işlem çifti için güncellemelere abone olur.
UnSubscribePair Daha önce abone olunan bir işlem çiftinden aboneliği iptal eder.
SubscribeOrderBook Bir çift için emir defteri anlık görüntülerine ve artımlı güncellemelere abone olur.
UnSubscribeOrderBook Emir defteri güncellemelerinden aboneliği iptal eder.

Tickerlara Abone Olma

SubscribeTickers metodu, bir para birimi çifti için canlı bir fiyat verisi akışı açar. İlk parametre baz para birimi, ikincisi ise teklif para birimidir.

// Subscribe to BTC/USD ticker updates
oCex.SubscribeTickers('BTC', 'USD');

Emir Defteriyle Çalışma

Emir defteri abonelikleri hem ilk anlık görüntüyü hem de sonraki artımlı güncellemeleri sunar. Veri almaya başlamak için SubscribeOrderBook'u ve artık ihtiyacınız olmadığında UnSubscribeOrderBook'u kullanın.

// Subscribe to the BTC/USD order book
oCex.SubscribeOrderBook('BTC', 'USD');
// Later, unsubscribe when no longer needed
oCex.UnSubscribeOrderBook('BTC', 'USD');

Özel WebSocket Metotları (Kimlik Doğrulamalı)

Özel metotlar, CEX.IO API anahtarınız ve secret'ınız aracılığıyla kimlik doğrulaması gerektirir. Bileşen kimlik doğrulama el sıkışmasını otomatik olarak işler, ancak herhangi bir özel metodu çağırmadan önce Authenticate'i çağırmanız gerekir.

Metot Açıklama
Authenticate API anahtarınızı ve secret'ınızı kullanarak WebSocket oturumunun kimliğini doğrular.
GetTicker Belirli bir para birimi çifti için güncel ticker'ı alır.
GetBalance Tüm para birimlerindeki hesap bakiyesini alır.
Ping WebSocket bağlantısını sürdürmek için bir keepalive ping gönderir.
GetOpenOrders Hesaptaki şu anda açık olan tüm emirleri alır.
PlaceOrder Belirtilen miktar ve fiyatla yeni bir alış veya satış emri verir.
CancelReplaceOrder Mevcut bir emri iptal eder ve atomik olarak yenisiyle değiştirir.
GetOrderRequest Belirli bir emrin ayrıntılarını tanımlayıcısına göre alır.
CancelOrderRequest Belirli bir emri tanımlayıcısına göre iptal eder.
GetArchivedOrders Geçmiş (tamamlanmış/iptal edilmiş) emirleri alır.
OpenPosition Yeni bir margin alım satım pozisyonu açar.
GetPosition Belirli bir açık pozisyonun ayrıntılarını alır.
GetOpenPositions Şu anda açık olan tüm margin pozisyonlarını alır.
ClosePosition Mevcut bir margin alım satım pozisyonunu kapatır.

Kod Örneği

Aşağıdaki örnek eksiksiz bir iş akışını gösterir: CEX.IO'ya bağlanma, bir ticker'a abone olma, bir alış emri verme ve hesap bakiyesini alma.

oClient := TsgcWebSocketClient.Create(nil);
oCex := TsgcWSAPI_Cex.Create(nil);
oCex.Client := oClient;
oCex.Cex.ApiKey := 'your_api_key';
oCex.Cex.ApiSecret := 'your_api_secret';
oClient.Active := True;
// Subscribe to ticker
oCex.SubscribeTickers('BTC', 'USD');
// Place an order
oCex.PlaceOrder('BTC', 'USD', 0.01, 30000, ctBuy);
// Get balance
oCex.GetBalance;

Emir Verme

PlaceOrder metodu baz para birimini, teklif para birimini, miktarı, fiyatı ve emir türünü kabul eder. Emir türü parametresi ctBuy veya ctSell enum değerlerini kullanır.

// Place a buy order: 0.01 BTC at $30,000
oCex.PlaceOrder('BTC', 'USD', 0.01, 30000, ctBuy);
// Place a sell order: 0.05 ETH at $2,000
oCex.PlaceOrder('ETH', 'USD', 0.05, 2000, ctSell);

Pozisyonları Yönetme

CEX.IO, pozisyon yönetimi metotları aracılığıyla margin alım satımını destekler. Pozisyonları doğrudan WebSocket bağlantısı üzerinden açabilir, sorgulayabilir ve kapatabilirsiniz.

// Retrieve all open positions
oCex.GetOpenPositions;
// Close a specific position by ID
oCex.ClosePosition(positionId);

Olaylar ve Geri Çağırmalar

TsgcWSAPI_Cex bileşeni, borsadan veri alındığında olayları tetikler. Ticker güncellemeleri, emir onayları ve bakiye bilgileri gibi gelen mesajları işlemek için işleyiciler atayın.

Olay Tetiklenme Durumu
OnCexMessage CEX.IO WebSocket sunucusundan herhangi bir mesaj alındığında.
OnCexConnect CEX.IO'ya WebSocket bağlantısı kurulduğunda.
OnCexDisconnect WebSocket bağlantısı kapatıldığında.
OnCexError Borsadan bir hata yanıtı alındığında.

Yapılandırma ve Notlar

API Kimlik Bilgileri

API anahtarınızı ve secret'ınızı CEX.IO hesap ayarlarından edinin. Kimlik bilgilerini güvenli bir şekilde depolayın ve bunları asla üretim koduna gömmeyin. Bunları şifrelenmiş bir yapılandırma dosyasından veya ortam değişkenlerinden yüklemeyi düşünün.

Bağlantı Yönetimi

WebSocket bağlantısı TsgcWebSocketClient bileşeni tarafından yönetilir. Bağlanmak için Active := True ve bağlantıyı kesmek için Active := False ayarlayın. Bileşen, istemcinin yeniden bağlanma özellikleri aracılığıyla yapılandırılırsa otomatik yeniden bağlanmayı destekler.

Kimlik Doğrulama Akışı

Kimlik doğrulaması, herhangi bir özel metot çağrılmadan önce tamamlanmalıdır. Bağlantı kurulduktan sonra Authenticate'i çağırın veya bunu OnCexConnect olayı içinde işleyin. Bileşen, gerekli HMAC imzasını API anahtarınızdan ve secret'ınızdan otomatik olarak oluşturur.

Keepalive

Kimliği doğrulanmış oturumu canlı tutmak için Ping metodunu düzenli olarak kullanın. CEX.IO, bir zaman aşımı süresinden sonra boştaki oturumların bağlantısını kesebilir.

İpucu: Birden fazla çifte abone olurken her abonelik bağımsızdır. Aynı bağlantıda aynı anda BTC/USD, ETH/USD ve diğer çiftlere abone olabilirsiniz.