public KLine GetKLine(KLineRange range) { return(new KLine { Depths = TradeQueue.Instance.GetDepths(), Info = TradeLogger.Instance.GetInfo(), Trades = TradeLogger.Instance.GetTrades(), Lines = TradeLogger.Instance.GetKLine(range) }); }
public List <List <decimal> > GetKLine(KLineRange range) { if (!klines.ContainsKey(range)) { return(new List <List <decimal> >()); } var lines = klines[range]; return(lines.Select(e => new List <decimal> { e.TimeScale.AsLong(), e.Open, e.High, e.Low, e.Close, e.Volume }).ToList()); }
public Result <Quotation> GetQuotation(string symbol, KLineRange range) { var quotation = new Quotation { Symbol = symbol, Range = range, Success = false }; var result = service.GetKLine(range); if (result.Status == ResultStatus.Success) { quotation.KLine = result.Data; quotation.Success = true; } return(Result.Success(quotation)); }
public DateTime GetTimeScale(KLineRange range, DateTime time) { DateTime timescale = time; switch (range) { case KLineRange.D30: timescale = time.FirstDayOfMonth(); break; case KLineRange.D7: timescale = time.FirstDayOfWeek(); break; case KLineRange.D1: timescale = time.Date; break; case KLineRange.H1: timescale = time.ToString("yyyy-MM-dd HH:00:00").AsDateTime(); break; case KLineRange.M30: timescale = time.ToString("yyyy-MM-dd HH:00:00").AsDateTime().AddMinutes(Math.Floor((double)time.Minute / 30) * 30); break; case KLineRange.M15: timescale = time.ToString("yyyy-MM-dd HH:00:00").AsDateTime().AddMinutes(Math.Floor((double)time.Minute / 15) * 15); break; case KLineRange.M5: timescale = time.ToString("yyyy-MM-dd HH:00:00").AsDateTime().AddMinutes(Math.Floor((double)time.Minute / 5) * 5); break; case KLineRange.M1: timescale = time.ToString("yyyy-MM-dd HH:mm:00").AsDateTime().AddMinutes(time.Second > 0 ? 1 : 0); break; default: break; } return(timescale); }
public Result <KLine> GetKLine(KLineRange range) { return(Result.Success(drive.GetKLine(range))); }