Class SwaptionHullWhiteModelBoundary
java.lang.Object
net.finmath.finitedifference.interestrate.boundaries.SwaptionHullWhiteModelBoundary
- All Implemented Interfaces:
FiniteDifferenceInterestRateBoundary
public class SwaptionHullWhiteModelBoundary
extends Object
implements FiniteDifferenceInterestRateBoundary
Boundary conditions for
Swaption under FDMHullWhiteModel.
This implementation provides asymptotic Dirichlet boundary values compatible with European, Bermudan, and American swaption exercise.
The guiding asymptotics are:
- on the deep out-of-the-money side, the swaption value tends to zero,
- on the deep in-the-money side, the swaption value approaches the intrinsic value envelope over the remaining admissible exercise opportunities.
Concretely:
- for a
RECEIVERswaption, the lower boundary is treated as the deep in-the-money side and the upper boundary as the deep out-of-the-money side, - for a
PAYERswaption, the upper boundary is treated as the deep in-the-money side and the lower boundary as the deep out-of-the-money side.
On the deep in-the-money side, the boundary value is chosen as
\max_{j \in \mathcal{E}(t)} \bigl( V_{\mathrm{swap},j}(t,x), 0 \bigr),
where \mathcal{E}(t) denotes the set of remaining admissible exercise
opportunities and V_swap,j(t,x) is the value of the corresponding
underlying swap.
This is a pragmatic boundary choice for the unified PDE swaption class. A European-only Jamshidian-exact boundary can be added later as a refinement.
- Author:
- Alessandro Gnoatto
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetBoundaryConditionsAtLowerBoundary(FiniteDifferenceInterestRateProduct product, double time, double... stateVariables) Returns the boundary conditions at the lower boundary.getBoundaryConditionsAtUpperBoundary(FiniteDifferenceInterestRateProduct product, double time, double... stateVariables) Returns the boundary conditions at the upper boundary.
-
Constructor Details
-
SwaptionHullWhiteModelBoundary
Creates the Hull-White boundary forSwaption.- Parameters:
model- The Hull-White model.
-
-
Method Details
-
getBoundaryConditionsAtLowerBoundary
public BoundaryCondition[] getBoundaryConditionsAtLowerBoundary(FiniteDifferenceInterestRateProduct product, double time, double... stateVariables) Description copied from interface:FiniteDifferenceInterestRateBoundaryReturns the boundary conditions at the lower boundary.- Specified by:
getBoundaryConditionsAtLowerBoundaryin interfaceFiniteDifferenceInterestRateBoundary- Parameters:
product- The product being valued.time- The running time.stateVariables- The state variables specifying the boundary location.- Returns:
- The lower-boundary conditions by dimension.
-
getBoundaryConditionsAtUpperBoundary
public BoundaryCondition[] getBoundaryConditionsAtUpperBoundary(FiniteDifferenceInterestRateProduct product, double time, double... stateVariables) Description copied from interface:FiniteDifferenceInterestRateBoundaryReturns the boundary conditions at the upper boundary.- Specified by:
getBoundaryConditionsAtUpperBoundaryin interfaceFiniteDifferenceInterestRateBoundary- Parameters:
product- The product being valued.time- The running time.stateVariables- The state variables specifying the boundary location.- Returns:
- The upper-boundary conditions by dimension.
-