sgcWebSockets'te OKX API Güncellemesi

· Özellikler
Delphi'de OKX WebSocket Alım Satım API Entegrasyonu

TsgcWSAPI_OKX bileşeni, birleşik bir WebSocket arayüzü aracılığıyla OKX borsasına kapsamlı Delphi erişimi sağlar. Genel piyasa verisi akışlarını, özel hesap kanallarını ve piyasa ve limit emirleri dahil olmak üzere doğrudan alım satım işlemlerini, tümünü tek bir bileşen aracılığıyla destekler. Bu kılavuz, mevcut her metodu, yapılandırma özelliğini ayrıntılı olarak ele alır ve Delphi'den OKX'te alım satım yapmaya başlamanız için çalışan kod örnekleri içerir.

İçindekiler

WebSocket Genel Kanalları

Genel kanallar, kimlik doğrulama gerektirmeden bağlı tüm istemcilere piyasa verilerini akıtır. Bu kanallar; enstrümanları, ticker'ları, emir defterlerini, işlemleri, mumları, fonlama oranlarını ve daha fazlasını kapsar. Her abone olma metodunun, karşılık gelen bir abonelikten çıkma metodu vardır.

Piyasa Verisi Kanalları

Metot Açıklama
SubscribeInstruments Enstrüman güncellemelerine (yeni listelemeler, listeden çıkarmalar, durum değişiklikleri) abone olur.
SubscribeTicker Belirli bir enstrüman için gerçek zamanlı ticker verilerine abone olur.
SubscribeOpenInterest Futures ve sürekli sözleşmeler için açık pozisyon (open interest) güncellemelerine abone olur.
SubscribeCandlestick Belirtilen aralıkta mum/kline verilerine abone olur.
SubscribeTrades Belirli bir enstrüman için gerçek zamanlı işlem gerçekleşme verilerine abone olur.
SubscribeOrderBook Yapılandırılabilir derinlikle emir defteri güncellemelerine abone olur.

Fiyat ve Endeks Kanalları

Metot Açıklama
SubscribeEstimatedPrices Opsiyonlar ve futures için tahmini teslim/kullanım fiyatına abone olur.
SubscribeMarkPrice Marj ve PnL hesaplamaları için kullanılan işaret fiyatı güncellemelerine abone olur.
SubscribeMarkPriceCandlestick İşaret fiyatına dayalı mum verilerine abone olur.
SubscribePriceLimit Bir enstrüman için fiyat limiti (fiyat bandı) güncellemelerine abone olur.
SubscribeIndexCandlestick Endeks fiyatına dayalı mum verilerine abone olur.
SubscribeIndexTicker Belirli bir endeks için endeks ticker güncellemelerine abone olur.
SubscribeFundingRate Sürekli sözleşmeler için fonlama oranı güncellemelerine abone olur.

Opsiyon ve Sistem Kanalları

Metot Açıklama
SubscribeOptionSummary Opsiyon özet verilerine (greeks, volatilite, açık pozisyon) abone olur.
SubscribeStatus Sistem durumu güncellemelerine (bakım, kesintiler) abone olur.
SubscribePublicStructureBlockTrades Herkese açık yapı blok işlem verilerine abone olur.
SubscribeBlockTickers Blok işlem ticker güncellemelerine 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 UnSubscribeTicker).

WebSocket Özel Kanalları

Özel kanallar kimlik doğrulama gerektirir ve hesap durumunuz, pozisyonlarınız, emirleriniz ve algoritmik alım satım etkinliğiniz hakkında gerçek zamanlı güncellemeler sunar. Bu kanallara abone olmadan önce OKX.IsPrivate := True olarak ayarlayın ve geçerli API kimlik bilgileri sağlayın.

Hesap ve Pozisyon Kanalları

Metot Açıklama
SubscribeAccount Hesap bakiyesi ve özkaynak güncellemelerine gerçek zamanlı olarak abone olur.
SubscribePositions Pozisyon güncellemelerine (açma, kapama, boyut değişiklikleri) abone olur.
SubscribeBalanceAndPosition Tek bir akışta birleşik bakiye ve pozisyon güncellemelerine abone olur.
SubscribePositionRisk Pozisyon risk uyarısı güncellemelerine (tasfiye yakınlığı) abone olur.
SubscribeAccountGreeks Opsiyon pozisyonları için hesap düzeyinde greeks güncellemelerine abone olur.

Emir ve Algo Kanalları

Metot Açıklama
SubscribeOrders Emir durumu güncellemelerine (verildi, gerçekleşti, iptal edildi, kısmen gerçekleşti) abone olur.
SubscribeOrdersAlgo Algoritmik emir güncellemelerine (trigger, TP/SL, trailing stop) abone olur.
SubscribeAdvanceAlgo Gelişmiş algoritmik emir güncellemelerine (iceberg, TWAP) abone olur.

RFQ ve Blok İşlem Kanalları

Metot Açıklama
SubscribeRfqs Blok alım satım için teklif talebi (RFQ) güncellemelerine abone olur.
SubscribeQuotes RFQ'lara yanıt olarak teklif güncellemelerine abone olur.
SubscribePrivateStructureBlockTrades Özel yapı blok işlem güncellemelerine abone olur.

