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; } }
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)); }