Documentation of 'net.finmath.montecarlo.interestrate.products.SwaptionAnalyticApproximation' Java class
SwaptionAnalyticApproximation
net.finmath.montecarlo.interestrate.products

Class SwaptionAnalyticApproximation

  • All Implemented Interfaces:
    ProductInterface


    public class SwaptionAnalyticApproximation
    extends AbstractLIBORMonteCarloProduct
    This class implements an analytic swaption valuation formula under a LIBOR market model. The algorithm implemented here is the OIS discounting version of the algorithm described in ISBN 0470047224 (see SwaptionSingleCurveAnalyticApproximation). The approximation assumes that the forward rates (LIBOR) follow a log normal model and that the model provides the integrated instantaneous covariance of the log-forward rates. The getValue method calculates the approximated integrated instantaneous variance of the swap rate, using the approximation \[ \frac{d log(S(t))}{d log(L(t))} \approx \frac{d log(S(0))}{d log(L(0))} = : w. \] Since \( L \) is a vector, \( w \) is a gradient (vector). The class then approximates the Black volatility of a swaption via \[ \sigma_S^{2} T := \sum_{i,j} w_{i} \gamma_{i,j} w_{j} \] where \( (\gamma_{i,j})_{i,j = 1,...,m} \) is the covariance matrix of the forward rates. The valuation can be performed in terms of value or implied Black volatility.
    • Constructor Detail

      • SwaptionAnalyticApproximation

        public SwaptionAnalyticApproximation(double swaprate,
                                             TimeDiscretizationInterface swapTenor)
        Create an analytic swaption approximation product for log normal forward rate model. Note: It is implicitly assumed that swapTenor.getTime(0) is the exercise date (no forward starting).
        Parameters:
        swaprate - The strike swap rate of the swaption.
        swapTenor - The swap tenor in doubles.
      • SwaptionAnalyticApproximation

        public SwaptionAnalyticApproximation(double swaprate,
                                             double[] swapTenor,
                                             SwaptionAnalyticApproximation.ValueUnit valueUnit)
        Create an analytic swaption approximation product for log normal forward rate model. Note: It is implicitly assumed that swapTenor[0] is the exercise date (no forward starting).
        Parameters:
        swaprate - The strike swap rate of the swaption.
        swapTenor - The swap tenor in doubles.
        valueUnit - The unit of the quantity returned by the getValues method.
    • Method Detail

      • getValue

        public RandomVariableInterface getValue(double evaluationTime,
                                                LIBORModelMonteCarloSimulationInterface model)
        Description copied from class: AbstractLIBORMonteCarloProduct
        This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime. Note: For a lattice this is often the value conditional to evalutationTime, for a Monte-Carlo simulation this is the (sum of) value discounted to evaluation time. Cashflows prior evaluationTime are not considered.
        Specified by:
        getValue in class AbstractLIBORMonteCarloProduct
        Parameters:
        evaluationTime - The time on which this products value should be observed.
        model - The model used to price the product.
        Returns:
        The random variable representing the value of the product discounted to evaluation time
      • getValues

        public RandomVariableInterface getValues(double evaluationTime,
                                                 LIBORMarketModelInterface model)
        Calculates the approximated integrated instantaneous variance of the swap rate, using the approximation d log(S(t))/d log(L(t)) = d log(S(0))/d log(L(0)).
        Parameters:
        evaluationTime - Time at which the product is evaluated.
        model - A model implementing the LIBORModelMonteCarloSimulationInterface
        Returns:
        Depending on the value of value unit, the method returns either the approximated integrated instantaneous variance of the swap rate (ValueUnit.INTEGRATEDVARIANCE) or the value using the Black formula (ValueUnit.VALUE).
      • getLogSwaprateDerivative

        public java.util.Map<java.lang.String,double[]> getLogSwaprateDerivative(TimeDiscretizationInterface liborPeriodDiscretization,
                                                                                 DiscountCurveInterface discountCurveInterface,
                                                                                 ForwardCurveInterface forwardCurveInterface)
        This function calculate the partial derivative d log(S) / d log(Lk) for a given swap rate with respect to a vector of forward rates (on a given forward rate tenor). It also returns some useful other quantities like the corresponding discout factors and swap annuities.
        Parameters:
        liborPeriodDiscretization - The libor period discretization.
        discountCurveInterface - The discount curve. If this parameter is null, the discount curve will be calculated from the forward curve.
        forwardCurveInterface - The forward curve.
        Returns:
        A map containing the partial derivatives (key "value"), the discount factors (key "disocuntFactors") and the annuities (key "annuities") as vectors of double[] (indexed by forward rate tenor index starting at swap start)
      • getIntegratedLIBORCovariance

        public static double[][][] getIntegratedLIBORCovariance(LIBORMarketModel model)

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.