private void ForwardToday_TimeLineData(ITimeLineData_RealTime timeLineData) { if (timeLineData == null) { return; } ITickData_Extend currentTickData = forwardData.CurrentTickData; ITickBar nextTickBar = currentTickData.GetBar(currentTickData.BarPos + 1); int nextTimeLineBarPos = timeLineData.BarPos + 1; if (nextTimeLineBarPos >= timeLineData.Length) { TimeLineBar timeLineBar = GetTimeLineBar(timeLineData, nextTickBar, timeLineData.YesterdayEnd); timeLineData.ChangeCurrentBar(timeLineBar, timeLineData.BarPos); return; } else { double nextTime = timeLineData.Arr_Time[nextTimeLineBarPos]; TimeLineBar timeLineBar; if (nextTickBar.Time >= nextTime) { timeLineBar = GetTimeLineBar(nextTickBar, timeLineData.YesterdayEnd); timeLineData.ChangeCurrentBar(timeLineBar, nextTimeLineBarPos); } else { timeLineBar = GetTimeLineBar(timeLineData, nextTickBar, timeLineData.YesterdayEnd); timeLineData.ChangeCurrentBar(timeLineBar, timeLineData.BarPos); } } }
private void ForwardToday_TimeLineData(int mainBarPosIfFinished) { if (!dataForForward_Code.UseTimeLineData) { return; } ITickBar tickBar = dataForForward_Code.CurrentTickData; ITimeLineData_RealTime timeLineData = dataForForward_Code.CurrentTimeLineData; //该时段已经结束,跳到下一时段 if (isTimeLineEnd) { if (mainBarPosIfFinished > 0) { timeLineData.ResetCurrentBar(); timeLineData.BarPos = forwardDataIndeier.GetTimeLineBarPosIfFinished(mainBarPosIfFinished); return; } TimeLineBar timeLineBar2 = TimeLineUtils.GetTimeLineBar(tickBar, timeLineData.YesterdayEnd); int barP = forwardDataIndeier.GetTimeLineBarPosIfFinished(mainBarPosIfFinished); timeLineData.ChangeCurrentBar(timeLineBar2, barP); //timeLineData.ChangeCurrentBar(timeLineBar2, timeLineData.BarPos + 1); isTimeLineEnd = false; return; } TimeLineBar timeLineBar = TimeLineUtils.GetTimeLineBar(timeLineData, tickBar, timeLineData.YesterdayEnd); timeLineData.ChangeCurrentBar(timeLineBar); if (mainBarPosIfFinished > 0) { isTimeLineEnd = true; } }
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); }
public static void ChangeTime_TimeLineData(ITimeLineData_RealTime timeLineData, double time, ITickData_Extend tickData) { //if (timeLineData.Time == time) // return; int timeLineIndex = GetTimeLineIndex(timeLineData, time); int tickIndex = TimeIndeierUtils.IndexOfTime_Tick(tickData, time); double klineTime = timeLineData.Arr_Time[timeLineIndex]; int startTickIndex = GetStartTickIndex(timeLineData, tickData, timeLineIndex); TimeLineBar klineBar = GetTimeLineBar(tickData, startTickIndex, tickIndex, timeLineData.YesterdayEnd); timeLineData.ChangeCurrentBar(klineBar, timeLineIndex); }
public static TimeLineBar GetTimeLineBar(ITimeLineBar timelineBar, ITickBar tickBar, float lastEndPrice) { TimeLineBar bar = new TimeLineBar(); bar.Code = tickBar.Code; bar.Time = tickBar.Time; bar.Price = tickBar.Price; bar.Hold = tickBar.Hold; bar.Mount = timelineBar.Mount + tickBar.Mount; bar.UpRange = tickBar.Price - lastEndPrice; bar.UpPercent = (float)NumberUtils.percent(tickBar.Price, lastEndPrice); return(bar); }
private TimeLineData_RealTime GetTimeLineData_RealTime(TimeLineData timeLineData, ITickData tickData, double time) { this.timeLineData_RealTime = new TimeLineData_RealTime(this.timeLineData); int timeLineIndex = TimeIndeierUtils.IndexOfTime_TimeLine(this.timeLineData, time); //this.timeLineData_RealTime.IndexOfTime(time); int tickIndex = TimeIndeierUtils.IndexOfTime_Tick(tickData, time); double klineTime = timeLineData_RealTime.Arr_Time[timeLineIndex]; int startTickIndex = TimeIndeierUtils.IndexOfTime_Tick(tickData, klineTime); //IKLineData klineData = dataPackage.GetKLineData(date, date, 1, 0, KLinePeriod.KLinePeriod_1Day); float lastEndPrice = dataPackage.GetLastEndPrice(date); TimeLineBar klineBar = GetTimeLineBar(tickData, startTickIndex, tickIndex, lastEndPrice); timeLineData_RealTime.ChangeCurrentBar(klineBar, timeLineIndex); return(timeLineData_RealTime); }
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); }