private Task DetermineTrade() { return(Task.Run(() => { foreach (Currency currency in BinanceAPIMain.AllCurrencies) { try { //Console.WriteLine("Symbol: " + currency.Name + " Processing start at " + DateTime.Now); var recentStick = BinanceAPIMain.BinanceClient.GetCandleSticks(currency.Name.ToLower(), TimeInterval.Minutes_15, null, null, 1).Result; if (recentStick.FirstOrDefault().CloseTime != currency.CloseTime) { //Console.WriteLine("Symbol: " + currency.Name + " End Time: " + CurrencyCalcs.UnixTimeStampToDateTime(recentStick.FirstOrDefault().CloseTime) + " at:" + DateTime.Now); KlineMessage.KlineData data = new KlineMessage.KlineData { Close = recentStick.FirstOrDefault().Close, EndTime = recentStick.FirstOrDefault().CloseTime, StartTime = recentStick.FirstOrDefault().OpenTime, Symbol = currency.Name }; //currency.CloseTime = data.EndTime; currency.CalculateTradeAlgorithm(data, BinanceAPIMain.BinanceClient); } } catch (Exception ex) { Console.WriteLine("Symbol: " + currency.Name + "Error Processing start at " + DateTime.Now + ex.InnerException); } } })); }
static void MimicStreamingData(BinanceClient client) { foreach (var symbol in AllCurrencies.Select(p => p.Name).ToList()) { Currency currency = AllCurrencies.Where(p => p.Name == symbol).FirstOrDefault(); var sticks = client.GetCandleSticks(currency.Name, Interval, null, DateTime.Now, 500).Result; //Cycle through each "close" like they were real time data. foreach (var stick in sticks) { KlineMessage klineMessage = new KlineMessage(); KlineMessage.KlineData data = new KlineMessage.KlineData { Open = stick.Open, Symbol = currency.Name, EndTime = stick.CloseTime, Close = stick.Close, StartTime = stick.OpenTime }; currency.CalculateTradeAlgorithm(data, client); } } }