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ış
- Başlarken
- Genel WebSocket Metotları
- Özel WebSocket Metotları (Kimlik Doğrulamalı)
- Kod Örneği
- Olaylar ve Geri Çağırmalar
- Yapılandırma ve Notlar
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.
