private void AssertText(string code, int start, int end, string fileName) { List <string> list_OnBar = new List <string>(); IDataPackage_Code datapackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end, 0, 0); IKLineData_Extend klineData = datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Minute); ITickData tickData = datapackage.GetTickData(start); KLineToTickIndeier indeier = new KLineToTickIndeier(tickData, klineData); int lastBarPos; for (int i = 0; i < tickData.Length; i++) { list_OnBar.Add("tick:" + tickData.GetBar(i)); Console.WriteLine("tick:" + tickData.GetBar(i)); int pos = indeier.GetKLineBarPosIfFinished(i, out lastBarPos); if (pos >= 0) { list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(pos)); Console.WriteLine(klineData.Period + ":" + klineData.GetBar(pos)); for (int m = pos + 1; m <= lastBarPos; m++) { list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(m)); Console.WriteLine(klineData.Period + ":" + klineData.GetBar(m)); //lastBarPos = 1; } } } AssertUtils.AssertEqual_List(fileName, GetType(), list_OnBar); }
private static void DoIndex(List <string> list_OnBar, IKLineData_Extend klineData, ITickData tickData, KLineToTickIndeier indeier) { int lastBarPos; for (int i = 0; i < tickData.Length; i++) { list_OnBar.Add("tick:" + tickData.GetBar(i)); Console.WriteLine("tick:" + tickData.GetBar(i)); int pos = indeier.GetKLineBarPosIfFinished(i, out lastBarPos); if (pos >= 0) { list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(pos)); Console.WriteLine(klineData.Period + ":" + klineData.GetBar(pos)); for (int m = pos + 1; m <= lastBarPos; m++) { list_OnBar.Add(klineData.Period + ":" + klineData.GetBar(m)); Console.WriteLine(klineData.Period + ":" + klineData.GetBar(m)); } } } }
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); } }
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 void TestTimeLineToKLine() { string code = "RB1710"; int start = 20170601; int end = 20170605; IDataPackage_Code datapackage = DataCenter.Default.DataPackageFactory.CreateDataPackage_Code(code, start, end, 0, 0); IKLineData_Extend klineData = datapackage.GetKLineData(KLinePeriod.KLinePeriod_1Minute); //IKLineData_Extend klineData = datapackage.GetKLineData(KLinePeriod.KLinePeriod_5Minute); IList <int> tradingDays = datapackage.GetTradingDays(); ITimeLineData timeLineData = datapackage.GetTimeLineData(tradingDays[0]); TimeLineToKLineIndeier indeier = new TimeLineToKLineIndeier(klineData, timeLineData); int tradingDayIndex = 0; bool isFirst = true; for (int i = klineData.BarPos; i < klineData.Length; i++) { if (!isFirst && klineData.IsDayStart(i)) { tradingDayIndex++; if (tradingDayIndex >= tradingDays.Count) { return; } timeLineData = datapackage.GetTimeLineData(tradingDays[tradingDayIndex]); indeier.ChangeTradingDay(timeLineData); } isFirst = false; klineData.BarPos = i; Console.WriteLine(klineData.Period + ":" + klineData.GetBar(i)); int barPos = indeier.GetTimeLineBarPosIfFinished(i); if (barPos >= 0) { timeLineData.BarPos = barPos; Console.WriteLine("分时线:" + timeLineData.GetBar(barPos)); } Assert.AreEqual(klineData.Time, timeLineData.Time); Assert.AreEqual(klineData.End, timeLineData.Price); } }
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)); }