Class OptionOnBond
- All Implemented Interfaces:
FiniteDifferenceProduct<FiniteDifferenceInterestRateModel>, FiniteDifferenceInterestRateProduct, Product
The underlying bond is assumed to be a Bond, that is, a bond with
deterministic fixed cashflows. Let T denote the option exercise date,
B(T,x) the bond value at exercise as a function of the model state,
K the strike, and \omega \in \{+1,-1\} the call/put sign.
The payoff is
\bigl( \omega ( B(T,x) - K ) \bigr)^{+}.
Since the underlying bond has deterministic cashflows, its value at exercise can be computed directly from the interest-rate model through the remaining discount bonds:
B(T,x) = \sum_{i:\,T_i \ge T} C_i P(T,T_i;x),
where C_i are the remaining bond cashflows and P(T,T_i;x) is
the discount bond implied by the model.
The current implementation is intended for one-dimensional finite-difference
interest-rate models used with FDMThetaMethod1D.
- Author:
- Alessandro Gnoatto
-
Constructor Summary
ConstructorsConstructorDescriptionOptionOnBond(Bond underlyingBond, double exerciseDate, double strike, CallOrPut callOrPut) Creates a European option on a deterministic-cashflow bond. -
Method Summary
Modifier and TypeMethodDescriptionReturns the call/put indicator.doubleReturns the exercise date.doubleReturns the strike.Returns the underlying bond.double[]getValue(double evaluationTime, FiniteDifferenceInterestRateModel model) Returns the value.double[][]Returns the value.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface FiniteDifferenceInterestRateProduct
applyEventCondition, getEventTimes, getModelClassMethods inherited from interface FiniteDifferenceProduct
getValue
-
Constructor Details
-
OptionOnBond
Creates a European option on a deterministic-cashflow bond.- Parameters:
underlyingBond- The underlying bond.exerciseDate- The option exercise date.strike- The strike.callOrPut- The call/put indicator.
-
-
Method Details
-
getValue
Description copied from interface:FiniteDifferenceProductReturns the value.- Specified by:
getValuein interfaceFiniteDifferenceProduct<FiniteDifferenceInterestRateModel>- Parameters:
evaluationTime- The value.model- The value.- Returns:
- The value.
-
getValues
Description copied from interface:FiniteDifferenceProductReturns the value.- Specified by:
getValuesin interfaceFiniteDifferenceProduct<FiniteDifferenceInterestRateModel>- Parameters:
model- The value.- Returns:
- The value.
-
getUnderlyingBond
-
getExerciseDate
public double getExerciseDate()Returns the exercise date.- Returns:
- The exercise date.
-
getStrike
public double getStrike()Returns the strike.- Returns:
- The strike.
-
getCallOrPut
-