private IEnumerable <Last> CreateLasts(HitTradesData hitTradesData) { string symbol = hitTradesData.Symbol; this.lastsTimeCache.TryGetValue(symbol, out long lastTimeTicks); foreach (var item in hitTradesData.Data) { DateTime dateTime = item.Timestamp; double price = (double)item.Price; double size = (double)item.Quantity; if (dateTime.Ticks <= lastTimeTicks) { dateTime = new DateTime(++lastTimeTicks, DateTimeKind.Utc); } else { lastTimeTicks = dateTime.Ticks; } yield return(new Last(symbol, price, size, dateTime)); } this.lastsTimeCache[symbol] = lastTimeTicks; }
private DayBar CreateDayBar(HitTradesData hitTradesData) { var lastTrade = hitTradesData.Data.Last(); return(new DayBar(hitTradesData.Symbol, lastTrade.Timestamp) { Last = (double)lastTrade.Price, LastSize = (double)(lastTrade.Price * lastTrade.Quantity) }); }