//private List<CodeInfo> newcodes; public DataUpdateUtils2(string dataPath, ITradingDayReader tradingDayReader, IUpdatedDataInfo openDateReader_HistoryData, DataUpdateHelper dataLoader) { // this.dataLoader_InstrumentInfo = dataLoader_InstrumentInfo; this.codes = dataLoader.GetNewCodes(); //dataLoader_InstrumentInfo.GetAllInstruments(); this.openDates = tradingDayReader.GetAllTradingDays(); this.updateDateGetter = new NewDataInfoGetter(openDateReader_HistoryData, tradingDayReader, dataLoader, this.codes); }
public void Test_DataUpdateHelper() { DataUpdateHelper dataUpdateHelper = GetDataUpdateHelper_JinShuYuan(); List <int> tradingDays = dataUpdateHelper.GetAllTradingDayReader().GetAllTradingDays(); AssertUtils.PrintLineList(tradingDays); List <CodeInfo> codes = dataUpdateHelper.GetNewCodes(); AssertUtils.PrintLineList(codes); }
public List <CodeInfo> GetAllCodes() { string path = this.dataUpdateHelper.GetPath_Code(); //装载已更新好的股票 Dictionary <string, CodeInfo> dic_Id_CodeInfo = new Dictionary <string, CodeInfo>(); List <CodeInfo> updatedCodes = CsvUtils_Code.Load(path); if (File.Exists(path)) { for (int i = 0; i < updatedCodes.Count; i++) { dic_Id_CodeInfo.Add(updatedCodes[i].Code, updatedCodes[i]); } } //从新的合约中找到之前没有的合约 List <CodeInfo> codes = dataUpdateHelper.GetNewCodes(); List <CodeInfo> newcodes = new List <CodeInfo>(updatedCodes); for (int i = 0; i < codes.Count; i++) { CodeInfo code = codes[i]; if (dic_Id_CodeInfo.ContainsKey(code.Code)) { CodeInfo codeInfo = dic_Id_CodeInfo[code.Code]; if (codeInfo.Start != 0 && codeInfo.Start < code.Start) { code.Start = codeInfo.Start; } if (codeInfo.Start != 0 && codeInfo.End > code.End) { code.End = codeInfo.End; } } else { newcodes.Add(code); } } newcodes.Sort(new CodeInfoComparer()); return(newcodes); }