예제 #1
0
    public DatedDataCollectionGen<double> GetPortionToDisplay(DatedDataCollectionGen<double> d_)
    {
      if (d_.Length == 0) return d_;

      int takeNumber = 0;

      switch (m_chartLength)
      {
        case ChartLength.Hist:
          takeNumber = int.MaxValue;
          break;
        case ChartLength.Month1:
          takeNumber = 21;
          break;
        case ChartLength.Month3:
          takeNumber = 63;
          break;
        case ChartLength.Month6:
          takeNumber = 126;
          break;
        case ChartLength.Year1:
          takeNumber = 252;
          break;
        case ChartLength.Custom:
        {
          if (CustomStartDate > CustomEndDate)
            return d_;

          var startDate = d_.Dates[0] < CustomStartDate ? CustomStartDate : d_.Dates[0];
          var endDate = d_.Dates.Last() > CustomEndDate ? CustomEndDate : d_.Dates.Last();

          return d_.GetSubValues(startDate, endDate);
        }
      }

      return d_.Length < takeNumber
        ? d_
        : d_.GetValuesBetweenDates(d_.Dates[d_.Length - takeNumber], d_.Dates.Last());
    }