Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
        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);
            }
        }