示例#1
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);
            }
        }