Grid Alım Satım Kanalları

Metot Açıklama
SubscribeSpotGridAlgoOrders Spot grid algo emir güncellemelerine abone olur.
SubscribeContactGridAlgoOrders Sözleşme grid algo emir güncellemelerine abone olur.
SubscribeGridPositions Grid alım satım pozisyon güncellemelerine abone olur.
SubscribeGridSubOrders Bir grid stratejisi içindeki tek tek alt emir güncellemelerine abone olur.

WebSocket Alım Satım İşlemleri

OKX, emirlerin doğrudan WebSocket bağlantısı üzerinden verilmesini ve yönetilmesini destekler; bu, REST API çağrılarına kıyasla daha düşük gecikme sağlar. Bu metotlar kimlik doğrulama gerektirir.

Metot Açıklama
PlaceOrder Tüm emir parametreleri üzerinde tam kontrole sahip yeni bir emir verir.
PlaceMarketOrder En iyi mevcut fiyattan hemen gerçekleşen bir piyasa emri verir.
PlaceLimitOrder Belirtilen bir fiyatta, yalnızca piyasa o fiyata ulaştığında gerçekleşen bir limit emri verir.
CancelOrder Emir kimliğine göre mevcut bir emri iptal eder.
AmendOrder Mevcut bir emri değiştirir (iptal edip yeniden oluşturmadan fiyatı veya boyutu değiştirir).
Not: WebSocket tabanlı alım satım, REST tabanlı emir vermeye göre önemli ölçüde daha düşük gecikme sağlar. OKX, WebSocket emirlerini daha yüksek öncelikle işler ve bu da onu gecikmeye duyarlı stratejiler için tercih edilen yöntem yapar.

Kod Örneği

Aşağıdaki örnek, TsgcWSAPI_OKX bileşeninin nasıl oluşturulup yapılandırılacağını, API ile kimlik doğrulamayı, ticker verilerine abone olmayı, emirleri izlemeyi ve hem piyasa hem de limit emirlerini doğrudan WebSocket bağlantısı üzerinden vermeyi gösterir.

var
  oClient: TsgcWebSocketClient;
  oOKX: TsgcWSAPI_OKX;
begin
  // Create the WebSocket client
  oClient := TsgcWebSocketClient.Create(nil);
  oOKX := TsgcWSAPI_OKX.Create(nil);
  oOKX.Client := oClient;
  // Configure API credentials
  oOKX.OKX.ApiKey := 'your_api_key';
  oOKX.OKX.ApiSecret := 'your_api_secret';
  oOKX.OKX.Passphrase := 'your_passphrase';
  oOKX.OKX.IsPrivate := True;
  // Connect to OKX
  oClient.Active := True;
  // Subscribe to BTC-USDT ticker
  oOKX.SubscribeTicker('BTC-USDT');
  // Subscribe to order updates for spot trading
  oOKX.SubscribeOrders(okxitSpot);
  // Place a market buy order
  oOKX.PlaceMarketOrder(okxosBuy, 'BTC-USDT', 0.001);
  // Place a limit buy order
  oOKX.PlaceLimitOrder(okxosBuy, 'BTC-USDT', 0.001, 30000);
end;

WebSocket Olaylarını İşleme

Gelen WebSocket mesajlarını işlemek için bir olay işleyici atayın. Olay, her güncelleme için kanal adını ve JSON yükünü sağlar.

procedure TForm1.OnOKXEvent(Sender: TObject;
  const aChannel, aData: string);
begin
  // aChannel identifies the subscription (e.g., 'tickers', 'orders')
  // aData contains the JSON payload
  Memo1.Lines.Add(aChannel + ': ' + aData);
end;

Demo Alım Satım Modunu Kullanma

OKX, test için bir demo alım satım ortamı sağlar. Bağlanmadan önce OKX.IsDemo := True olarak ayarlayarak etkinleştirin. Demo modu, simüle edilmiş bakiyelerle ayrı bir uç noktaya bağlanır ve alım satım mantığınızı gerçek fonları riske atmadan test etmenize olanak tanır.

// Enable demo trading mode
oOKX.OKX.IsDemo := True;
oOKX.OKX.IsPrivate := True;
oClient.Active := True;

Yapılandırma ve Notlar

Yapılandırma Özellikleri

Tüm yapılandırmaya bileşenin OKX özelliği aracılığıyla erişilir.

Özellik Tür Açıklama
OKX.ApiKey String OKX API anahtarınız. Bunu OKX API Management sayfasından oluşturun.
OKX.ApiSecret String OKX API gizli anahtarınız. Bu değeri güvende tutun ve istemci tarafı kodda asla açığa çıkarmayın.
OKX.Passphrase String API anahtarını oluştururken belirlediğiniz parola. Tüm kimliği doğrulanmış istekler için gereklidir.
OKX.IsDemo Boolean True olarak ayarlandığında, simüle edilmiş fonlarla OKX demo alım satım ortamına bağlanır. Varsayılan değeri False'tur.
OKX.IsPrivate Boolean True olarak ayarlandığında, WebSocket bağlantısında kimlik doğrulamayı etkinleştirir. Özel kanallar ve alım satım işlemleri için gereklidir. Varsayılan değeri False'tur.

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