Example #1
0
        //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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }