private int Forward(DataForForward_Code dataForForward, ForwardDataIndeier indeier, int tradingDay, int klineIndex, List <string> list_OnBar) { IKLineData_Extend klineData = dataForForward.GetMainKLineData(); ITickData_Extend tickData = dataForForward.CurrentTickData; int lastMainKLineBarPos; int mainBarPos = 0; KLinePeriod mainPeriod = dataForForward.MainKLinePeriod; for (int i = 0; i < tickData.Length; i++) { tickData.BarPos = i; Console.WriteLine("tick:" + tickData); list_OnBar.Add("tick:" + tickData); mainBarPos = indeier.GetMainKLineBarPosIfFinished(i, out lastMainKLineBarPos); if (mainBarPos < 0) { continue; } PrintData(dataForForward, indeier, klineData, mainBarPos, mainPeriod, list_OnBar); if (lastMainKLineBarPos >= 0 && lastMainKLineBarPos != mainBarPos) { for (int m = mainBarPos + 1; m <= lastMainKLineBarPos; m++) { PrintData(dataForForward, indeier, klineData, m, mainPeriod, list_OnBar); } } } return(mainBarPos); }
private void AssertForwardData(string code, int start, int end, List <string> list_OnBar) { IDataPackage_Code dataPackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end, 0, 0); List <KLinePeriod> usedKLinePeriods = new List <KLinePeriod>(); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Minute); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_5Minute); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_15Minute); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Hour); usedKLinePeriods.Add(KLinePeriod.KLinePeriod_1Day); ForwardReferedPeriods referedPeriods = new ForwardReferedPeriods(usedKLinePeriods, true, true); DataForForward_Code dataForForward = new DataForForward_Code(dataPackage, referedPeriods); List <int> tradingDays = dataForForward.TradingDayReader.GetAllTradingDays(); dataForForward.TradingDay = tradingDays[0]; ForwardDataIndeier indeier = new ForwardDataIndeier(dataForForward); IKLineData_Extend klineData = dataForForward.MainKLine; int currentBarPos = klineData.BarPos; for (int i = 0; i < tradingDays.Count; i++) { int tradingDay = tradingDays[i]; dataForForward.TradingDay = tradingDay; currentBarPos = Forward(dataForForward, indeier, tradingDay, currentBarPos, list_OnBar); } }
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); } }
public DataNavigate_Code2(IDataPackage_Code dataPackage, DataForForward_Code forwarddata) { this.dataPackage = dataPackage; foreach (KLinePeriod klinePeriod in forwarddata.ReferedKLinePeriods) { IKLineData_RealTime klineData = forwarddata.GetKLineData(klinePeriod); //this.dicNavigateKLine.Add(klinePeriod,new DataNavigate_Code_KLine()) } //dicNavigateKLine //this.NavigateTo(time); }
public static DataForNavigate_Code Create(DataForForward_Code dataForForward) { DataForNavigate_Code dataForNav = new DataForNavigate_Code(dataForForward.DataPackage, dataForForward.Time); foreach (KLinePeriod klinePeriod in dataForForward.ReferedKLinePeriods) { IKLineData_RealTime klineData = dataForForward.GetKLineData(klinePeriod); dataForNav.dic_Period_KLineData.Add(klinePeriod, klineData); } return(dataForNav); }
private static void PrintData(DataForForward_Code dataForForward, ForwardDataIndeier indeier, IKLineData_Extend klineData, int mainBarPos, KLinePeriod mainPeriod, List <string> list_OnBar) { Console.WriteLine(klineData.Period + ":" + klineData.GetBar(mainBarPos)); list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(mainBarPos)); for (int m = 0; m < dataForForward.ReferedKLinePeriods.Count; m++) { KLinePeriod period = dataForForward.ReferedKLinePeriods[m]; if (mainPeriod.Equals(period)) { continue; } int barPos = indeier.GetOtherKLineBarPosIfFinished(mainBarPos, period); if (barPos >= 0) { IKLineData otherKLine = dataForForward.GetKLineData(period); Console.WriteLine(period + ":" + otherKLine.GetBar(barPos)); list_OnBar.Add(period + ":" + otherKLine.GetBar(barPos)); } } Console.WriteLine("分时线:" + dataForForward.CurrentTimeLineData.GetBar(mainBarPos)); list_OnBar.Add("分时线:" + dataForForward.CurrentTimeLineData.GetBar(mainBarPos)); }
public DataForward_AttachCode_Tick(IDataPackage_Code dataPackage, ForwardReferedPeriods referedPeriods) { this.dataPackage = dataPackage; this.referedPeriods = referedPeriods; this.dataForForward = new DataForForward_Code(dataPackage, referedPeriods); }