示例#1
0
    public ConstructGenGen<RelativeDate, OIValue> BackOIAsRelativeDatesConstruct()
    {
      if (m_con_OI_to != null) return m_con_OI_to;

      m_con_OI_to = new ConstructGenGen<RelativeDate, OIValue>(1);

      foreach (var dateIndex in IndexedDates)
      {
        // create a RelativeDate for the IndexDates
        var rd = new RelativeDate(IndexedDates, dateIndex.Date, DispTimeZone);

        // shift it to the following morning (which is where we want to stamp the closing OI for the day)
        rd = rd.GetNextDayStart();

        m_con_OI_to.SetValue(
          key_: rd,
          index_: 0,
          value_: new OIValue(OI_Back==null ? double.NaN : OI_Back.ValueOnExactDate_Else(dateIndex.Date, double.NaN), OIStatus.Actual));
      }

      m_con_OI_to.SortKeys();

      return m_con_OI_to;
    }