/// <summary> /// Define an enumerable Date Range: /// </summary> /// <param name="securities">Securities we have in portfolio</param> /// <param name="from">start date</param> /// <param name="thru">end date</param> /// <returns>Enumerable Date Range:</returns> public static IEnumerable <DateTime> EachTradeableDay(SecurityManager securities, DateTime from, DateTime thru) { for (var day = from.Date; day.Date <= thru.Date; day = day.AddDays(1)) { if (Time.TradableDate(securities, day)) { yield return(day); } } }
/// <summary> /// Number of Tradeable Dates within this Period. /// </summary> /// <param name="securities">Securities we're trading</param> /// <param name="start">Start of Date Loop</param> /// <param name="finish">End of Date Loop</param> /// <returns>Number of Dates</returns> public static int TradeableDates(SecurityManager securities, DateTime start, DateTime finish) { int count = 0; try { foreach (DateTime day in Time.EachDay(start, finish)) { if (Time.TradableDate(securities, day)) { count++; } } } catch (Exception err) { Log.Error("Time.TradeableDates(): " + err.Message); } return(count); }
/// <summary> /// Could of the number of tradeable dates within this period. /// </summary> /// <param name="securities">Securities we're trading</param> /// <param name="start">Start of Date Loop</param> /// <param name="finish">End of Date Loop</param> /// <returns>Number of dates</returns> public static int TradeableDates(ICollection <Security> securities, DateTime start, DateTime finish) { var count = 0; Log.Trace("Time.TradeableDates(): Security Count: " + securities.Count); try { foreach (var day in Time.EachDay(start, finish)) { if (Time.TradableDate(securities, day)) { count++; } } } catch (Exception err) { Log.Error("Time.TradeableDates(): " + err.Message); } return(count); }