Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EquityExchangeModel"/> class.
        /// </summary>
        /// <param name="configexchangename">The configexchangename.</param>
        /// <param name="clock">The clock.</param>
        /// <param name="extendedmarkethours">if set to <c>true</c> [extendedmarkethours].</param>
        /// <exception cref="ArgumentException">
        /// Configuration exchangeModel name cannot be empty.
        /// </exception>
        public EquityExchangeModel(string configexchangename, WorldClock clock, bool extendedmarkethours)
        {
            //Check configuration
            if (string.IsNullOrWhiteSpace(configexchangename))
            {
                throw new ArgumentException("Configuration exchangeModel name cannot be empty.");
            }

            //Load config
            var config = Config.MarketHourConfig.FirstOrDefault(x => x.Exchanges.Contains(configexchangename));

            if (config == null)
            {
                throw new ArgumentException($"Could not load configuration with name {configexchangename}");
            }

            //Set information
            WorldClock            = clock;
            TimeZone              = (TimeZone)Enum.Parse(typeof(TimeZone), config.TimeZone);
            LocalMarketSessionDay = new LocalMarketSessionDay(configexchangename);
            LocalHoliday          = new LocalHoliday(configexchangename, LocalMarketSessionDay);
            Name = configexchangename;
            ExtendedMarketHours = extendedmarkethours;
        }
Exemple #2
0
 /// <summary>
 /// Returns the local market session day instance and checks for holidays
 /// </summary>
 /// <param name="localtime"></param>
 /// <returns></returns>
 private LocalMarketSessionDay GetDaysSession(DateTime localtime) =>
 LocalHoliday.IsHoliday(localtime.Date) ?
 LocalHoliday.GetHolidaySession(localtime.Date) :
 LocalMarketSessionDay;