public void Monitor()
 {
     try
     {
         foreach (var coin in _exchange.Coins)
         {
             foreach (var childCoin in coin.Coins)
             {
                 try
                 {
                     var ticker      = _apiService.Get <ResponseDto <List <TickerDto> > >(_apiService.PublicUrl, $"/getticker?market={coin.Symbol}_{childCoin.Symbol}").result.First();
                     var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(ticker).Build();
                     _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.Bleutrade, coin.Symbol, childCoin.Symbol, pricingItem);
                 }
                 catch (Exception e)
                 {
                     //Colorful.Console.WriteLine(e, Color.Red);
                 }
                 Task.Delay(500).Wait();
             }
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"Bleutrade Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }
Ejemplo n.º 2
0
        public void Monitor()
        {
            try
            {
                var eligibleSymbols = _exchange.Coins.Select(m => m.Symbol)
                                      .Union(_exchange.Coins.SelectMany(m => m.Coins).Select(m => m.Symbol)).Distinct().ToList();
                var eligibleCombinedSymbols = new List <SymbolDto>();
                foreach (var symbol1 in eligibleSymbols)
                {
                    foreach (var symbol2 in eligibleSymbols.Where(m => m != symbol1))
                    {
                        eligibleCombinedSymbols.Add(new SymbolDto($"{symbol1}{symbol2}", symbol1, symbol2));
                    }
                }

                var tickers = _apiService.Get <ResponseDto <List <TickerDto> > >(_apiService.PublicUrl, "/LiveTickers").tickers;
                tickers = tickers.Where(m => eligibleCombinedSymbols.Select(n => n.Combined).Contains(m.currencyPair)).ToList();
                foreach (var ticker in tickers)
                {
                    var symbolDto = eligibleCombinedSymbols.FirstOrDefault(m => m.Combined == ticker.currencyPair);
                    if (symbolDto != null)
                    {
                        var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(ticker).Build();
                        _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.TrustDex, symbolDto.From, symbolDto.To, pricingItem);
                    }
                }
            }
            catch (Exception ex)
            {
                Colorful.Console.WriteLine($"Gatecoin Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
            }
        }
 public void Monitor()
 {
     try
     {
         var tickers = _apiService.Get <Dictionary <string, TickerDto> >(_apiService.PublicUrl, "/ticker");
         foreach (var ticker in tickers)
         {
             ticker.Value.from_symbol = ticker.Key.Split("_")[0];
             ticker.Value.to_symbol   = ticker.Key.Split("_")[1];
         }
         var products      = tickers.Select(m => m.Value).ToList();
         var validProducts = products.Where(m =>
                                            !SymbolConstants.FiatCurrency.Contains(m.from_symbol) &&
                                            !SymbolConstants.FiatCurrency.Contains(m.to_symbol)).ToList();
         foreach (var product in validProducts)
         {
             var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(product).Build();
             _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.Exmo, product.from_symbol, product.to_symbol, pricingItem);
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"Exmo Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }
 public void Monitor()
 {
     try
     {
         var eligibleSymbols = _exchange.Coins.Select(m => m.Symbol)
                               .Union(_exchange.Coins.SelectMany(m => m.Coins).Select(m => m.Symbol)).Distinct().ToList();
         var response = _apiService.Get <JArray>(_apiService.PublicUrl, "/return_ticket.php");
         var tickers  = new BuilderFactory().CreateCollection <JToken, TickerDto>(response).Build();
         tickers = tickers.Where(m =>
                                 m.active &&
                                 eligibleSymbols.Contains(m.fromSymbol) &&
                                 eligibleSymbols.Contains(m.toSymbol) &&
                                 !SymbolConstants.FiatCurrency.Contains(m.fromSymbol) &&
                                 !SymbolConstants.FiatCurrency.Contains(m.toSymbol)).ToList();
         foreach (var ticker in tickers)
         {
             var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(ticker).Build();
             _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.TrustDex, ticker.fromSymbol,
                                                                                            ticker.toSymbol, pricingItem);
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"TrustDex Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }
        public void Monitor()
        {
            //try
            //{
            //    var socket = new ClientWebSocket();
            //    var task = socket.ConnectAsync(new Uri("wss://api.poloniex.com"), CancellationToken.None);
            //    task.Wait();
            //    var readThread = new Thread(() => MessageRecived(socket)) { IsBackground = true };
            //    readThread.Start();
            //    var json = "{\"type\":\"subscribe\",\"channels\":[{\"name\":\"ticker\", \"product_ids\": [" + BuildProductIdString() + "]}]}";
            //    var bytes = Encoding.UTF8.GetBytes(json);
            //    var subscriptionMessageBuffer = new ArraySegment<byte>(bytes);
            //    socket.SendAsync(subscriptionMessageBuffer, WebSocketMessageType.Text, true, CancellationToken.None);
            //}
            //catch (Exception ex)
            //{

            //}

            //while (true)
            //{
            //    Thread.Sleep(60000);
            //foreach (var coin in _exchange.Coins)
            //{
            //    foreach (var childCoin in coin.Coins)
            //    {

            //    }
            //}
            //}
            //PricingService.Instance.GetCurrentPrice(_exchange.Name, coin.Symbol, childCoin.Symbol);

            try
            {
                var response = _apiService.Get <Dictionary <string, TickerDto> >(_apiService.PublicUrl, "?command=returnTicker");
                foreach (var key in response.Keys)
                {
                    response[key].FromSymbol = key.Split("_")[1];
                    response[key].ToSymbol   = key.Split("_")[0];
                }

                var products = response.Values.Where(m => m.IsFrozenBool == false).ToList();
                foreach (var product in products)
                {
                    if (product != null)
                    {
                        var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(product).Build();
                        _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.Poloniex, product.FromSymbol, product.ToSymbol, pricingItem);
                    }
                }
            }
            catch (Exception ex)
            {
                Colorful.Console.WriteLine($"Poloniex Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
            }
        }
Ejemplo n.º 6
0
        private string BuildProductIdString()
        {
            var ids      = new List <string>();
            var products = _apiService.Get <List <ProductDto> >(_apiService.PublicUrl, "/products");

            foreach (var product in products.Where(m => !m.Id.Contains("-GBP") && !m.Id.Contains("-EUR")))
            {
                ids.Add(product.Id);
            }
            return(string.Join(",", ids.Select(m => $"\"{m}\"")));
        }
 public void Monitor()
 {
     try
     {
         var markets = _apiService.Get <Dictionary <string, MarketDto> >(_apiService.PublicUrl, "/").Select(m => m.Value).ToList();
         foreach (var market in markets)
         {
             var pricingItem = _builderFactory.Create <MarketDto, PricingItem>(market).Build();
             _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.BXinth, market.secondary_currency, market.primary_currency, pricingItem);
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"BXinth Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }
 public void Monitor()
 {
     try
     {
         //Should probably also use the getticker endpoint as the data is not cached as long and more up-to-date.
         var response = _apiService.Get <ResponseDto <List <MarketSummaryDto> > >(_apiService.PublicUrl, "/public/getmarketsummaries");
         var products = response.Result.OrderByDescending(m => m.BaseVolume).ThenByDescending(m => m.Volume).ToList();
         foreach (var product in products)
         {
             var pricingItem = _builderFactory.Create <MarketSummaryDto, PricingItem>(product).Build();
             _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.BitTrex, product.MarketCurrency, product.BaseCurrency, pricingItem);
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"Bittrex Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }
 public void Monitor()
 {
     try
     {
         foreach (var coin in _exchange.Coins)
         {
             foreach (var childCoin in coin.Coins)
             {
                 var ticker      = _apiService.Get <TickerDto>(_apiService.PublicUrl, $"/v1/pubticker/{coin.Symbol.ToLower()}{childCoin.Symbol.ToLower()}");
                 var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(ticker).Build();
                 _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.Gemini, coin.Symbol, childCoin.Symbol, pricingItem);
             }
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"Gemini Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }
 public void Monitor()
 {
     try
     {
         foreach (var coin in _exchange.Coins)
         {
             foreach (var childCoin in coin.Coins)
             {
                 var product = _apiService.Get <TickerDto>(_apiService.PublicUrl, $"/products/{coin.Symbol}-{childCoin.Symbol}/ticker");
                 if (product != null)
                 {
                     var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(product).Build();
                     _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.Abucoins, coin.Symbol, childCoin.Symbol, pricingItem);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"Abucoins Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }
Ejemplo n.º 11
0
 public void Monitor()
 {
     try
     {
         var response   = _apiService.Get <List <TickerDto> >(_apiService.PublicUrl, "/tickers");
         var symbolList = _exchange.Coins.Select(n => n.Symbol)
                          .Union(_exchange.Coins.SelectMany(n => n.Coins).Select(n => n.Symbol)).ToList();
         var products = response
                        .OrderByDescending(m => m.Volume24Hour)
                        .Where(m =>
                               symbolList.Contains(m.FromSymbol) &&
                               symbolList.Contains(m.ToSymbol)).ToList();
         foreach (var product in products)
         {
             var pricingItem = _builderFactory.Create <TickerDto, PricingItem>(product).Build();
             _serviceProvider.GetRequiredService <IPricingService>().UpdatePricingForMinute(ExchangeConstants.WavesDex, product.FromSymbol, product.ToSymbol, pricingItem);
         }
     }
     catch (Exception ex)
     {
         Colorful.Console.WriteLine($"WavesDex Monitor(): {ex.Message}\r\n{ex.StackTrace}", Color.Red);
     }
 }