예제 #1
0
        public override LossStateCollection2 GetLossState()
        {
            LossStateCollection2 lossCol = new LossStateCollection2(1);

            double[] allSubjectLosses;

            //Handle Net or Gross postions
            if (positionType == PositionType.Gross)
            {
                allSubjectLosses = subjectLoss.AllLoss();
            }
            else if (positionType == PositionType.Ceded)
            {
                allSubjectLosses = subjectLoss.AllLoss().Select(loss => loss * -1).ToArray();
            }
            else
            {
                throw new NotSupportedException("Cannot handle positionType: " + positionType.ToString());
            }

            lossCol.SetSubjectLosses(subjectLoss.AllLoss());
            lossCol.SetRecoverableLosses(subjectLoss.AllLoss());

            return(lossCol);
        }
예제 #2
0
 public override void SetSubjectLoss(LossTimeSeries _subjectLoss)
 {
     if (OriginalLossSet == false)
     {
         originalSubjectLoss = _subjectLoss;
         OriginalLossSet     = true;
     }
     else
     {
         subjectLoss = _subjectLoss;
         CurrentLossStateCollection.SetSubjectLosses(subjectLoss.AllLoss());
         CurrentLossStateCollection.SetRecoverableLosses(subjectLoss.AllLoss());
     }
 }