Exemple #1
0
        private static async Task<ICryptoOrderBook> StartHuobi(string pair, bool optimized, bool l2Optimized)
        {
            var config = new HuobiMarketByPriceWebsocketClientConfig
            {
                Url = HuobiConstants.ApiMbpWebsocketUrl,
                CommunicatorName = "Huobi"
            };
            var loggerFactory = new LoggerFactory().AddSerilog(Log.Logger);

            var client = HuobiWebsocketClientsFactory.CreateMarketByPriceClient(config, loggerFactory);
            var source = new HuobiOrderBookSource(client);

            var orderBook = l2Optimized ? 
                new CryptoOrderBookL2(pair, source) : 
                (ICryptoOrderBook)new CryptoOrderBook(pair, source);

            if (optimized)
            {
                ConfigureOptimized(source, orderBook);
            }

            _ = client.Start();

            // send subscription request to order book data
            client.Send(new MarketByPriceSubscribeRequest("s1", pair, 20));

            // send request to snapshot
            client.Send(new MarketByPricePullRequest("p1", pair, 20));

            return orderBook;
        }
        public static IHuobiMarketByPriceWebsocketClient CreateMarketByPriceClient(
            HuobiMarketByPriceWebsocketClientConfig config,
            ILoggerFactory?loggerFactory = null)
        {
            var options      = Options.Create(config);
            var communicator = new HuobiMarketByPriceWebsocketCommunicator(options);

            return(CreateMarketByPriceClient(communicator, loggerFactory));
        }
        public static IHuobiMarketByPriceWebsocketClient CreateMarketByPriceClient(
            string url,
            ILoggerFactory?loggerFactory = null)
        {
            var config = new HuobiMarketByPriceWebsocketClientConfig
            {
                Url = url
            };

            return(CreateMarketByPriceClient(config, loggerFactory));
        }