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