Example #1
0
 // private constructor
 private SabrIborCapletFloorletVolatilityBootstrapper(VolatilityIborCapFloorLegPricer pricer, SabrIborCapletFloorletPeriodPricer sabrPeriodPricer, NonLinearLeastSquare solver, ReferenceData referenceData) : base(pricer, referenceData)
 {
     this.sabrPeriodPricer = ArgChecker.notNull(sabrPeriodPricer, "sabrPeriodPricer");
     this.solver           = ArgChecker.notNull(solver, "solver");
 }
Example #2
0
        //-------------------------------------------------------------------------
        /// <summary>
        /// Creates an instance.
        /// <para>
        /// The epsilon is the parameter used in <seealso cref="NonLinearLeastSquare"/>, where the iteration stops when certain
        /// quantities are smaller than this parameter.
        ///
        /// </para>
        /// </summary>
        /// <param name="pricer">  the cap/floor pricer to convert quoted volatilities to prices </param>
        /// <param name="sabrPeriodPricer">  the SABR pricer </param>
        /// <param name="epsilon">  the epsilon parameter </param>
        /// <param name="referenceData">  the reference data </param>
        /// <returns> the instance </returns>
        public static SabrIborCapletFloorletVolatilityBootstrapper of(VolatilityIborCapFloorLegPricer pricer, SabrIborCapletFloorletPeriodPricer sabrPeriodPricer, double epsilon, ReferenceData referenceData)
        {
            NonLinearLeastSquare solver = new NonLinearLeastSquare(SV_COMMONS, OG_ALGEBRA, epsilon);

            return(new SabrIborCapletFloorletVolatilityBootstrapper(pricer, sabrPeriodPricer, solver, referenceData));
        }