Ejemplo n.º 1
0
        ///<summary>
        ///</summary>
        ///<param name="settlement"></param>
        ///<param name="maturity"></param>
        ///<param name="imBp"></param>
        ///<param name="tmBp"></param>
        ///<param name="pmtFreq"></param>
        ///<param name="rateSet"></param>
        ///<param name="rateToNextCoup"></param>
        ///<param name="swapRate"></param>
        ///<param name="dayCount"></param>
        ///<param name="exInt"></param>
        ///<param name="xlHolidays"></param>
        ///<returns></returns>
        public double FRNPrice(DateTime settlement, DateTime maturity, double imBp, double tmBp, int pmtFreq,
                               double rateSet, double rateToNextCoup, double swapRate, int dayCount, int exInt, [Optional] Excel.Range xlHolidays)
        {
            if (pmtFreq < 0 | rateSet < 0 | rateToNextCoup < 0 | swapRate < 0 | exInt < 0)
            {
                return(0);
            }
            if (settlement > maturity)
            {
                return(0);
            }
            object[,] values = xlHolidays.get_Value(System.Reflection.Missing.Value) as object[, ];
            object[,] holidays;
            if (values.GetType().Name == "Missing")
            {
                holidays       = new Object[1, 1];
                holidays[0, 0] = new DateTime(1, 1, 1);
            }
            else
            {
                holidays = ArrayHelper.RangeToMatrix(values);
            }
            Double output = BondAnalytics.FRNPrice(settlement, maturity, imBp, tmBp, pmtFreq, rateSet, rateToNextCoup, swapRate, dayCount, exInt, holidays);

            return(output);
        }