Esempio n. 1
0
        public PortfolioRunStatistics GetPortfolioRunStatistics(IPortfolioStatisticsData statisticsData)
        {
            var portfolioRunStatistics = new PortfolioRunStatistics
            {
                DailyReturnsVolatility   = statisticsData.DailyReturnsVolatility,
                FinalValuation           = statisticsData.FinalValuation,
                InitialValuation         = statisticsData.InitialValuation,
                ReturnsToVolatilityRatio = statisticsData.ReturnsToVolatilityRatio,
                TotalReturns             = statisticsData.TotalReturns
            };

            return(portfolioRunStatistics);
        }
        private void EnrichReportingModelWithStatistics()
        {
            var portfolioValuationHistory = new PortfolioValuationHistory(_portfolioValuationSummary.MetaData.PortfolioName, (double)_portfolioValuationSummary.MetaData.InitialBalance);
            IEnumerable <IValuationData> valuationData = _portfolioValuationSummary.PortfolioValuationData.Select(x => new ValuationData(x.ValuationDate, (double)x.PortfolioValuation));

            valuationData.ToList().ForEach(portfolioValuationHistory.AddValuationData);

            IPortfolioStatisticsData statisticsCalculationData = _statisticsCalculationManager.GetPortfolioStatisticsData(portfolioValuationHistory);

            _logger.Information($"Portfolio run from {statisticsCalculationData.StartDate.ToString("yyyy-MM-dd")} to {statisticsCalculationData.EndDate.ToString("yyyy-MM-dd")}");
            _logger.Information($"Portfolio name: {statisticsCalculationData.PortfolioIdentifier}");
            _logger.Information(string.Format("Initial valuation: {0:0.00}", statisticsCalculationData.InitialValuation));
            _logger.Information(string.Format("Final valuation: {0:0.00}", statisticsCalculationData.FinalValuation));
            _logger.Information(string.Format("Portfolio Total Returns: {0:0.00} %", statisticsCalculationData.TotalReturns));
            _logger.Information(string.Format("Portfolio Standard Deviation: {0:0.00} %", statisticsCalculationData.DailyReturnsVolatility));
            _logger.Information(string.Format("Returns to Volatility ratio: {0:0.00}", statisticsCalculationData.ReturnsToVolatilityRatio));

            PortfolioRunStatistics portfolioStatistics = _xmlModelFactory.GetPortfolioRunStatistics(statisticsCalculationData);

            _portfolioValuationSummary.RunStatistics = portfolioStatistics;
        }