/// <summary> /// take candles from exchange with needed timeframe /// получить с биржи свечи нужного ТФ /// </summary> /// <param name="tf"></param> /// <param name="security"></param> /// <returns></returns> private List <List <double> > GetBitfinexCandles(string tf, string security, int count) { try { Thread.Sleep(8000); Dictionary <string, string> param = new Dictionary <string, string>(); param.Add("trade:" + tf, ":t" + security + "/hist" + "?limit=" + count); var candles = _client.GetCandles(param); var candleHist = Candles.FromJson(candles); /* param = new Dictionary<string, string>(); * param.Add("trade:" + tf, ":t" + security + "/last"); * var lastCandle = _client.GetCandles(param); * var candleLast = LastCandle.FromJson(lastCandle); * * candleHist.Add(candleLast);*/ return(candleHist); } catch (Exception e) { SendLogMessage(e.ToString(), LogMessageType.Error); return(null); } }
/// <summary> /// take candles from exchange with needed timeframe /// получить с биржи свечи нужного ТФ /// </summary> /// <param name="tf"></param> /// <param name="security"></param> /// <returns></returns> private List <List <double> > GetBitfinexCandles(string tf, string security, int count, DateTime start, DateTime end) { try { Thread.Sleep(8000); Dictionary <string, string> param = new Dictionary <string, string>(); if (start != DateTime.MinValue) { param.Add("trade:" + tf, ":t" + security + "/hist" + "?" + "limit=" + count //+ "&start=" + (start - new DateTime(1970, 1, 1)).TotalMilliseconds); + "&end=" + (end - new DateTime(1970, 1, 1)).TotalMilliseconds); } else { param.Add("trade:" + tf, ":t" + security + "/hist" + "?limit=" + count); } var candles = _client.GetCandles(param); var candleHist = Candles.FromJson(candles); return(candleHist); } catch (Exception e) { SendLogMessage(e.ToString(), LogMessageType.Error); return(null); } }
private List <Trade> GetBitFinexTrades(string security, int count, DateTime end) { try { Thread.Sleep(8000); Dictionary <string, string> param = new Dictionary <string, string>(); if (end == DateTime.MaxValue) { param.Add("", "t" + security + "/hist" + "?" + "limit=" + count); } else { param.Add("", "t" + security + "/hist" + "?" + "limit=" + count + "&end=" + (end - new DateTime(1970, 1, 1)).TotalMilliseconds); } var response = _client.GetTrades(param); var tradesHist = Candles.FromJson(response); List <Trade> trades = new List <Trade>(); for (int i = 0; i < tradesHist.Count; i++) { DateTime time = new DateTime(1970, 1, 1) + TimeSpan.FromMilliseconds(tradesHist[i][1]); Trade newTrade = new Trade(); newTrade.Time = time; newTrade.SecurityNameCode = security; double vol = tradesHist[i][2]; newTrade.Volume = Math.Abs(Convert.ToDecimal(vol)); newTrade.Price = Convert.ToDecimal(tradesHist[i][3]); if (vol > 0) { newTrade.Side = Side.Buy; } else { newTrade.Side = Side.Sell; } trades.Insert(0, newTrade); } return(trades); } catch (Exception e) { SendLogMessage(e.ToString(), LogMessageType.Error); return(null); } }