static void Vwap(IExchangeAPI api, string exchange, string global_symbol, bool displayTrades = false) { try { var symbol = api.GlobalSymbolToExchangeSymbol(global_symbol); // "BTC-KRW" for Bithumb? //api.GetSymbols().ToList().ForEach(s => Console.WriteLine(s)); //var ticker = api.GetTicker(symbol); //Console.WriteLine("On the {0} exchange, 1 bitcoin is worth {0} USD.", exchange, ticker.Bid); var trades = api.GetRecentTrades(symbol); if (displayTrades) { trades.ToList().ForEach(t => t.Print()); } int tradeCount = trades.Count(); if (tradeCount == 0) { Console.WriteLine("Zero trades returned for [{0} {1}].", exchange, symbol); //Console.WriteLine("[{0} {1}] ({2} trades)", exchange, symbol, tradeCount); return; } var sumPQ = trades.Sum(t => t.Price * t.Amount); var sumQ = trades.Sum(t => t.Amount); var vwap = sumPQ / sumQ; var sortedTrades = trades.OrderBy(t => t.Timestamp); var firstTime = sortedTrades.First().Timestamp; var lastTime = sortedTrades.Last().Timestamp; var minutes = lastTime.Subtract(firstTime).TotalMinutes; Console.WriteLine("[{0} {1}] ({2} trades) VWAP = {3:0.00000000} first:{4} last:{5} ({6:0.0} minutes)", exchange, symbol, tradeCount, vwap, firstTime, lastTime, minutes); } catch (Exception ex) { Console.WriteLine("***[{0} {1}] ERROR: {2}***", exchange, global_symbol, ex.Message); } }
static string Vwap(IExchangeAPI api, string exchange, string global_symbol, bool displayTrades = false) { try { var symbol = api.GlobalSymbolToExchangeSymbol(global_symbol); // "BTC-KRW" for Bithumb? var trades = api.GetRecentTrades(symbol); if (displayTrades) { trades.ToList().ForEach(t => t.Print()); } int tradeCount = trades.Count(); if (tradeCount == 0) { return($"Zero trades returned for [{exchange} {symbol}].\n"); } var sumPQ = trades.Sum(t => t.Price * t.Amount); var sumQ = trades.Sum(t => t.Amount); var vwap = sumPQ / sumQ; var sortedTrades = trades.OrderBy(t => t.Timestamp); var firstTime = sortedTrades.First().Timestamp; var lastTime = sortedTrades.Last().Timestamp; var minutes = lastTime.Subtract(firstTime).TotalMinutes; return(string.Format("[{0} {1}] ({2} trades) VWAP = {3:0.00000000} first:{4} last:{5} ({6:0.0} minutes)\n", exchange, symbol, tradeCount, vwap, firstTime, lastTime, minutes)); } catch (Exception ex) { return(string.Format("***[{0} {1}] ERROR: {2}***\n", exchange, global_symbol, ex.Message)); } }
private void RecentTrades(IExchangeAPI api, string exchange, string global_symbol, bool displayTrades = false) { try { var symbol = api.GlobalSymbolToExchangeSymbol(global_symbol); // "BTC-KRW" for Bithumb? var trades = api.GetRecentTrades(symbol); if (displayTrades) { trades.ToList().ForEach(t => t.Print()); } int tradeCount = trades.Count(); if (tradeCount == 0) { //Console.WriteLine("[{0,-10} {1,9}] {2,5} trades", exchange, symbol, tradeCount); return; } Console.WriteLine("[{0,-10} {1,9}] {2,5} trades", exchange, symbol, tradeCount); } catch (Exception ex) { //Console.WriteLine("***[{0} {1}] ERROR: {2}***", exchange, global_symbol, ""); //ex.Message); } }