Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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
     });
 }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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();
        }