private static RollResultContractItem GetGenerationResult(RollResults result, CTDValueGeneration generation)
 {
     switch (generation)
     {
         case CTDValueGeneration.Current:
             return result.CurrentResult;
         case CTDValueGeneration.Old:
             return result.OResult;
         case CTDValueGeneration.OldOld:
             return result.OOResult;
         case CTDValueGeneration.OOO:
             return result.OOOResult;
         case CTDValueGeneration.OOOO:
             return result.OOOOResult;
         default:
             throw new ArgumentOutOfRangeException("generation", generation, null);
     }
 }
Ejemplo n.º 2
0
    private Tuple<DatedDataCollectionGen<Bond>, DatedDataCollectionGen<double>> getItems(ChartComponent cc_, CTDValueGeneration generation_)
    {
      var dates = m_rawData[cc_.Curve].Select(x => x.MarkDate).ToArray();
      var spreadsObject = m_rawData[cc_.Curve].Select(x => x[cc_.Component, generation_]);
      var value = spreadsObject.Select(x => x == null ? 0d : x[cc_.SpreadType] * cc_.Multiplier * 10000d).ToArray();

      var bonds = m_rawBonds.Select(x => x[cc_.Component, generation_]).ToArray();

      // fill in zeroes

      for (int i = 1; i < value.Length; ++i)
        if (value[i].IsZero())
        {
          // if bonds haven't changed then can take the previous price
          //if (bonds[i].SymmetryCode.Equals(bonds[i - 1].SymmetryCode))
            value[i] = value[i - 1];
          //else
          //  value[i] = double.NaN;
        }

      return new Tuple<DatedDataCollectionGen<Bond>, DatedDataCollectionGen<double>>(
        new DatedDataCollectionGen<Bond>(dates, bonds),
        new DatedDataCollectionGen<double>(dates, value));
    }