コード例 #1
0
ファイル: DataUpdateUtils.cs プロジェクト: wanwei/sc2
        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));
        }
コード例 #2
0
ファイル: DataUpdateUtils.cs プロジェクト: wanwei/sc2
        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));
        }
コード例 #3
0
ファイル: DataCache_Code.cs プロジェクト: wanwei/sc2
        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));
        }
コード例 #4
0
 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);
 }
コード例 #5
0
ファイル: DataUpdateUtils2.cs プロジェクト: wanwei/sc2
        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));
        }
コード例 #6
0
ファイル: DataUpdateUtils.cs プロジェクト: wanwei/sc2
        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));
        }
コード例 #7
0
ファイル: DataUpdateUtils.cs プロジェクト: wanwei/sc2
        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);
        }