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); } }