Class BestOfOptionMultiAssetBlackScholesModelBoundary
java.lang.Object
net.finmath.finitedifference.assetderivativevaluation.boundaries.BestOfOptionMultiAssetBlackScholesModelBoundary
- All Implemented Interfaces:
FiniteDifferenceBoundary
public class BestOfOptionMultiAssetBlackScholesModelBoundary
extends Object
implements FiniteDifferenceBoundary
Boundary conditions for
BestOfOption under
FDMMultiAssetBlackScholesModel.
The payoff is
\left( \omega \left( \max(S_1(T), S_2(T)) - K \right) \right)^{+},
where \omega \in \{+1,-1\} is the call/put sign.
The multidimensional boundary convention of the framework is used:
- index
0of the returned array corresponds to the first state variable, - index
1corresponds to the second state variable.
On the lower faces S_1 = 0 and S_2 = 0, the best-of payoff
reduces exactly to a one-dimensional vanilla option on the remaining asset.
Accordingly, this boundary class requires both asset grids to start at zero.
On the upper faces, asymptotically correct Dirichlet values are used:
- on
S_1 = S_{1,\max}, the call is approximated byS_1 e^{-q_1 \tau} - K e^{-r \tau}and the put by0, - on
S_2 = S_{2,\max}, the call is approximated byS_2 e^{-q_2 \tau} - K e^{-r \tau}and the put by0.
- Author:
- Alessandro Gnoatto
-
Constructor Summary
ConstructorsConstructorDescriptionPerforms the operation. -
Method Summary
Modifier and TypeMethodDescriptiongetBoundaryConditionsAtLowerBoundary(FiniteDifferenceEquityProduct product, double time, double... stateVariables) Returns the boundary conditions at the lower boundary.getBoundaryConditionsAtUpperBoundary(FiniteDifferenceEquityProduct product, double time, double... stateVariables) Returns the boundary conditions at the upper boundary.
-
Constructor Details
-
BestOfOptionMultiAssetBlackScholesModelBoundary
Performs the operation.- Parameters:
model- The value.
-
-
Method Details
-
getBoundaryConditionsAtLowerBoundary
public BoundaryCondition[] getBoundaryConditionsAtLowerBoundary(FiniteDifferenceEquityProduct product, double time, double... stateVariables) Description copied from interface:FiniteDifferenceBoundaryReturns the boundary conditions at the lower boundary.The returned array is indexed by state-variable dimension.
- Specified by:
getBoundaryConditionsAtLowerBoundaryin interfaceFiniteDifferenceBoundary- 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(FiniteDifferenceEquityProduct product, double time, double... stateVariables) Description copied from interface:FiniteDifferenceBoundaryReturns the boundary conditions at the upper boundary.The returned array is indexed by state-variable dimension.
- Specified by:
getBoundaryConditionsAtUpperBoundaryin interfaceFiniteDifferenceBoundary- 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.
-