Пример #1
0
        public ExchangeRateTrend GetExchangeRateTrend()
        {
            var exchangeRatesForCurrentDay = _exchangeRatesStorage.GetExchangeRatesForCurrentDay();

            if (!exchangeRatesForCurrentDay.Any())
            {
                return(ExchangeRateTrend.Unknown);
            }

            try
            {
                var currentDayTimeSeries    = new TimeSeries(exchangeRatesForCurrentDay, _options.Value.TimeSeriesPeriod);
                var currentDayMovingAverage = TrendIndicators.GetExponentialMovingAverage(currentDayTimeSeries.Values);

                var previousDaysToConsider    = _options.Value.NumberOfPreviousDaysToConsider;
                var previousDaysMovingAverage = TrendIndicators.GetExponentialMovingAverage(_exchangeRatesStorage
                                                                                            .GetClosingPricesForPreviousDays(previousDaysToConsider).ToArray());

                return(GetExchangeRateTrend(currentDayMovingAverage, previousDaysMovingAverage));
            }
            catch (NotEnoughDataException)
            {
                return(ExchangeRateTrend.Unknown);
            }
        }