private void CheckError(ITickData tickData, IKLineData klineData) { List <int[]> indeies = new List <int[]>(); for (int i = 0; i < klineData.Length; i++) { double startTime = klineData.Arr_Time[i]; double endTime = TimeUtils.AddMinutes(startTime, 1); int startIndex = TimeIndeierUtils.IndexOfTime_Tick(tickData, startTime); int endIndex = TimeIndeierUtils.IndexOfTime_Tick(tickData, endTime); indeies.Add(new int[] { startIndex, endIndex }); } CheckIndexArr(tickData, indeies); }
private double GetEndTime() { if (currentPeriodIndex == periods.Count - 1) { return(double.MaxValue); } double nextPeriod = periods[currentPeriodIndex + 1]; double period = periods[currentPeriodIndex]; TimeSpan span = TimeUtils.Substract(nextPeriod, period); double endTime = nextPeriod; if (span.Minutes > 5) { endTime = TimeUtils.AddMinutes(period, 5); } return(endTime); }
private int AdjustPeriodStart(TickData data, TickInfo_Period period) { //修改开始时间 int startIndex = period.StartIndex; double auctionTime = TimeUtils.AddMinutes(data.TradingDay + period.StartTime, -1); if (period.adjustInfo.IsOpen) { data.arr_time[period.StartIndex] = auctionTime; startIndex++; } double startTime = Math.Round(data.TradingDay + period.StartTime, 6);; double currentTime = data.arr_time[startIndex]; int index = startIndex; while (currentTime < startTime) { data.arr_time[index] = startTime; index++; currentTime = data.arr_time[index]; } return(index - period.StartIndex - (period.adjustInfo.IsOpen ? 1 : 0)); }