private String GetTickDataPath(String code, int date)
        {
            int month = date / 100;

            CodeIdParser parser      = new CodeIdParser(code);
            VarietyInfo  varietyInfo = dataLoader_Variety.GetVariety(parser.VarietyId);

            if (varietyInfo == null)
            {
                return(null);
            }
            string market = varietyInfo.Exchange;

            if (market.Equals("DL"))
            {
                market = "dc";
            }
            else if (market.Equals("SQ"))
            {
                market = "sc";
            }
            else if (market.Equals("ZZ"))
            {
                market = "zc";
            }

            string path = srcDataPath + "\\" + month + "\\" + market + "\\" + GetFullCode(code, parser, market == "zc") + "_" + date + ".csv";

            return(path);

            //return srcDataPath + "\\" + dataLoader_InstrumentInfo.GetBelongMarket(code) + "\\" + date + "\\" + code + "_" + date + ".csv";
        }
        private void GetCodeId(string fileName, List <CodeInfo> codes, HashSet <string> hashset)
        {
            int    startIndex = fileName.LastIndexOf('\\');
            int    endIndex   = fileName.LastIndexOf('_');
            string codeId     = fileName.Substring(startIndex + 1, endIndex - startIndex - 1);

            if (codeId.IndexOf("主力连续") >= 0)
            {
                return;
            }

            CodeIdParser parser = new CodeIdParser(codeId);

            if (parser.Suffix.Length == 3)
            {
                codeId = parser.VarietyId + "1" + parser.Suffix;
            }

            int tradingDay = int.Parse(fileName.Substring(endIndex + 1, 8));

            SetVarietyStart(parser.VarietyId, tradingDay);

            if (!hashset.Contains(codeId))
            {
                hashset.Add(codeId);
                CodeInfo codeInfo = CodeInfoUtils.GetCodeInfo(codeId, dataLoader_Variety);
                if (codeInfo == null)
                {
                    return;
                }
                codeInfo.Start = tradingDay;
                codes.Add(codeInfo);
            }
        }
Beispiel #3
0
        private String GetCodePath(String code, int date)
        {
            CodeIdParser parser      = new CodeIdParser(code);
            VarietyInfo  varietyInfo = dataLoader_Variety.GetVariety(parser.VarietyId);

            return(srcDataPath + "\\" + varietyInfo.Exchange + "\\" + date + "\\"
                   + CodeInfoUtils.GetSimpleCodeId(code) + "_" + date + ".csv");
        }
 private string GetFullCode(String code, CodeIdParser parser, bool isZZ)
 {
     if (isZZ)
     {
         string suffix = parser.Suffix;
         return(parser.VarietyId + suffix.Substring(1, 3));
     }
     return(code);
 }
        private void Loop(string path, int tradingDay, List <CodeInfo> codes, HashSet <string> set_Codes)
        {
            DirectoryInfo dir = new DirectoryInfo(path);

            FileInfo[] files = dir.GetFiles();

            for (int i = 0; i < files.Length; i++)
            {
                string       fileName  = files[i].Name;
                string       oldCodeId = fileName.Substring(0, fileName.IndexOf('_'));
                CodeIdParser parser    = new CodeIdParser(oldCodeId);
                //if (parser.Suffix == "MI")
                //    continue;
                string complexCodeId = CodeInfoUtils.GetComplexCodeId(parser, tradingDay);
                if (complexCodeId == null)
                {
                    continue;
                }
                CodeIdParser parser2 = new CodeIdParser(complexCodeId);
                if (parser2.Suffix == null)
                {
                    continue;
                }
                if (parser2.Suffix.Length < 2 || parser2.Suffix.Length > 4)
                {
                    continue;
                }
                //string varietyId = CodeInfoUtils.GetVariety(oldCodeId);
                //string[] splitCodeArr = CodeInfoUtils.SplitCodeId(oldCodeId);
                //string newCodeId = GetCodeId(tradingDay, splitCodeArr);
                if (set_Codes.Contains(complexCodeId))
                {
                    continue;
                }
                set_Codes.Add(complexCodeId);
                CodeInfo codeInfo = CodeInfoUtils.GetCodeInfo(complexCodeId, dataLoader_Variety);
                if (codeInfo == null)
                {
                    continue;
                }
                if (!codeInfo.Code.EndsWith("0000") && !codeInfo.Code.EndsWith("MI"))
                {
                    codeInfo.Start = tradingDay;
                    SetVarietyStart(parser2.VarietyId, tradingDay);
                }
                else
                {
                    //indexCodes.Add(codeInfo);
                    continue;
                }
                codes.Add(codeInfo);
            }
        }
Beispiel #6
0
        public List <double[]> GetUpdatedTradingSessionDetail(string code, int date)
        {
            CodeIdParser parser      = new CodeIdParser(code);
            string       variety     = parser.VarietyId;
            VarietyInfo  varietyInfo = dataLoader_Variety.GetVariety(variety);

            if (varietyInfo == null)
            {
                return(null);
            }
            string exchange = varietyInfo.Exchange;

            return(dataLoader_TradingSessionDetail.GetTradingSessionDetail(exchange, variety, date));
        }
Beispiel #7
0
        public ITickData GetNewTickData(string code, int date)
        {
            CodeIdParser parser = new CodeIdParser(code);

            if (parser.Suffix == "MI")
            {
                return(generator_Main.Generate(parser.VarietyId, date));
            }
            else if (parser.Suffix == "0000")
            {
                return(generator_Index.Generate(parser.VarietyId, date));
            }
            return(dataProvider.LoadTickData(code, date));
        }
Beispiel #8
0
        private List <CodeInfo> GetNotIndexCodes(List <CodeInfo> codes)
        {
            List <CodeInfo> notIndexCodes = new List <CodeInfo>();

            for (int i = 0; i < codes.Count; i++)
            {
                CodeInfo     codeInfo = codes[i];
                CodeIdParser parser   = new CodeIdParser(codeInfo.Code);
                if (!parser.IsIndex)
                {
                    notIndexCodes.Add(codeInfo);
                }
            }
            return(notIndexCodes);
        }