public class SwaptionGeneralizedAnalyticApproximation extends AbstractLIBORMonteCarloProduct implements Swaption
SwaptionSingleCurveAnalyticApproximation).
The approximation assumes that the forward rates (LIBOR) follow a
normal model or log-normal model and that the model provides the integrated
instantaneous covariance of the forward rates or 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.| Modifier and Type | Class and Description |
|---|---|
static class |
SwaptionGeneralizedAnalyticApproximation.StateSpace |
static class |
SwaptionGeneralizedAnalyticApproximation.ValueUnit |
| Constructor and Description |
|---|
SwaptionGeneralizedAnalyticApproximation(double swaprate,
double[] swapTenor,
SwaptionGeneralizedAnalyticApproximation.ValueUnit valueUnit,
SwaptionGeneralizedAnalyticApproximation.StateSpace stateSpace)
Create an analytic swaption approximation product for
log normal forward rate model.
|
SwaptionGeneralizedAnalyticApproximation(double swaprate,
TimeDiscretization swapTenor,
SwaptionGeneralizedAnalyticApproximation.StateSpace stateSpace)
Create an analytic swaption approximation product for
log normal forward rate model.
|
| Modifier and Type | Method and Description |
|---|---|
static double[][][] |
getIntegratedLIBORCovariance(LIBORMarketModelFromCovarianceModel model) |
Map<String,double[]> |
getLogSwapRateDerivative(TimeDiscretization liborPeriodDiscretization,
DiscountCurve discountCurve,
ForwardCurve forwardCurve)
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).
|
Map<String,double[]> |
getSwapRateDerivative(TimeDiscretization liborPeriodDiscretization,
AnalyticModel model,
DiscountCurve discountCurve,
ForwardCurve forwardCurve)
Returns the derivative of the swap rate (associated with this swap) with respect to the forward rates dS/dL_{i}.
|
RandomVariable |
getValue(double evaluationTime,
LIBORModelMonteCarloSimulationModel model)
This method returns the value random variable of the product within the specified model, evaluated at a given evalutationTime.
|
RandomVariable |
getValues(double evaluationTime,
LIBORMarketModel model)
Calculates the approximated integrated instantaneous variance of the swap rate,
using the approximation d S/d L (t) = d S/d L (0).
|
getFactorDrift, getValue, getValueForModifiedData, getValuesgetCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetCurrency, getValue, getValue, getValues, getValues, getValues, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedData, getValuesForModifiedDatapublic SwaptionGeneralizedAnalyticApproximation(double swaprate,
double[] swapTenor,
SwaptionGeneralizedAnalyticApproximation.ValueUnit valueUnit,
SwaptionGeneralizedAnalyticApproximation.StateSpace stateSpace)
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.stateSpace - The state space of the LMM (lognormal or normal)public SwaptionGeneralizedAnalyticApproximation(double swaprate,
TimeDiscretization swapTenor,
SwaptionGeneralizedAnalyticApproximation.StateSpace stateSpace)
swaprate - The strike swap rate of the swaption.swapTenor - The swap tenor in doubles.stateSpace - The state space of the LMM (lognormal or normal)public RandomVariable getValue(double evaluationTime, LIBORModelMonteCarloSimulationModel model)
TermStructureMonteCarloProductgetValue in interface TermStructureMonteCarloProductgetValue in class AbstractLIBORMonteCarloProductevaluationTime - The time on which this products value should be observed.model - The model used to price the product.public RandomVariable getValues(double evaluationTime, LIBORMarketModel model)
evaluationTime - Time at which the product is evaluated.model - A model implementing the LIBORModelMonteCarloSimulationModelpublic Map<String,double[]> getLogSwapRateDerivative(TimeDiscretization liborPeriodDiscretization, DiscountCurve discountCurve, ForwardCurve forwardCurve)
liborPeriodDiscretization - The libor period discretization.discountCurve - The discount curve. If this parameter is null, the discount curve will be calculated from the forward curve.forwardCurve - The forward curve.public Map<String,double[]> getSwapRateDerivative(TimeDiscretization liborPeriodDiscretization, AnalyticModel model, DiscountCurve discountCurve, ForwardCurve forwardCurve)
liborPeriodDiscretization - Forward rate discretization.model - The analytic model providing the context for discountCurve and forwardCurve.discountCurve - The discount curve.forwardCurve - The forward curve.public static double[][][] getIntegratedLIBORCovariance(LIBORMarketModelFromCovarianceModel model)
Copyright © 2019. All rights reserved.