Обнаружил небольшую багу при добавлении SpecialWorkingDays и SpecialHolidays.
WorkingTime.IsTradeDate проверяет целиком весь DateTime, а не только компоненту Date, что есть неверно.
Код
DateTime w0 = DateTime.ParseExact("20120428", "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime w1 = DateTime.ParseExact("20120428-1000", "yyyyMMdd-HHmm", CultureInfo.InvariantCulture);
DateTime w2 = DateTime.ParseExact("20120428-1100", "yyyyMMdd-HHmm", CultureInfo.InvariantCulture);
Exchange.Rts.WorkingTime.SpecialWorkingDays = new[] { w0 };
Console.WriteLine("{0} isTradeDate: {1}", w0, Exchange.Rts.WorkingTime.IsTradeDate(w0, true));
Console.WriteLine("{0} isTradeDate: {1}", w1, Exchange.Rts.WorkingTime.IsTradeDate(w1, true));
Console.WriteLine("{0} isTradeDate: {1}", w2, Exchange.Rts.WorkingTime.IsTradeDate(w2, true));
DateTime h0 = DateTime.ParseExact("20120427", "yyyyMMdd", CultureInfo.InvariantCulture);
DateTime h1 = DateTime.ParseExact("20120427-1000", "yyyyMMdd-HHmm", CultureInfo.InvariantCulture);
DateTime h2 = DateTime.ParseExact("20120427-1100", "yyyyMMdd-HHmm", CultureInfo.InvariantCulture);
Exchange.Rts.WorkingTime.SpecialHolidays = new[] { h0 };
Console.WriteLine("{0} isTradeDate: {1}", h0, Exchange.Rts.WorkingTime.IsTradeDate(h0, true));
Console.WriteLine("{0} isTradeDate: {1}", h1, Exchange.Rts.WorkingTime.IsTradeDate(h1, true));
Console.WriteLine("{0} isTradeDate: {1}", h2, Exchange.Rts.WorkingTime.IsTradeDate(h2, true));