private static int IndexOfTime(IKLineData_RealTime klineData, KLinePeriod klinePeriod, double time, int date) { if (klinePeriod.PeriodType == KLineTimeType.DAY) { return(TimeIndeierUtils.IndexOfTime_KLine(klineData.GetKLineData_Original(), date)); } else { int index = TimeIndeierUtils.IndexOfTime_KLine(klineData, time); if (klineData.IsTradingTimeEnd(index)) { double endTime = klineData.GetEndTime(index); if (index >= klineData.Length - 1) { return(index); } double nextStartTime = klineData.Arr_Time[index + 1]; double middleTime = (endTime + nextStartTime) / 2; if (time < middleTime) { return(index); } return(index + 1); } return(index); } }
private double GetEndTime(IKLineData_RealTime klineData, int barPos) { double endTime = klineData.GetEndTime(barPos); if (barPos < klineData.Length - 1 && klineData.IsTradingTimeEnd(barPos)) { endTime = (endTime + klineData.Arr_Time[barPos + 1]) / 2; } return(endTime); }
private static double GetEndTime(IKLineData_RealTime klineData, int barPos) { if (klineData.Period.PeriodType >= KLineTimeType.DAY) { return(klineData.Time); } double endTime = klineData.GetEndTime(barPos); if (barPos < klineData.Length - 1 && klineData.IsTradingTimeEnd(barPos)) { endTime = (endTime + klineData.Arr_Time[barPos + 1]) / 2; } return(endTime); }
private void DealTimeInfo() { if (mainKLineData.IsTradingTimeStart(mainKLineData.BarPos)) { isTradingTimeStart = true; } else { isTradingTimeStart = false; } if (mainKLineData.IsTradingTimeEnd(mainKLineData.BarPos)) { isTradingTimeEnd = true; } else { isTradingTimeEnd = false; } if (mainKLineData.IsDayStart(mainKLineData.BarPos)) { isDayStart = true; } else { isDayStart = false; } if (mainKLineData.IsDayEnd(mainKLineData.BarPos)) { isDayEnd = true; } else { isDayEnd = false; } }