Exemplo n.º 1
0
        public void ChangeTime(double time)
        {
            if (this.time == time)
            {
                return;
            }
            this.time = time;

            int date = this.sessionReader.GetTradingDay(time);

            if (date < 0)
            {
                date = this.sessionReader.GetRecentTradingDay(time);
            }

            if (this.date != date)
            {
                this.date = date;
                this.timeLineData_RealTime = GetTimeLineData_RealTime(date, time);
            }
            else
            {
                this.timeLineData_RealTime = GetTimeLineData_RealTime(timeLineData, tickData, time);
            }
        }
Exemplo n.º 2
0
        private void ForwardToday_TimeLineData(TimeLineData_RealTime timeLineData)
        {
            if (timeLineData == null)
            {
                return;
            }
            ITickBar nextTickBar        = currentTickData.GetBar(currentTickData.BarPos + 1);
            int      nextTimeLineBarPos = timeLineData.BarPos + 1;

            if (nextTimeLineBarPos >= timeLineData.Length)
            {
                TimeLineBar timeLineBar = GetTimeLineBar(timeLineData, nextTickBar, lastEndPrice);
                timeLineData.ChangeCurrentBar(timeLineBar, timeLineData.BarPos);
                return;
            }
            else
            {
                double      nextTime = timeLineData.Arr_Time[nextTimeLineBarPos];
                TimeLineBar timeLineBar;
                if (nextTickBar.Time >= nextTime)
                {
                    timeLineBar = GetTimeLineBar(nextTickBar, lastEndPrice);
                    timeLineData.ChangeCurrentBar(timeLineBar, nextTimeLineBarPos);
                }
                else
                {
                    timeLineBar = GetTimeLineBar(timeLineData, nextTickBar, lastEndPrice);
                    timeLineData.ChangeCurrentBar(timeLineBar, timeLineData.BarPos);
                }
            }
        }
Exemplo n.º 3
0
        private void InitData()
        {
            int currentTradingDay = tradingDays[0];

            this.currentTickData = dataPackage.GetTickData(currentTradingDay);
            foreach (KLinePeriod period in dic_Period_KLineData.Keys)
            {
                IKLineData_RealTime klineData = dic_Period_KLineData[period];
                klineData.ChangeCurrentBar(GetKLineBar(currentTickData));
                if (period == forwardPeriod.KlineForwardPeriod)
                {
                    mainKlineData = klineData;
                }
            }

            //初始化分时线
            //int lastTradingDay = dataReader.TradingDayReader.GetPrevTradingDay(currentTradingDay);
            //IKLineData lastDayklineData = dataReader.KLineDataReader.GetData(code, lastTradingDay, lastTradingDay, KLinePeriod.KLinePeriod_1Day);
            //if (lastDayklineData.Length == 0)
            //    lastEndPrice = currentTickData.Arr_Price[0];
            //else
            //    lastEndPrice = lastDayklineData.End;
            this.lastEndPrice = dataPackage.GetLastEndPrice(currentTradingDay);
            if (useTimeLineData)
            {
                ITimeLineData timeLineData = dataPackage.GetTimeLineData(currentTradingDay);
                if (timeLineData != null)
                {
                    this.currentTimeLineData = new TimeLineData_RealTime(timeLineData);
                    this.currentTimeLineData.ChangeCurrentBar(GetTimeLineBar(currentTickData, lastEndPrice));
                }
            }
        }
Exemplo n.º 4
0
        private TimeLineData_RealTime GetTimeLineData_RealTime(TimeLineData timeLineData, ITickData tickData, double time)
        {
            this.timeLineData_RealTime = new TimeLineData_RealTime(this.timeLineData);
            int timeLineIndex = TimeIndeierUtils.IndexOfTime_TimeLine(this.timeLineData, time);
            //this.timeLineData_RealTime.IndexOfTime(time);
            int    tickIndex      = TimeIndeierUtils.IndexOfTime_Tick(tickData, time);
            double klineTime      = timeLineData_RealTime.Arr_Time[timeLineIndex];
            int    startTickIndex = TimeIndeierUtils.IndexOfTime_Tick(tickData, klineTime);

            //IKLineData klineData = dataPackage.GetKLineData(date, date, 1, 0, KLinePeriod.KLinePeriod_1Day);
            float       lastEndPrice = dataPackage.GetLastEndPrice(date);
            TimeLineBar klineBar     = GetTimeLineBar(tickData, startTickIndex, tickIndex, lastEndPrice);

            timeLineData_RealTime.ChangeCurrentBar(klineBar, timeLineIndex);
            return(timeLineData_RealTime);
        }
Exemplo n.º 5
0
        private void ForwardNextDay_TimeLine()
        {
            if (!useTimeLineData)
            {
                return;
            }

            int          currentTradingDay = currentTickData.TradingDay;
            TimeLineData timeLineData      = (TimeLineData)dataPackage.GetTimeLineData(currentTradingDay);

            if (timeLineData == null)
            {
                return;
            }

            float lastEndPrice = this.currentTimeLineData.Arr_Price[currentTimeLineData.Length - 1];
            TimeLineData_RealTime timeLineData_RealTime = new TimeLineData_RealTime(timeLineData);

            timeLineData_RealTime.ChangeCurrentBar(GetTimeLineBar(currentTickData, lastEndPrice));
            this.currentTimeLineData = timeLineData_RealTime;
        }