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