private List <Kline> GetAllTicksForCoinInterval(CoinInterval key) { using (var context = new InfraContext()) { var klineList = context.Klines.Where(i => i.Symbol == key.Symbol && i.Interval == key.Interval).OrderBy(i => i.OpenTime).ToList(); return(klineList); } }
private List <CoinInterval> FindUniqueKeysInKlinesTable() { var keyList = new List <CoinInterval>(); using (var context = new InfraContext()) { var data = context.Klines.Select(i => new { i.Symbol, i.Interval }).Distinct().ToList(); foreach (var item in data) { var coinKey = new CoinInterval(item.Symbol, item.Interval); keyList.Add(coinKey); } } return(keyList); }
private List <TickGap> FindGapsForCoinInterval(CoinInterval key, Dictionary <string, long> intervals) { var gapList = new List <TickGap>(); var ticks = GetAllTicksForCoinInterval(key); long openTime = 0; long lastOpenTime = 0; var interval = intervals[key.Interval]; foreach (var tick in ticks) { lastOpenTime = openTime; openTime = tick.OpenTime; if (openTime - lastOpenTime > interval && lastOpenTime > 0) { var gap = new TickGap(lastOpenTime + interval, openTime - interval); gapList.Add(gap); } } return(gapList); }