public ForwardDataIndeier(DataForForward_Code dataForForward) { this.dataForForward = dataForForward; if (this.dataForForward.ReferedKLinePeriods.Count > 1) { List <IKLineData_Extend> indexKLines = new List <IKLineData_Extend>(); for (int i = 0; i < this.dataForForward.ReferedKLinePeriods.Count; i++) { KLinePeriod klinePeriod = this.dataForForward.ReferedKLinePeriods[i]; if (this.dataForForward.MainKLinePeriod == klinePeriod) { continue; } indexKLines.Add(this.dataForForward.GetKLineData(klinePeriod)); } this.klineToKlineIndeier = new KLineToKLineIndeier(dataForForward.MainKLine, indexKLines); } if (this.dataForForward.UseTickData) { int tradingDay = dataForForward.TradingDay; ITickData_Extend tickData = this.dataForForward.CurrentTickData; this.klineToTickIndeier = new KLineToTickIndeier(tickData, dataForForward.MainKLine); } if (this.dataForForward.UseTimeLineData) { int tradingDay = dataForForward.TradingDay; ITimeLineData_Extend timeLineData = this.dataForForward.CurrentTimeLineData; this.timeToKLineIndeier = new TimeLineToKLineIndeier(dataForForward.MainKLine, timeLineData); } }
private void PrintKLines(int mainPos, KLineToKLineIndeier indeier, IList <IKLineData_Extend> indexKLines, List <string> list_OnBar) { for (int i = 0; i < indexKLines.Count; i++) { IKLineData klineData = indexKLines[i]; int pos = indeier.GetOtherKLineBarPosIfFinished(mainPos, klineData.Period); if (pos >= 0) { list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(pos)); Console.WriteLine(klineData.Period + ":" + klineData.GetBar(pos)); } } }
private void AssertKLineToKLine(string code, int start, int end, List <string> list_OnBar) { IDataPackage_Code datapackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end); IKLineData_Extend mainKLine = datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Minute); IList <IKLineData_Extend> indexKLines = new List <IKLineData_Extend>(); indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_5Minute)); indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_15Minute)); indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Hour)); indexKLines.Add(datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Day)); KLineToKLineIndeier indeier = new KLineToKLineIndeier(mainKLine, indexKLines); int startMainPos = mainKLine.BarPos; int endMainPos = mainKLine.Length - 1; for (int i = startMainPos; i <= endMainPos; i++) { Console.WriteLine(mainKLine.Period + ":" + mainKLine.GetBar(i)); list_OnBar.Add(mainKLine.Period + ":" + mainKLine.GetBar(i)); PrintKLines(i, indeier, indexKLines, list_OnBar); } }