public static KLineBar GetKLineBar(IKLineBar klineBar, ITickData tickData, int startIndex, int endIndex) { KLineBar bar = new KLineBar(); ITickBar endTickBar = tickData.GetBar(endIndex); bar.Time = endTickBar.Time; bar.Start = klineBar.Start; float high = klineBar.High; float low = klineBar.Low; float money = klineBar.Money; int mount = klineBar.Mount; for (int i = startIndex; i <= endIndex; i++) { ITickBar tickBar = tickData.GetBar(i); if (high < tickBar.Price) { high = tickBar.Price; } if (low > tickBar.Price) { low = tickBar.Price; } money += tickBar.Mount * tickBar.Price; mount += tickBar.Mount; } bar.High = high; bar.Low = low; bar.End = endTickBar.Price; bar.Money = money; bar.Mount = mount; bar.Hold = endTickBar.Hold; return(bar); }
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 void DrawRecentTick(Graphics g, Point startPoint, ITickData tickData, double lastEndPrice) { int defaultLeft = startPoint.X + 2; Point p = new Point(defaultLeft, startPoint.Y + 2); Color titleColor = ColorUtils.GetColor("#808080"); g.DrawString("时间", new Font("宋体", 11, FontStyle.Regular), new SolidBrush(titleColor), p); p.X += 90; g.DrawString("价位", new Font("宋体", 11, FontStyle.Regular), new SolidBrush(titleColor), p); p.X += 40; g.DrawString("现手", new Font("宋体", 11, FontStyle.Regular), new SolidBrush(titleColor), p); p.X += 40; g.DrawString("增仓", new Font("宋体", 11, FontStyle.Regular), new SolidBrush(titleColor), p); p.X += 40; g.DrawString("开平", new Font("宋体", 11, FontStyle.Regular), new SolidBrush(titleColor), p); if (tickData == null) { return; } //TODO 未考虑周全 int showCount = tickData.BarPos >= 15 ? 15 : tickData.BarPos; int startBarPos = tickData.BarPos - showCount; for (int i = 0; i < showCount; i++) { ITickBar tickBar = tickData.GetBar(startBarPos); ITickBar lastTickBar = startBarPos <= 0 ? null : tickData.GetBar(startBarPos - 1); p.X = defaultLeft; p.Y += 25; DrawTickBar(g, p, tickBar, lastTickBar, lastEndPrice); startBarPos++; } }
private static TimeLineBar GetTimeLineBar(ITickData tickData, int startIndex, int endIndex, float lastEndPrice) { TimeLineBar timeLineBar = TimeLineUtils.GetTimeLineBar(tickData.GetBar(startIndex), lastEndPrice); for (int i = startIndex + 1; i <= endIndex; i++) { timeLineBar = TimeLineUtils.GetTimeLineBar(timeLineBar, tickData.GetBar(i), lastEndPrice); } return(timeLineBar); }
private static KLineBar GetKLineBar(ITickData tickData, int startIndex, int endIndex) { KLineBar klineBar = KLineUtils.GetKLineBar(tickData.GetBar(startIndex)); for (int i = startIndex + 1; i <= endIndex; i++) { klineBar = KLineUtils.GetKLineBar(klineBar, tickData.GetBar(i)); } return(klineBar); }
public static void PrintTickData(ITickData tickData) { for (int i = 0; i < tickData.Length; i++) { Console.WriteLine(tickData.GetBar(i)); } }
/// <summary> /// 检验tick数据的正确性 /// </summary> /// <param name="tickData"></param> /// <param name="newTickData"></param> public static void AssertEqual_TickData(ITickData tickData, ITickData newTickData) { Assert.AreEqual(newTickData.Length, tickData.Length); for (int i = 0; i < tickData.Length; i++) { Assert.AreEqual(newTickData.GetBar(i).ToString(), tickData.GetBar(i).ToString()); } }
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)); } } } }
public void Write() { FileUtils.EnsureParentDirExist(path); StreamWriter sw = File.AppendText(path); try { for (int i = startIndex; i <= endIndex; i++) { sw.WriteLine(tickData.GetBar(i)); } } finally { sw.Close(); } }
public static TimeLineBar GetTimeLineBar(ITimeLineBar timeLineBar, ITickData tickData, int startIndex, int endIndex, float lastEndPrice) { TimeLineBar bar = new TimeLineBar(); bar.Code = tickData.Code; ITickBar endTickBar = tickData.GetBar(endIndex); bar.Time = endTickBar.Time; bar.Price = endTickBar.Price; bar.Hold = endTickBar.Hold; bar.UpRange = endTickBar.Price - lastEndPrice; bar.UpPercent = (float)NumberUtils.percent(endTickBar.Price, lastEndPrice); int mount = timeLineBar.Mount; for (int i = startIndex; i <= endIndex; i++) { mount += tickData.Arr_Mount[i]; } bar.Mount = mount; bar.Hold = endTickBar.Hold; return(bar); }
public ITickBar GetBar(int index) { return(tickData.GetBar(index)); }