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.IsTradingPeriodEnd(index)) { if (klineData.IsDayEnd(index)) { return(index); } double endTime = klineData.GetKLinePeriodEndTime(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 void DealTimeInfo() { if (mainKLineData.IsTradingPeriodStart(mainKLineData.BarPos)) { isTradingTimeStart = true; } else { isTradingTimeStart = false; } if (mainKLineData.IsTradingPeriodEnd(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; } }