Beispiel #1
0
 /// <summary>
 /// Finds the next open date that follows the specified date, this functions expects a date, not a date time
 /// </summary>
 private DateTime GetNextOpenDateAfter(DateTime date)
 {
     do
     {
         date = date + Time.OneDay;
     }while (!_exchange.DateIsOpen(date));
     return(date);
 }
Beispiel #2
0
 /// <summary>
 /// Define an enumerable date range of tradeable dates - skip the holidays and weekends when securities in this algorithm don't trade.
 /// </summary>
 /// <param name="exchange">The security to get tradeable dates for</param>
 /// <param name="from">Start date</param>
 /// <param name="thru">End date</param>
 /// <returns>Enumerable date range</returns>
 public static IEnumerable <DateTime> EachTradeableDay(SecurityExchange exchange, DateTime from, DateTime thru)
 {
     for (var day = from.Date; day.Date <= thru.Date; day = day.AddDays(1))
     {
         if (exchange.DateIsOpen(day))
         {
             yield return(day);
         }
     }
 }