public void Bind(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_) { m_eval = eval_; m_period = period_; ClearSeries(); DatedDataCollectionGen<double> daily = eval_.Daily; AddSeries(eval_.Daily.Dates, eval_.Daily.CumulativeReturnSeries, "Cumulative Pnl", 40, "##0.0#%"); { DatedDataCollectionGen<double>[] years = new DatedDataCollectionGen<double>[] { daily.ToYearsCumulativeYTD(), daily.ToYearsCumulativeYTD() }; int index = 1; for (int i = 0; i < years[0].Length; ++i) { if (i>0 && years[0].Dates[i].Year != years[0].Dates[i - 1].Year) index = (index == 1) ? 0 : 1; years[index].Data[i] = 0d; } if (ShowYearly) { AddSeries(years[0].Dates, years[0].Data, "YTD Cumulative(A)", 40, "##0.0#%"); AddSeries(years[1].Dates, years[1].Data, "YTD Cumulative(B)", 40, "##0.0#%"); } } //AddSeries(daily.Dates, daily.ToYearsCumulativeYTD().Data, "YTD Cumulative", 40, "##0.0#%"); //AddSeries(daily.Dates, daily.ToMonthsCumulativeMTD().Data, "MTD Cumulative", 40, "##0.0#%"); }
public void Create(ReturnsEval.DataSeriesEvaluator eval_, ReturnsEval.Period period_, int[] filterIndicies_) { dt.Rows.Clear(); dt.Columns.Clear(); ultraChart.ColorModel.Skin.PEs.Clear(); if (eval_.InnerSeries.Count == 0) return; m_eval = eval_; m_period = period_; m_filterIndicies = filterIndicies_; if (m_filterIndicies == null) { m_filterIndicies = new int[eval_.InnerSeries.Count]; for (int i = 0; i < m_filterIndicies.Length; ++i) m_filterIndicies[i] = i; } dt.Columns.Add("Title", typeof(string)); for(int i=0;i<m_filterIndicies.Length;++i) { dt.Columns.Add(eval_.InnerSeries[m_filterIndicies[i]].Name, typeof(double)); ultraChart.ColorModel.Skin.PEs.Add(new PaintElement(ColorAttribute.GetColor(i))); } ultraChart.DataSource = dt; ultraChart.DataBind(); string dateFormat = EnumHelper.GetAttribute<ReturnsEval.DateDisplayFormatAttribute>(period_).Format; ReturnsEval.DataSeries series = eval_[period_]; for(int j=0;j<series.Dates.Length;++j) { DataRow row = dt.NewRow(); row[0] = series.Dates[j].ToString(dateFormat); for(int i=0;i<m_filterIndicies.Length;++i) { row[i + 1] = eval_.InnerSeries[m_filterIndicies[i]][period_].Data[j]; } dt.Rows.Add(row); } ultraChart.DataBind(); }