public static void RunShowExchangeStats(Dictionary <string, string> dict) { string symbol = "BTC-USD"; string symbol2 = "XXBTZUSD"; IExchangeAPI apiGDAX = new ExchangeGdaxAPI(); IExchangeAPI apiGemini = new ExchangeGeminiAPI(); IExchangeAPI apiKraken = new ExchangeKrakenAPI(); IExchangeAPI apiBitfinex = new ExchangeBitfinexAPI(); while (true) { ExchangeTicker ticker = apiGDAX.GetTicker(symbol); ExchangeOrderBook orders = apiGDAX.GetOrderBook(symbol); decimal askAmountSum = orders.Asks.Sum(o => o.Amount); decimal askPriceSum = orders.Asks.Sum(o => o.Price); decimal bidAmountSum = orders.Bids.Sum(o => o.Amount); decimal bidPriceSum = orders.Bids.Sum(o => o.Price); ExchangeTicker ticker2 = apiGemini.GetTicker(symbol); ExchangeOrderBook orders2 = apiGemini.GetOrderBook(symbol); decimal askAmountSum2 = orders2.Asks.Sum(o => o.Amount); decimal askPriceSum2 = orders2.Asks.Sum(o => o.Price); decimal bidAmountSum2 = orders2.Bids.Sum(o => o.Amount); decimal bidPriceSum2 = orders2.Bids.Sum(o => o.Price); ExchangeTicker ticker3 = apiKraken.GetTicker(symbol2); ExchangeOrderBook orders3 = apiKraken.GetOrderBook(symbol2); decimal askAmountSum3 = orders3.Asks.Sum(o => o.Amount); decimal askPriceSum3 = orders3.Asks.Sum(o => o.Price); decimal bidAmountSum3 = orders3.Bids.Sum(o => o.Amount); decimal bidPriceSum3 = orders3.Bids.Sum(o => o.Price); ExchangeTicker ticker4 = apiBitfinex.GetTicker(symbol); ExchangeOrderBook orders4 = apiBitfinex.GetOrderBook(symbol); decimal askAmountSum4 = orders4.Asks.Sum(o => o.Amount); decimal askPriceSum4 = orders4.Asks.Sum(o => o.Price); decimal bidAmountSum4 = orders4.Bids.Sum(o => o.Amount); decimal bidPriceSum4 = orders4.Bids.Sum(o => o.Price); Console.Clear(); Console.WriteLine("GDAX: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker.Last, ticker.Volume.PriceAmount, askAmountSum, askPriceSum, bidAmountSum, bidPriceSum); Console.WriteLine("GEMI: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker2.Last, ticker2.Volume.PriceAmount, askAmountSum2, askPriceSum2, bidAmountSum2, bidPriceSum2); Console.WriteLine("KRAK: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker3.Last, ticker3.Volume.PriceAmount, askAmountSum3, askPriceSum3, bidAmountSum3, bidPriceSum3); Console.WriteLine("BITF: {0:0.00}, {1:0.00}, {2:0.00}, {3:0.00}, {4:0.00}, {5:0.00}", ticker4.Last, ticker4.Volume.PriceAmount, askAmountSum4, askPriceSum4, bidAmountSum4, bidPriceSum4); Thread.Sleep(5000); } }
static ExchangeTicker GetTicker(ConcurrentDictionary <string, ExchangeTicker> tickerDict, ExchangeGeminiAPI api, string marketSymbol) { return(tickerDict.GetOrAdd(marketSymbol, (_marketSymbol) => { (string baseCurrency, string quoteCurrency) = api.ExchangeMarketSymbolToCurrenciesAsync(_marketSymbol).Sync(); return new ExchangeTicker { MarketSymbol = _marketSymbol, Volume = new ExchangeVolume { BaseCurrency = baseCurrency, QuoteCurrency = quoteCurrency } }; })); }