private object SubscribeTick(string instrument, string field) { var key = instrument; if (SubscribedTick.ContainsKey(key)) { BinanceStreamTick tick; if (TickCache.TryGetValue(key, out tick)) { return(DecodeTick(tick, field)); } else { return(SubscriptionManager.UninitializedValue); } } else { SubscribedTick.Add(instrument, true); var successSymbol = socketClient.SubscribeToSymbolTicker(instrument, (BinanceStreamTick data) => { TickCache[key] = data; CacheTick(data); }); return(SubscriptionManager.UninitializedValue); } }
private void ProcessBuy(BinanceClient client, BinanceSocketClient socketClient, CancellationToken token) { token.ThrowIfCancellationRequested(); var subscribeSymbolTicker = socketClient.SubscribeToSymbolTicker("ETHSTORM", data => { var s = data; }); if (subscribeSymbolTicker.Error != null) { _logger.LogError(subscribeSymbolTicker.Error.Message); } else { binanceHelper.AddToSubscriptionList("ETHSTORM", subscribeSymbolTicker.Data); } var subscribePair = socketClient.SubscribeToKlineStream("ETHSTORM", KlineInterval.FiveMinutes, data => { var s = data; }); if (subscribePair.Error != null) { _logger.LogError(subscribePair.Error.Message); } else { binanceHelper.AddToSubscriptionList("ETHSTORM", subscribePair.Data); } }
private void BinanceWebsocketPublic() { var successDepth = m_socketClient.SubscribeToDepthStream("bnbbtc", (data) => { // handle data }); var successTrades = m_socketClient.SubscribeToTradesStream("bnbbtc", (data) => { // handle data }); var successKline = m_socketClient.SubscribeToKlineStream("bnbbtc", KlineInterval.OneMinute, (data) => { // handle data }); var successSymbol = m_socketClient.SubscribeToSymbolTicker("bnbbtc", (data) => { // handle data }); var successSymbols = m_socketClient.SubscribeToAllSymbolTicker((data) => { // handle data }); var successOrderBook = m_socketClient.SubscribeToPartialBookDepthStream("bnbbtc", 10, (data) => { // handle data }); }
public void SubscribingToSymbolTicker_Should_TriggerWhenSymbolTickerStreamMessageIsReceived() { // arrange var socket = new Mock <IWebsocket>(); socket.Setup(s => s.Close()); socket.Setup(s => s.Connect()).Returns(Task.FromResult(true)); socket.Setup(s => s.SetEnabledSslProtocols(It.IsAny <System.Security.Authentication.SslProtocols>())); var factory = new Mock <IWebsocketFactory>(); factory.Setup(s => s.CreateWebsocket(It.IsAny <Log>(), It.IsAny <string>())).Returns(socket.Object); BinanceStreamTick result = null; var client = new BinanceSocketClient { SocketFactory = factory.Object }; client.SubscribeToSymbolTicker("test", (test) => result = test); var data = new BinanceStreamTick() { BestAskPrice = 0.1m, BestAskQuantity = 0.2m, BestBidPrice = 0.3m, BestBidQuantity = 0.4m, CloseTradesQuantity = 0.5m, CurrentDayClosePrice = 0.6m, FirstTradeId = 1, HighPrice = 0.7m, LastTradeId = 2, LowPrice = 0.8m, OpenPrice = 0.9m, PrevDayClosePrice = 1.0m, PriceChange = 1.1m, PriceChangePercentage = 1.2m, StatisticsCloseTime = new DateTime(2017, 1, 2), StatisticsOpenTime = new DateTime(2017, 1, 1), Symbol = "test", TotalTradedBaseAssetVolume = 1.3m, TotalTradedQuoteAssetVolume = 1.4m, TotalTrades = 3, WeightedAverage = 1.5m }; // act socket.Raise(r => r.OnMessage += null, JsonConvert.SerializeObject(data)); // assert Assert.IsNotNull(result); Assert.IsTrue(TestHelpers.PublicInstancePropertiesEqual(data, result)); }
static void Main(string[] args) { BinanceClient.SetDefaultOptions(new BinanceClientOptions() { ApiCredentials = new ApiCredentials("APIKEY", "APISECRET"), LogVerbosity = LogVerbosity.Debug, LogWriters = new List <TextWriter> { Console.Out } }); BinanceSocketClient.SetDefaultOptions(new BinanceSocketClientOptions() { ApiCredentials = new ApiCredentials("APIKEY", "APISECRET"), LogVerbosity = LogVerbosity.Debug, LogWriters = new List <TextWriter> { Console.Out } }); using (var client = new BinanceClient()) { // Public var ping = client.Ping(); var exchangeInfo = client.GetExchangeInfo(); var serverTime = client.GetServerTime(); var orderBook = client.GetOrderBook("BNBBTC", 10); var aggTrades = client.GetAggregatedTrades("BNBBTC", startTime: DateTime.UtcNow.AddMinutes(-2), endTime: DateTime.UtcNow, limit: 10); var klines = client.GetKlines("BNBBTC", KlineInterval.OneHour, startTime: DateTime.UtcNow.AddHours(-10), endTime: DateTime.UtcNow, limit: 10); var price = client.GetPrice("BNBBTC"); var prices24h = client.Get24HPrice("BNBBTC"); var allPrices = client.GetAllPrices(); var allBookPrices = client.GetAllBookPrices(); var historicalTrades = client.GetHistoricalTrades("BNBBTC"); // Private var openOrders = client.GetOpenOrders("BNBBTC"); var allOrders = client.GetAllOrders("BNBBTC"); var testOrderResult = client.PlaceTestOrder("BNBBTC", OrderSide.Buy, OrderType.Limit, 1, price: 1, timeInForce: TimeInForce.GoodTillCancel); var queryOrder = client.QueryOrder("BNBBTC", allOrders.Data[0].OrderId); var orderResult = client.PlaceOrder("BNBBTC", OrderSide.Sell, OrderType.Limit, 10, price: 0.0002m, timeInForce: TimeInForce.GoodTillCancel); var cancelResult = client.CancelOrder("BNBBTC", orderResult.Data.OrderId); var accountInfo = client.GetAccountInfo(); var myTrades = client.GetMyTrades("BNBBTC"); // Withdrawal/deposit var withdrawalHistory = client.GetWithdrawHistory(); var depositHistory = client.GetDepositHistory(); var withdraw = client.Withdraw("ASSET", "ADDRESS", 0); } var socketClient = new BinanceSocketClient(); // Streams var successDepth = socketClient.SubscribeToDepthStream("bnbbtc", (data) => { // handle data }); var successTrades = socketClient.SubscribeToTradesStream("bnbbtc", (data) => { // handle data }); var successKline = socketClient.SubscribeToKlineStream("bnbbtc", KlineInterval.OneMinute, (data) => { // handle data }); var successTicker = socketClient.SubscribeToAllSymbolTicker((data) => { // handle data }); var successSingleTicker = socketClient.SubscribeToSymbolTicker("bnbbtc", (data) => { // handle data }); string listenKey; using (var client = new BinanceClient()) listenKey = client.StartUserStream().Data.ListenKey; var successAccount = socketClient.SubscribeToUserStream(listenKey, data => { // Hanlde account info data }, data => { // Hanlde order update info data }); socketClient.UnsubscribeAllStreams(); Console.ReadLine(); }