Example #1
0
 /// <summary>
 /// Create a market session
 /// </summary>
 /// <param name="type"></param>
 /// <param name="start"></param>
 /// <param name="end"></param>
 /// <param name="comment"></param>
 public LocalMarketSession(MarketSessionType type, TimeSpan start, TimeSpan end, string comment = "")
 {
     Start   = start;
     End     = end;
     Type    = type;
     Comment = comment;
 }
Example #2
0
        /// <summary>
        /// Load regular session timings from cache for given exchangeModel
        /// </summary>
        private void LoadRegularSessions()
        {
            //Check if it is already loaded
            if (IsRegularLoaded)
            {
                return;
            }

            //get from config
            var config = Config.MarketHourConfig.FirstOrDefault(x => x.Exchanges.Contains(ExchangeName));

            //Check if we have configuration
            if (config == null)
            {
                throw new Exception($"Cannot load correct exchangeModel market hours. Tried loading: {ExchangeName}");
            }

            //Set helper function
            void Add(MarketHoursSessionConfig loaded, Dictionary <MarketSessionType, LocalMarketSession> sessions)
            {
                //Set variables
                MarketSessionType type  = (MarketSessionType)Enum.Parse(typeof(MarketSessionType), loaded.Session.ToLower(), true);
                TimeSpan          start = TimeSpan.Parse(loaded.Start);
                TimeSpan          end   = TimeSpan.Parse(loaded.End);

                //Add to input
                sessions.Add(type, new LocalMarketSession(type, start, end, "Regular"));
            }

            //Get for each day
            _monday = new Dictionary <MarketSessionType, LocalMarketSession>();
            config.Monday.ForEach(x => Add(x, _monday));

            _tuesday = new Dictionary <MarketSessionType, LocalMarketSession>();
            config.Tuesday.ForEach(x => Add(x, _tuesday));

            _wednesday = new Dictionary <MarketSessionType, LocalMarketSession>();
            config.Wednesday.ForEach(x => Add(x, _wednesday));

            _thursday = new Dictionary <MarketSessionType, LocalMarketSession>();
            config.Thursday.ForEach(x => Add(x, _thursday));

            _friday = new Dictionary <MarketSessionType, LocalMarketSession>();
            config.Friday.ForEach(x => Add(x, _friday));

            _saturday = new Dictionary <MarketSessionType, LocalMarketSession>();
            config.Saturday.ForEach(x => Add(x, _saturday));

            _sunday = new Dictionary <MarketSessionType, LocalMarketSession>();
            config.Sunday.ForEach(x => Add(x, _sunday));
        }