예제 #1
0
        public RealTimeReader_Strategy(IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods, ForwardPeriod forwardPeriod)
        {
            this.dataPackage    = dataPackage;
            this.code           = dataPackage.Code;
            this.startDate      = dataPackage.StartDate;
            this.endDate        = dataPackage.EndDate;
            this.referedPeriods = referedPeriods;
            this.forwardPeriod  = forwardPeriod;

            this.allKLineData = new Dictionary <KLinePeriod, KLineData_RealTime>();
            for (int i = 0; i < referedPeriods.UsedKLinePeriods.Count; i++)
            {
                KLinePeriod        period             = referedPeriods.UsedKLinePeriods[i];
                IKLineData         klineData          = dataPackage.GetKLineData(period);
                KLineData_RealTime klineData_RealTime = new KLineData_RealTime(klineData);
                allKLineData.Add(period, klineData_RealTime);
            }

            IList <int> allTradingDays = dataPackage.GetTradingDays();

            if (forwardPeriod.IsTickForward)
            {
                this.klineDataForward = new HistoryDataForward_Code_TickPeriod(dataPackage, allKLineData, allTradingDays, forwardPeriod.KlineForwardPeriod);
            }
            else
            {
                KLinePeriod        mainPeriod    = forwardPeriod.KlineForwardPeriod;
                KLineData_RealTime mainKLineData = allKLineData[mainPeriod];
                this.klineDataForward = new HistoryDataForward_Code_KLinePeriod(code, mainKLineData, allKLineData);
            }

            this.klineDataForward.OnRealTimeChanged += KlineDataForward_OnRealTimeChanged;
            this.klineDataForward.OnTick            += KlineDataForward_OnTick;
            this.klineDataForward.OnBar             += KlineDataForward_OnBar;

            //this.klineDataForward = HistoryDataForwardFactory.CreateHistoryDataForward_Code(dataPackage, referedPeriods, forwardPeriod);
            //this.klineDataForward.OnTick += KlineDataForward_OnTick;
            //this.klineDataForward.OnBar += KlineDataForward_OnBar;
        }
예제 #2
0
        private void Init(IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods, ForwardPeriod forwardPeriod)
        {
            this.dataPackage    = dataPackage;
            this.referedPeriods = referedPeriods;
            this.forwardPeriod  = forwardPeriod;

            Dictionary <KLinePeriod, KLineData_RealTime> allKLineData = new Dictionary <KLinePeriod, KLineData_RealTime>();

            for (int i = 0; i < referedPeriods.UsedKLinePeriods.Count; i++)
            {
                KLinePeriod        period             = referedPeriods.UsedKLinePeriods[i];
                IKLineData         klineData          = this.dataPackage.GetKLineData(period);
                KLineData_RealTime klineData_RealTime = new KLineData_RealTime(klineData);
                allKLineData.Add(period, klineData_RealTime);
            }

            //ITimeLineData timelineData = this.dataReader.TimeLineDataReader.GetData(code, startDate);
            //this.timeLineData_RealTime = new TimeLineData_RealTime(timelineData);

            IList <int> allTradingDays = dataPackage.GetTradingDays();

            if (forwardPeriod.IsTickForward)
            {
                //this.historyDataForward = new HistoryDataForward_Code_TickPeriod(dataReader, code, allKLineData, allTradingDays, forwardPeriod.KlineForwardPeriod);
                this.historyDataForward = new HistoryDataForward_Code_TickPeriod(dataPackage, allKLineData, allTradingDays, forwardPeriod.KlineForwardPeriod);
            }
            else
            {
                KLinePeriod        mainPeriod    = forwardPeriod.KlineForwardPeriod;
                KLineData_RealTime mainKLineData = allKLineData[mainPeriod];
                this.historyDataForward = new HistoryDataForward_Code_KLinePeriod(Code, mainKLineData, allKLineData);
            }

            this.historyDataForward.OnRealTimeChanged += HistoryDataForward_OnRealTimeChanged;
            this.historyDataForward.OnTick            += KlineDataForward_OnTick;
            this.historyDataForward.OnBar             += KlineDataForward_OnBar;
        }