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.
- Özel kanallara veya alım satım işlemlerine ihtiyacınız varsa, bağlanmadan önce
OKX.IsPrivate := True olarak ayarlayın. Genel kanallar kimlik doğrulama olmadan çalışır.
- Canlıya geçmeden önce OKX demo ortamında test etmek için
OKX.IsDemo := True kullanın. Demo modu, demo platformu için özel olarak oluşturulmuş ayrı API kimlik bilgileri kullanır.
SubscribeOrders metodu, emir güncellemelerini alım satım türüne göre filtrelemek için bir enstrüman türü parametresi (örneğin okxitSpot, okxitFutures, okxitSwap, okxitOption) kabul eder.
PlaceMarketOrder ve PlaceLimitOrder kolaylık metotları; bir emir yönü parametresi (örneğin okxosBuy, okxosSell), enstrüman kimliği, boyut ve (limit emirleri için) fiyat kabul eder.
AmendOrder metodu, etkin bir emrin fiyatını veya boyutunu iptal edip yeniden vermeden değiştirmenize olanak tanır; bu da gecikmeyi azaltır ve kuyruk konumunun kaybedilmesini önler.
- OKX, WebSocket mesajlarında hız limitleri uygular. Saniye başına abonelikler ve alım satım istekleri için geçerli limitler hakkında resmi OKX belgelerine başvurun.
- WebSocket abonelikleri, bağlantının ömrü boyunca kalıcıdır. Bağlantı kesilirse, yeniden bağlandıktan sonra tekrar abone olmanız gerekir.