|
WebCab Bonds v2.01 (J2SE Edition) |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object
|
+--webcab.lib.finance.pricing.contracts.GeneralContractCommon
|
+--webcab.lib.finance.pricing.contracts.FixedExchangeMomentsContractCommon
|
+--webcab.lib.finance.pricing.contracts.FixedExchangeMarkovContractCommon
|
+--webcab.lib.finance.pricing.core.contracts.RegularPayoffContractCommon
|
+--webcab.lib.finance.pricing.contracts.standard.AsianOption
Implements an asian option. This is the Markovian version of the contract so
it requires the arithmetic or geometric average to be a model variable. Therefore,
when constructing the compound model you must include as a submodel an instance
of AverageModel. If you prefer a simpler way of pricing an asian option
you can use the path dependent version (AsianOptionPathDependent) which
does not need a model for the average.
There are four types of asian options:
The average can be arithmetic or geometric.
Implicitly the average of the first price found in the global context graph is used.
You can also specify the exact name for an average context to be used. This must be the one
you gave as the first parameter in AverageModel constructor.
| Field Summary | |
static int |
ARITHMETIC
|
static int |
CALL
|
static int |
GEOMETRIC
|
static int |
PUT
|
static int |
RATE
|
static int |
STRIKE
|
| Fields inherited from class webcab.lib.finance.pricing.contracts.GeneralContractCommon |
BUYER_INITIATED, NO_EARLY_EXERCISE, SELLER_INITIATED |
| Constructor Summary | |
AsianOption(int callPut,
int strikeRate,
int arithmGeom,
double maturity,
double strike,
boolean isAmerican)
Creates a new asian option. |
|
AsianOption(String underlyingContextName,
int callPut,
int strikeRate,
int arithmGeom,
double maturity,
double strike,
boolean isAmerican)
Creates a new asian option using a specified average context. |
|
| Method Summary | |
int |
getEarlyExercise()
|
double |
getExpiry()
Returns the maturity time for this contract. |
double[] |
getMoments()
Returns an array containing the moments of all cash exchanges (payoffs). |
int |
getNMoments()
Returns the total number of payoffs for the contract. |
double |
getPayoff(int moment,
ContextGraph contextGraph,
StochasticDifferentialModel updatedModel)
Returns the amount exchanged at a moment specified by its index in the payoff moments vector (the vector returned by method getMoments()).
|
boolean |
needsUpdatedModel()
Returns whether this contract is a multi-order contract. |
| Methods inherited from class webcab.lib.finance.pricing.core.contracts.RegularPayoffContractCommon |
getMaxDependencyOrder |
| Methods inherited from class webcab.lib.finance.pricing.contracts.FixedExchangeMarkovContractCommon |
getPayoff |
| Methods inherited from class webcab.lib.finance.pricing.contracts.FixedExchangeMomentsContractCommon |
getAccumulatedCashflow, getFirstMoment |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface webcab.lib.finance.pricing.core.contracts.RegularPayoffContract |
getMaxDependencyOrder |
| Methods inherited from interface webcab.lib.finance.pricing.contracts.FixedExchangeMomentsContract |
getFirstMoment, getPayoff |
| Methods inherited from interface webcab.lib.finance.pricing.contracts.GeneralContract |
getAccumulatedCashflow |
| Field Detail |
public static final int CALL
public static final int PUT
public static final int STRIKE
public static final int RATE
public static final int ARITHMETIC
public static final int GEOMETRIC
| Constructor Detail |
public AsianOption(int callPut,
int strikeRate,
int arithmGeom,
double maturity,
double strike,
boolean isAmerican)
throws InvalidParametersException
callPut - either CALL or PUTstrikeRate - either STRIKE or RATEarithmGeom - specifies the type of averaging used. Either ARITHMETIC or GEOMETRICmaturity - the expiry time (in years, absolute time)strike - the strike price - used only for rate (price) asian optionsisAmerican - specifies if the buyer can exercise the option earlier (American style option).
InvalidParametersException
public AsianOption(String underlyingContextName,
int callPut,
int strikeRate,
int arithmGeom,
double maturity,
double strike,
boolean isAmerican)
throws InvalidParametersException
underlyingContextName - the name of the average context. This should be the first parameter given
to the AverageModel constructor.callPut - either CALL or PUTstrikeRate - either STRIKE or RATEarithmGeom - specifies the type of averaging used. Either ARITHMETIC or GEOMETRICmaturity - The expiry time (in years, absolute time)strike - the strike price - used only for rate (price) asian optionsisAmerican - specifies if the buyer can exercise the option earlier (American style option).
InvalidParametersException| Method Detail |
public double getExpiry()
GeneralContract
getExpiry in interface GeneralContractgetExpiry in class GeneralContractCommonpublic double[] getMoments()
FixedExchangeMomentsContract
getMoments in interface FixedExchangeMomentsContractgetMoments in class FixedExchangeMomentsContractCommonpublic int getNMoments()
FixedExchangeMomentsContractgetMoments()
method.
getNMoments in interface FixedExchangeMomentsContractgetNMoments in class FixedExchangeMomentsContractCommon
public double getPayoff(int moment,
ContextGraph contextGraph,
StochasticDifferentialModel updatedModel)
throws BondsException
FixedExchangeMarkovContractgetMoments()).
Only the current values of the variables are available (the current context graph).
getPayoff in interface FixedExchangeMarkovContractgetPayoff in class FixedExchangeMarkovContractCommonmoment - the index of the moment for which the payoff is computed (the current moment)contextGraph - the context graph produced by the model. The context graph contains a
snapshot of the models' variables at the current moment. See ContextGraph
for information on how to search for a specific variable on which the contract
is dependent.updatedModel - an instance of the model used to price the contract.
It can be used with a pricer to evaluate an underlying contract (in case
we have a second-order contract like, for example, a bond option). The
initial values for this models' variables are implicitly set to the current values.
If the higher order contract is path dependent and needs the values from
the underlying contract at previous moments of time, you need to set the
initial values of the model to the values that existed at that moment
of time. You can use the path to find the historic context and then
use the updatedModel.setInitialContext()
method to set the initial values.
BondsExceptionpublic int getEarlyExercise()
getEarlyExercise in class GeneralContractCommonpublic boolean needsUpdatedModel()
GeneralContractupdatedModel parameter of getAccumulatedCashflow()
method is needed. This information is used by the pricing algorithm
to decide if it is necessary to initialize the above mentioned parameter.
The overall efficiency of the algorithm is improved if the initialization
is not performed.
needsUpdatedModel in interface GeneralContractneedsUpdatedModel in class GeneralContractCommonfalse the updatedModel parameter
is not correctly initialized and must not be used.
|
WebCab Bonds v2.01 (J2SE Edition) |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||