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 bool IsCurrentTradingTimeEnd() { if (IsPeriodEnd(dataForForward_Code.MainKLinePeriod)) { IKLineData_RealTime mainKlineData = dataForForward_Code.MainKLine; if (mainKlineData.IsTradingPeriodEnd(mainKlineData.BarPos)) { return(true); } } return(false); }
private static double GetEndTime(IKLineData_RealTime klineData, int barPos) { if (klineData.Period.PeriodType >= KLineTimeType.DAY) { return(klineData.Time); } double endTime = klineData.GetKLinePeriodEndTime(barPos); if (barPos < klineData.Length - 1 && klineData.IsTradingPeriodEnd(barPos)) { endTime = (endTime + klineData.Arr_Time[barPos + 1]) / 2; } return(endTime); }
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; } }