private void SetPerformanceComparisonChart(MoneyBalanceOverTime cashResults, MoneyBalanceOverTime standardResult, MoneyBalanceOverTime experimentalResult) { this.PerformanceChart.Series.Clear(); string title = string.Format("Compare: {0} vs {1} vs {2}", cashResults.BaseInvestmentStategy.StategyName, standardResult.BaseInvestmentStategy.StategyName, experimentalResult.BaseInvestmentStategy.StategyName); this.PerformanceChart.Titles.Add(title); Series cashSeries = this.PerformanceChart.Series.Add(cashResults.BaseInvestmentStategy.StategyName); cashSeries.ChartType = SeriesChartType.FastLine; cashSeries.Color = Color.Green; Series standardSeries = this.PerformanceChart.Series.Add(standardResult.BaseInvestmentStategy.StategyName); standardSeries.ChartType = SeriesChartType.FastLine; standardSeries.Color = Color.Blue; Series experimentalSeries = this.PerformanceChart.Series.Add(experimentalResult.BaseInvestmentStategy.StategyName); experimentalSeries.ChartType = SeriesChartType.FastLine; experimentalSeries.Color = Color.Orange; for (DateTime currentDate = standardResult.StartDate; currentDate < standardResult.EndDate; currentDate = currentDate.AddDays(1)) { //Closing value chart var standardDateValue = standardResult.DataDictionary[currentDate]; var experimentDateValue = experimentalResult.DataDictionary[currentDate]; var saveCashDateValue = cashResults.DataDictionary[currentDate]; standardSeries.Points.AddXY(currentDate, standardDateValue.NetWorth); experimentalSeries.Points.AddXY(currentDate, experimentDateValue.NetWorth); cashSeries.Points.AddXY(currentDate, saveCashDateValue.NetWorth); } }
public void ChartResults(MoneyBalanceOverTime cashResults, MoneyBalanceOverTime standardResult, MoneyBalanceOverTime experimentalResult) { amountInvestedValueLabel.Text = "$ " + Math.Round(experimentalResult.AmountInvested, 2).ToString("#,##0.00"); totalNetWorthLabel.Text = "$ " + Math.Round(experimentalResult.DataDictionary[experimentalResult.EndDate].NetWorth, 2).ToString("#,##0.00"); if (experimentalResult.AmountInvested > 0) { WorthOverInvestRatio.Text = Math.Round(experimentalResult.DataDictionary[experimentalResult.EndDate].NetWorth / experimentalResult.AmountInvested, 2).ToString(); } SetClosingValueChart(standardResult, experimentalResult); SetAveragesAndStandardDeviationChart(standardResult, experimentalResult); SetPerformanceComparisonChart(cashResults, standardResult, experimentalResult); SetDerivativesChart(experimentalResult); SetMutedValuesChart(experimentalResult); experimentalResult.ToCSVFile(); experimentalResult.ToMutedCSVFile(); //SetMutedComparisonResult(experimentalResult); }