Binance, uluslararası çok dilli bir kripto para borsasıdır. Binance verilerine erişmek için bazı API'ler sunar. Bu bileşen, Binance Futures WebSocket Market Streams'i almanıza olanak tanır.
https://binance-docs.github.io/apidocs/futures/en
https://binance-docs.github.io/apidocs/delivery/en
Binance API'sinin 2 tür yöntemi vardır: public ve private. Public yöntemlere kimlik doğrulama olmadan erişilebilir, örnek: ticker fiyatlarını al. Bazıları private ve kullanıcı verisiyle ilgilidir; bu yöntemler Binance API anahtarlarının kullanılmasını gerektirir.
İstemci, USDT veya COIN Binance Futures'a bağlanabilir, hangi sözleşme ile işlem yapmak istediğinizi FuturesContracts özelliğini kullanarak ayarlayın:
İstemci, Production veya Demo Binance hesaplarına bağlanabilir. TestNet özelliği etkinleştirilirse Demo hesabına bağlanır, aksi takdirde production Binance Sunucularına bağlanır.
İstemci, başarılı bir bağlantının ardından olaylara abone olabilir / aboneliği iptal edebilir.
Aşağıdaki Abonelik / Abonelikten Çıkma yöntemleri desteklenir.
| Yöntem | Parametreler | Açıklama |
| AggregateTrades | Symbol | Aggregate Trade Streams, her 100 milisaniyede tek bir taker siparişi için toplanan işlem bilgilerini iletir. |
| MarkPrice | Symbol, UpdateSpeed | Tek bir sembol için mark fiyatı ve funding oranı her 3 saniyede bir veya her saniye gönderilir. |
| AllMarkPrice | UpdateSpeed | Tüm semboller için mark fiyatı ve funding oranı her 3 saniyede bir veya her saniye gönderilir. |
| KLine | Symbol, Interval | Kline/Candlestick Stream, geçerli kline'lara/candlestick'lere her 250 milisaniyede bir (mevcutsa) güncellemeler gönderir. |
| MiniTicker | Symbol | Tek bir sembol için 24 saatlik kayan pencere mini-ticker istatistikleri. Bunlar UTC gününün istatistikleri DEĞİLDİR, requestTime'dan 24 saat öncesine kadar olan 24 saatlik kayan bir penceredir. |
| AllMiniTicker | Tüm semboller için 24 saatlik kayan pencere mini-ticker istatistikleri. Bunlar UTC gününün istatistikleri DEĞİL, requestTime'dan 24 saat öncesine kadar olan 24 saatlik bir kayan penceredir. Dizide yalnızca değişen ticker'ların bulunacağını unutmayın. | |
| Ticker | Symbol | Tek bir sembol için 24 saatlik kayan pencere ticker istatistikleri. Bunlar UTC gününün istatistikleri DEĞİLDİR, requestTime'dan 24 saat öncesine kadar uzanan 24 saatlik bir kayan penceredir. |
| AllMarketTickers | Tüm semboller için 24 saatlik dönen pencere ticker istatistikleri. Bunlar UTC gününün istatistikleri DEĞİLDİR, requestTime'dan 24 saat öncesine kadar 24 saatlik bir dönen penceredir. Dizide yalnızca değişmiş olan ticker'ların bulunacağını unutmayın. | |
| BookTicker | Symbol | Belirli bir sembol için en iyi alış veya satış fiyatı ya da miktarındaki herhangi bir güncellemeyi gerçek zamanlı olarak gönderir. |
| AllBookTickers | Tüm semboller için en iyi alış veya satışın fiyatına veya miktarına yapılan herhangi bir güncellemeyi gerçek zamanlı olarak iletir. | |
| LiquidationOrders | Symbol | Liquidation Order Stream'leri, belirli bir sembol için zorunlu tasfiye (force liquidation) emir bilgilerini iletir |
| AllLiquidationOrders | All Liquidation Order Streams, marketteki tüm semboller için zorla tasfiye emri bilgisini gönderir. | |
| PartialBookDepth | Symbol, Depth | En iyi alış ve satışlar, Geçerli olanlar 5, 10 veya 20'dir. |
| DiffDepth | Symbol | Bid'ler ve ask'ler, varsa her 250 milisaniyede, 500 milisaniyede, 100 milisaniyede veya gerçek zamanlı olarak iletilir |
Başarılı bir abonelik / abonelikten çıkma işleminden sonra, istemci bununla ilgili bir mesaj alır; burada id, Subscribed / Unsubscribed yönteminin sonucudur.
{
"result": null,
"id": 1
}
Binance hesabınızdan alınan geçerli bir ApiKey gerektirir ve ApiKey bileşenin Binance.ApiKey özelliğinde ayarlanmalıdır.
Her değişiklik olduğunda aşağıdaki veriler istemciye gönderilir. Herhangi bir yönteme abone olmaya gerek yoktur, geçerli bir ApiKey ayarlarsanız bu otomatik olarak yapılır.
| Yöntem | Açıklama |
| Margin Call | Kullanıcının pozisyon risk oranı çok yüksek olduğunda, bu stream gönderilir. Bu mesaj yalnızca risk rehberlik bilgisi olarak kullanılır ve yatırım stratejileri için önerilmez. Son derece dalgalı bir piyasa durumunda, bu stream gönderildiğinde kullanıcının pozisyonunun aynı anda tasfiye edilmiş olma olasılığı olabilir. |
| Bakiye ve Pozisyon Güncellemesi |
Balance Update aşağıdaki durumlarda gerçekleşir:
|
| Order Update | Yeni bir emir oluşturulduğunda, emir durumu değiştiğinde böyle bir olay gönderilir. |
Tüm uç noktalar ya bir JSON nesnesi ya da dizi döndürür. Veri artan sırada döndürülür. En eski önce, en yeni sonra.
Public API EndPoints
Bu uç noktalara herhangi bir yetkilendirme olmadan erişilebilir.
General EndPoints
| Yöntem | Parametreler | Açıklama |
| Ping | Rest API'ye bağlantıyı test edin. | |
| GetServerTime | Rest API'ye bağlantıyı test edin ve geçerli sunucu zamanını alın. | |
| GetExchangeInformation | Mevcut borsa işlem kuralları ve sembol bilgisi |
Market Data EndPoints
| Yöntem | Parametreler | Açıklama |
| GetOrderBook | Symbol | Emir Defterini Al. |
| GetTrades | Symbol | Son trade'leri alın |
| GetHistoricalTrades | Symbol | Daha eski işlemleri alın. |
| GetAggregateTrades | Symbol | Sıkıştırılmış, toplu işlemleri alın. Aynı emirden, aynı fiyatla, aynı anda gerçekleşen işlemlerin miktarı toplanır. |
| GetKLines | Symbol, Interval | Bir sembol için Kline/mum çubuğu çubukları. Kline'lar açılış zamanlarıyla benzersiz olarak tanımlanır. |
| Get24hrTicker | Symbol | 24 saatlik kayan pencere fiyat değişim istatistikleri. Buna sembol olmadan erişirken dikkatli olun. |
| GetPriceTicker | Symbol | Bir sembol veya semboller için en son fiyat. |
| GetBookTicker | Symbol | Bir sembol veya semboller için order book'ta en iyi fiyat/miktar. |
| GetMarkPrice | Symbol | Mark Price ve Funding Rate |
| GetFundingRateHistory | Symbol | |
| GetOpenInterest | Symbol | Belirli bir sembolün mevcut açık ilgisini (open interest) alın. |
| GetOpenInterestStatistics | Symbol, Period | |
| GetTopTraderAccountRatio | Symbol, Period | |
| GetTopTraderPositionRatio | Symbol, Period | |
| GetGlobalAccountRatio | Symbol, Period | |
| GetTakerVolume | Symbol, Period | |
| GetContinuousKLines | Pair, ContractType, Interval | Belirli bir sözleşme türü için Kline/mum çubuğu çubukları. |
| GetIndexPriceKLines | Pair, Interval | Bir çiftin endeks fiyatı için Kline/mum çubuğu çubukları. |
| GetMarkPriceKLines | Symbol, Interval | Bir sembolün mark fiyatı için Kline/mum çubuğu çubukları. |
| GetPremiumIndexKLines | Symbol, Interval | Bir sembolün premium index kline çubukları (bar). |
| GetFundingInfo | Tüm semboller için funding oranı bilgisini alın. | |
| GetPriceTickerV2 | Symbol | Bir veya daha fazla sembol için en güncel fiyat (V2). |
| GetIndexInfo | Symbol | Index bilgisini alın. |
| GetAssetIndex | Symbol | Multi-assets modu için varlık endeksini alın. |
| GetConstituents | Symbol | Endeks bileşenlerini getirin. |
| GetDeliveryPrice | Pair | Teslim fiyatını alın. |
| GetBasis | Pair, ContractType, Period | Temel verileri alın. |
Private API EndPoints
Sunucu tarafından yetkilendirilmek için bir APIKey ve APISecret gerektirir.
Account and Trades EndPoints
| Yöntem | Parametreler | Açıklama |
| ChangePositionMode | DualPosition | HER sembolde kullanıcının pozisyon modunu değiştirin (Hedge Mode veya One-way Mode) |
| GetCurrentPositionMode | HER sembolde kullanıcının pozisyon modunu alın (Hedge Mode veya One-way Mode) | |
| NewOrder | Symbol, Side, PositionSide, Type | Yeni bir emir gönderin. |
| PlaceMarketOrder | Side, Symbol, Quantity | |
| PlaceLimitOrder | Side, Symbol, Quantity, LimitPrice | |
| PlaceStopOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | |
| PlaceTrailingStopOrder | Side, Symbol, Quantity, aActivationPrice, aCallbackRate | |
| QueryOrder | Symbol | Bir emrin durumunu kontrol eder. |
| CancelOrder | Symbol | Etkin bir emri iptal edin. OrderId veya OrigClientOrderId gönderilmelidir. |
| CancelAllOpenOrders | Symbol | |
| AutoCancelAllOpenOrders | Symbol, CountDownTimer | Belirtilen geri sayımın sonunda belirtilen sembolün tüm açık emirlerini iptal edin. |
| QueryCurrentOpenOrder | Symbol | |
| GetOpenOrders | Symbol | Bir sembol üzerindeki tüm açık emirleri alın. Sembol olmadan buna erişirken dikkatli olun. |
| GetAllOrders | Symbol | Tüm hesap emirlerini alın; etkin, iptal edilmiş veya doldurulmuş. |
| GetAccountBalance | ||
| GetAccountInformation | Geçerli hesap bilgilerini alın. | |
| ChangeInitialLeverage | Symbol, Leverage | Belirli bir sembol piyasasının kullanıcının başlangıç kaldıracını değiştirin. |
| ChangeMarginType | Symbol, MarginType | |
| ModifyIsolatedPositionMargin | Symbol, Amount, Type | |
| GetPositionMarginChangeHistory | Symbol | |
| GetPositionInformation | Symbol | |
| GetAccountTradeList | Symbol | |
| GetIncomeHistory | Symbol | |
| GetNotionalLeverageBracket | Symbol | |
| TestNewOrder | Symbol, Side, PositionSide, Type | Yeni emir oluşturmayı ve signature/recvWindow long'u test edin. Yeni bir emir oluşturur ve doğrular ancak eşleştirme motoruna göndermez. |
| ModifyOrder | Symbol | Mevcut bir siparişi değiştirin. |
| NewBatchOrders | BatchOrders | Birden çok emir verir. |
| ModifyBatchOrders | BatchOrders | Birden çok emri değiştirin. |
| CancelBatchOrders | Symbol | Birden çok emri iptal eder. |
| GetOrderAmendment | Symbol | Emir değişiklik geçmişini alın. |
| CountdownCancelAll | Symbol, CountdownTime | Belirtilen geri sayımın sonunda belirtilen sembolün tüm açık emirlerini iptal edin. |
| GetForceOrders | Symbol | Kullanıcının zorunlu likidasyon emirlerini alın. |
| GetADLQuantile | Symbol | Pozisyonlar için ADL quantile tahmini alın. |
| GetAccountBalanceV3 | Futures hesap bakiyesini alın (V3). | |
| GetAccountInformationV3 | Geçerli hesap bilgilerini alın (V3). | |
| GetPositionInformationV3 | Symbol | Mevcut pozisyon bilgilerini alın (V3). |
| GetCommissionRate | Symbol | Kullanıcı komisyon oranını alın. |
| GetAccountConfig | Geçerli hesap yapılandırmasını alın. | |
| GetSymbolConfig | Symbol | Sembol yapılandırmasını alın. |
| GetOrderRateLimit | Kullanıcının emir hız sınırını alın. | |
| GetApiTradingStatus | Symbol | API ticaret nicel kural göstergelerini alın. |
| ChangeMultiAssetsMode | MultiAssetsMargin | Kullanıcının çoklu varlık (multi-assets) modunu değiştirin. Çoklu Varlık Modu: true; Tek Varlık Modu: false. |
| GetMultiAssetsMode | Kullanıcının mevcut çoklu varlık (multi-assets) modunu alın. | |
| SetFeeBurn | FeeBurn | Kullanıcının BNB ücret yakma durumunu değiştirin. |
| GetFeeBurn | Kullanıcının BNB ücret yakma durumunu alın. | |
| CreateListenKey | Yeni bir user data stream başlatın. Bir keepalive gönderilmedikçe akış 60 dakika sonra kapanır. | |
| KeepAliveListenKey | Zaman aşımını önlemek için bir kullanıcı veri akışını canlı tutun. | |
| CloseListenKey | Bir kullanıcı veri akışını kapatın. |
Binance Futures Mesajları TsgcWebSocketClient bileşeninde alınır; aşağıdaki olayları kullanabilirsiniz:
OnConnect
Binance sunucusuna başarılı bir bağlantıdan sonra.
OnDisconnect
Binance sunucusundan bir bağlantı kesintisinden sonra
OnMessage
Sunucu tarafından istemciye gönderilen mesajlar bu olayda işlenir.
OnError
Protokolde herhangi bir hata varsa, bu olay çağrılır.
OnException
İşlenmeyen bir özel durum varsa, bu olay çağrılır.
Ayrıca, Binance API Bileşeninde, bir HTTP İsteği (REST API veya WebSocket User Stream) çağrılırken her hata olduğunda tetiklenen OnBinanceHTTPException adlı belirli bir olay vardır.
(*) Binance Sunucularındaki değişiklikler nedeniyle, Rad Studio 10.1'den önceki Indy sürümleri Test Sunucularına bağlanamayacaktır. Bu sorun Enterprise Edition'ı etkilemez veya Indy sürümü en sona yükseltildiyse.