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