Example #1
0
        public static IReadOnlyList <ScheduleSettings> GetMarketHoursScheduleSettings(
            this MarketSchedule marketSchedule,
            string marketId,
            string marketName,
            string assetRegex)
        {
            var result = new List <ScheduleSettings>();

            var daySessionsCount = marketSchedule.Open.Length;

            for (int i = 0; i < daySessionsCount; i++)
            {
                var isLastTradingSession = i == daySessionsCount - 1;
                var sessionClose         = marketSchedule.Close[i];
                var nextSessionOpen      = isLastTradingSession
                    ? marketSchedule.Open[0]
                    : marketSchedule.Open[i + 1];

                var ss = ScheduleSettings.Create(
                    $"{marketId}_none_working_hours_open{sessionClose}_close{nextSessionOpen}",
                    marketId,
                    marketName,
                    new ScheduleConstraint {
                    Time = sessionClose
                },
                    new ScheduleConstraint {
                    Time = nextSessionOpen
                },
                    assetRegex);

                result.Add(ss);
            }

            return(result);
        }
Example #2
0
 public static IReadOnlyList <ScheduleSettings> GetScheduleSettings(this IEnumerable <WorkingDay> days,
                                                                    string marketId,
                                                                    string marketName,
                                                                    string assetRegex)
 {
     return(days
            .Where(d => d.CanHaveScheduleConstraint())
            .Select(d => ScheduleSettings.Create(
                        d.GetScheduleId(marketId),
                        marketId,
                        marketName,
                        d.GetStartScheduleConstraint(),
                        d.GetEndScheduleConstraint(),
                        assetRegex))
            .ToList());
 }
Example #3
0
 public static ScheduleSettings GetSingleSessionScheduleSettings(string marketId,
                                                                 string marketName,
                                                                 string assetRegex,
                                                                 TimeSpan open,
                                                                 TimeSpan close)
 {
     return(ScheduleSettings.Create(
                $"{marketId}_working_hours_open{open}_close{close}",
                marketId,
                marketName,
                new ScheduleConstraint {
         Time = close
     },
                new ScheduleConstraint {
         Time = open
     },
                assetRegex));
 }
Example #4
0
        public static List <ScheduleSettings> MapWeekends(string marketId, string marketName, List <DayOfWeek> weekends, string assetPairRegex)
        {
            var result = new List <ScheduleSettings>();

            foreach (var weekend in weekends)
            {
                var start = new ScheduleConstraint
                {
                    DayOfWeek = weekend
                };
                var end = new ScheduleConstraint
                {
                    DayOfWeek = weekend == DayOfWeek.Saturday ? DayOfWeek.Sunday : weekend + 1
                };
                var id = $"{marketId}_{weekend.ToString()}";
                result.Add(ScheduleSettings.Create(id, marketId, marketName, start, end, assetPairRegex));
            }

            return(result);
        }
Example #5
0
        public static List <ScheduleSettings> MapHolidays(string marketId,
                                                          string marketName,
                                                          IEnumerable <DateTime> holidays,
                                                          string assetPairRegex)
        {
            var result = new List <ScheduleSettings>();

            foreach (var holiday in holidays)
            {
                var start = new ScheduleConstraint
                {
                    Date = holiday.Date
                };
                var end = new ScheduleConstraint
                {
                    Date = holiday.Date.AddDays(1)
                };
                var id = $"{marketId}_holiday_{holiday.Date}";
                result.Add(ScheduleSettings.Create(id, marketId, marketName, start, end, assetPairRegex));
            }

            return(result);
        }