private void RealTimeReader_OnBar(object sender, IForwardOnBarArgument argument)
        {
            OnBar_ReferedStrategies(this.Strategy, argument);
            IKLineData_Extend mainKLineData = argument.MainBar.KLineData;

            if (this.strategyExecutorInfo != null)
            {
                this.strategyExecutorInfo.CurrentKLineData = mainKLineData;
            }
            if (HasBarFinishedEvent())
            {
                if (tempBarFinishedArguments == null)
                {
                    tempBarFinishedArguments = new StrategyBarFinishedArguments(this.strategyExecutorInfo);
                }
                DealBarFinishEvent(tempBarFinishedArguments);
            }
            if (HasDayFinishedEvent() && mainKLineData.IsDayEnd())
            {
                if (tempDayFinishedArguments == null)
                {
                    tempDayFinishedArguments = new StrategyDayFinishedArguments(this.strategyExecutorInfo);
                }
                DealDayFinishEvent(tempDayFinishedArguments);
            }

            this.strategyExecutorInfo.CurrentKLineData = mainKLineData;
            this.strategyExecutorInfo.CurrentDay       = mainKLineData.GetTradingTime().TradingDay;

            if (mainKLineData.IsDayStart())
            {
                this.strategyExecutorInfo.CurrentDayIndex++;
                //this.strategyExecutorInfo.CurrentDay = mainKLineData.GetTradingTime().TradingDay;
            }
        }
Beispiel #2
0
        public void TestKLineDataExtendDayStart()
        {
            string            code      = "RB1710";
            int               start     = 20170601;
            int               end       = 20170603;
            IKLineData_Extend klineData = DataCenter.Default.DataReader.KLineDataReader.GetData_Extend(code, start, end, KLinePeriod.KLinePeriod_1Minute);
            int               barPos    = klineData.BarPos;

            for (int i = 0; i < klineData.Length; i++)
            {
                Console.WriteLine(i + ":" + klineData.GetBar(i).ToString());
            }

            Assert.IsTrue(klineData.IsDayStart());
            klineData.BarPos += 1;
            Assert.IsFalse(klineData.IsDayStart());
            Assert.IsFalse(klineData.IsDayStart(barPos + 1));

            Assert.IsFalse(klineData.IsDayEnd(12));
            Assert.IsTrue(klineData.IsDayEnd(344));
            Assert.IsTrue(klineData.IsDayStart(345));
        }