Exemple #1
0
        public FixedLocalVolSurface(Date referenceDate,
                                    List <double> times,
                                    List <double> strikes,
                                    Matrix localVolMatrix,
                                    DayCounter dayCounter,
                                    Extrapolation lowerExtrapolation =
                                    Extrapolation.ConstantExtrapolation,
                                    Extrapolation upperExtrapolation =
                                    Extrapolation.ConstantExtrapolation)
            : base(referenceDate, null, BusinessDayConvention.Following, dayCounter)
        {
            maxDate_            = Utils.time2Date(referenceDate, dayCounter, times.Last());
            times_              = times;
            localVolMatrix_     = localVolMatrix;
            strikes_            = new InitializedList <List <double> >(times.Count, new List <double>(strikes));
            localVolInterpol_   = new List <Interpolation>();
            lowerExtrapolation_ = lowerExtrapolation;
            upperExtrapolation_ = upperExtrapolation;

            Utils.QL_REQUIRE(times[0] >= 0.0,
                             () => "cannot have times[0] < 0");

            checkSurface();
            setInterpolation <Linear>();
        }