internal static IDataPackage_Code CreateDataPackage(IDataReader dataReader, string code, int openDate, int beforeDays, int afterDays, int minKlineBefore, int minKlineAfter) { ITradingTimeReader_Code tradingTimeReader = dataReader.CreateTradingTimeReader(code); ITradingDayReader tradingDayReader = dataReader.TradingDayReader; int index = dataReader.TradingDayReader.GetTradingDayIndex(openDate); int startIndex = index - beforeDays; startIndex = startIndex < 0 ? 0 : startIndex; int startDate = tradingDayReader.GetTradingDay(startIndex); startDate = tradingTimeReader.GetRecentTradingDay(startDate, true); int endIndex = index + afterDays; if (endIndex >= tradingDayReader.GetAllTradingDays().Count) { endIndex = tradingDayReader.GetAllTradingDays().Count - 1; } int endDate = tradingDayReader.GetTradingDay(endIndex); //endDate = tradingTimeReader.GetRecentTradingDay(endDate, false); return(CreateDataPackage(dataReader, code, startDate, endDate, minKlineBefore, minKlineAfter)); }
public void TestTradingSession_GetTradingDay() { ITradingTimeReader_Code reader = GetTradingSessionCache_Instrument("m1405"); int date = reader.GetTradingDay(20140505.092000); Assert.AreEqual(20140505, date); date = reader.GetTradingDay(20140505.082000); Assert.AreEqual(-1, date); date = reader.GetRecentTradingDay(20140505.082000); Assert.AreEqual(20140430, date); date = reader.GetRecentTradingDay(20140505.192000); Assert.AreEqual(20140505, date); reader = GetTradingSessionCache_Instrument("m1605"); date = reader.GetTradingDay(20150717.220000); Assert.AreEqual(20150720, date); date = reader.GetTradingDay(20150718.220000); Assert.AreEqual(20150720, date); date = reader.GetRecentTradingDay(20150816.100000, true); Assert.AreEqual(20150817, date); date = reader.GetRecentTradingDay(20150816.100000, false); Assert.AreEqual(20150817, date); date = reader.GetRecentTradingDay(20150816.100000, false); Assert.AreEqual(20150817, date); date = reader.GetRecentTradingDay(20150814.160000, true); Assert.AreEqual(20150817, date); date = reader.GetRecentTradingDay(20150814.160000, false); Assert.AreEqual(20150814, date); date = reader.GetRecentTradingDay(30150718.220000); Assert.AreEqual(20160520, date); reader = GetTradingSessionCache_Instrument("m1705"); date = reader.GetRecentTradingDay(20170130.10, false); Assert.AreEqual(20170126, date); date = reader.GetRecentTradingDay(20170130.10); Assert.AreEqual(20170126, date); reader = GetTradingSessionCache_Instrument("m0405"); date = reader.GetRecentTradingDay(10150718.220000); Assert.AreEqual(-1, date); reader = GetTradingSessionCache_Instrument("RB1805"); date = reader.GetRecentTradingDay(20171221.2101); Assert.AreEqual(20171222, date); }