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);
     }
 }
示例#2
0
 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));
     }
 }
示例#3
0
        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);
            }
        }