Ejemplo n.º 1
0
 public PolicyData(int code, PolicyType policyType, int term,
                   DateIncrementTypes dateIncrementType, double surrenderValue)
 {
     PolicyType        = policyType;
     Code              = code;
     Term              = term;
     DateIncrementType = dateIncrementType;
     SurrenderValue    = surrenderValue;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Use this if CDF values are retrieved externally. The Payout can occor at any given time over teh expected region.
        /// </summary>
        /// <param name="SurvivalCdf"></param>
        /// <param name="conditionalFundValueAtTime"></param>
        /// <param name="dateIncrementTypes"></param>
        /// <param name="term"></param>
        /// <returns></returns>
        public static double ReturnExpectedValue(IDictionary <int, double> SurvivalCdf,
                                                 IList <PolicyData> conditionalFundValueAtTime,
                                                 DateIncrementTypes dateIncrementTypes, IDictionary <int, double> yield, int expectanceOverPeriod)
        {
            var result = 0d;

            foreach (var point in conditionalFundValueAtTime)
            {
                for (int i = 1; i <= expectanceOverPeriod; i++)
                {
                    result += (SurvivalCdf[i]
                               * point.SurrenderValue * (double)DiscountFactor.discountFactor((decimal)yield[i], i));
                }
            }
            return(result);
        }
Ejemplo n.º 3
0
 public DateIncrement(DateIncrementTypes type, int increments)
 {
     this.type = type;
     this.increments = increments;
 }