Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }