public List <int> GetWaitForUpdateOpenDates_KLineData_FillUp(string code, KLinePeriod period) { List <int> codeOpenDates = this.historyDataInfoLoader.GetOpenDates_KLineData(code, period); if (codeOpenDates == null || codeOpenDates.Count == 0) { return(this.openDates); } TradingDayCache cache = new TradingDayCache(codeOpenDates); return(GetWaitForUpdateOpenDates_FillUp(this.openDates, cache)); }
public List <int> GetWaitForUpdateOpenDates_TickData(string code) { List <int> codeOpenDates = this.historyDataInfoLoader.GetOpenDates_TickData(code); if (codeOpenDates == null || codeOpenDates.Count == 0) { return(this.openDates); } TradingDayCache cache = new TradingDayCache(codeOpenDates); return(GetWaitForUpdateOpenDates(this.openDates, cache)); }
private void Init(DataReaderFactory dataReaderFactory, string code, int startDate, int endDate) { this.code = code; this.startDate = startDate; this.endDate = endDate; this.dataReaderFactory = dataReaderFactory; IKLineData minuteKLineData = dataReaderFactory.KLineDataReader.GetData(code, startDate, endDate, new KLinePeriod(KLineTimeType.MINUTE, 1)); this.minuteDataGetter = new MinuteKLineData_DateGetter(minuteKLineData, dataReaderFactory.OpenDateReader); this.openDateCache = new TradingDayCache(this.minuteDataGetter.GetOpenDates()); this.dayKLineData = dataReaderFactory.KLineDataReader.GetData(code, startDate, endDate, new KLinePeriod(KLineTimeType.DAY, 1)); }
private OpenDateCalculator(string path) { string[] lines = File.ReadAllLines(path); for (int i = 0; i < lines.Length; i++) { string line = lines[i]; string[] arr = line.Split(','); int date = int.Parse(arr[0]); double starttime = double.Parse(arr[1]); double endtime = double.Parse(arr[2]); openDates.Add(date); dicOpenTime.Add(date, new double[] { starttime, endtime }); } cache = new TradingDayCache(openDates); }
public List <int> GetWaitForUpdateOpenDates_TickData(string code) { List <int> codeOpenDates = this.historyDataInfoLoader.GetOpenDates_TickData(code); if (codeOpenDates == null || codeOpenDates.Count == 0) { return(GetCodeOpenDates(code)); } TradingDayCache cache = new TradingDayCache(codeOpenDates); codeOpenDates.Sort(); int lastUpdatedOpenDate = codeOpenDates[codeOpenDates.Count - 1]; return(GetWaitForUpdateOpenDates(GetCodeOpenDates(code), cache)); }
private static List <int> GetWaitForUpdateOpenDates(List <int> allOpenDates, TradingDayCache currentOpenDateCache) { if (currentOpenDateCache.GetAllTradingDays().Count == 0) { return(allOpenDates); } int date = currentOpenDateCache.LastTradingDay; int index = allOpenDates.IndexOf(date); if (index == allOpenDates.Count - 1) { return(new List <int>()); } int startIndex = index + 1; return(allOpenDates.GetRange(startIndex, allOpenDates.Count - startIndex)); }
private static List <int> GetWaitForUpdateOpenDates_FillUp(List <int> allOpenDates, TradingDayCache currentOpenDateCache) { List <int> waitForUpdateOpenDates = new List <int>(); for (int i = 0; i < allOpenDates.Count; i++) { int openDate = allOpenDates[i]; if (!currentOpenDateCache.IsTrade(openDate)) { waitForUpdateOpenDates.Add(openDate); } } return(waitForUpdateOpenDates); }