public IPortfolioValuationHistory GetPortfolioValuationHistory(string filePath) { PortfolioValuationSummaryDataModel portfolioModel = _portfolioModelDeserialiser.GetReportDataModel(filePath); var portfolioValuationHistory = new PortfolioValuationHistory(portfolioModel.MetaData.PortfolioName, (double)portfolioModel.MetaData.InitialBalance); IEnumerable <IValuationData> valuationData = portfolioModel.PortfolioValuationData.Select(x => new ValuationData(x.ValuationDate, (double)x.PortfolioValuation)); valuationData.ToList().ForEach(portfolioValuationHistory.AddValuationData); return(portfolioValuationHistory); }
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; }