Options
Class BasketOption

java.lang.Object
  extended byOptions.BasketOption
Direct Known Subclasses:
PathIndptBasketOption

public abstract class BasketOption
extends java.lang.Object

Interface and default methods to price and hedge a possibly path path dependent European option on a basket of underlying assets.

Pricing: analytic option prices (if analytic formulas exist) and Monte Carlo prices with and without control variates are computed.

Hedging: The profit and loss of hedging the option using three different hedge deltas:

is analyzed by computing mean and standard deviation from a sample of price paths of the underlying asset.

Information: the information available at time t for conditioning is the history of the price path of the underlying asset on the interval [0,t] (up to the present). Conditioning on this information means to limit simulations of the price of the underlying asset to paths which are branches of the current path where branching occurs at time t.

Warning: the abstract class Option does not initialize the option price path. This is left to the concrete subclasses which can decide wether analytic price formulas are available or not.


Field Summary
protected  java.lang.String name
          name of option
 
Constructor Summary
BasketOption(Basket assets, java.lang.String name)
          Constructor, does not initialize the option price path.
 
Method Summary
 ColtVector analyticDeltas(int t)
          Default: undefined, abort.
abstract  double currentDiscountedPayoff()
          Option payoff discounted to time t=0 and computed from the current discounted price path of the underlying basket.
 double discountedAnalyticPrice(int t)
          Default: undefined, abort.
 double discountedMonteCarloPrice(double precision, double confidence)
          Monte Carlo price at time t=0 with price paths of the underlying simulated until desired precision is reached with desired confidence.
 double discountedMonteCarloPrice(int nPath)
          Monte Carlo option price at time t=0.
 double discountedMonteCarloPrice(int t, double precision, double confidence)
          Monte Carlo price at time t computed as a conditional expectation conditioned on information available at time t with price paths of the underlying simulated until desired precision is reached with desired confidence.
 double discountedMonteCarloPrice(int t, int nPath)
          Monte Carlo price at time t computed as a conditional expectation conditioned on information available at time t and computed from a sample of nPath (branches of) the price path of the underlying.
 RandomVariable discountedPayoff()
          The discounted option payoff as a random variable based on the risk neutral probability.
 double[] get_C()
          Reference to the array C[ ] containing the discounted option price path.
 int get_dim()
          Dimension of underlying asset price vector (excluding the riskfree bond.
 double get_dt()
          Size of time step.
 boolean get_hasAnalyticPrice()
          True if and analytic formula for the option price is implemented, false otherwise.
 int get_T()
          Number of time steps to horizon.
 Basket get_underlying()
          Reference to the underlying basket of asset.
 java.lang.String getName()
          The name of the option (a string).
 ColtVector minimumVarianceDeltas(int t, int nPath, Trigger rebalance)
          Warning: not implemented yet.
 ColtVector monteCarloDeltas(int t, int nPath)
          The vector of Monte Carlo deltas of the underlying assets at time t computed in the risk neutral probability.
 void newDiscountedPricePath(int whichProbability, int nPath)
          Computes one path of the underlying S and a corresponding path C of the option (discounted prices).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

name

protected java.lang.String name
name of option

Constructor Detail

BasketOption

public BasketOption(Basket assets,
                    java.lang.String name)

Constructor, does not initialize the option price path. This is left to the concrete subclasses which can decide wether analytic price formulas are available or not.

Parameters:
assets - the underlying basket of assets.
name - name of the option.
Method Detail

get_T

public int get_T()
Number of time steps to horizon.


get_dt

public double get_dt()
Size of time step.


get_C

public double[] get_C()
Reference to the array C[ ] containing the discounted option price path.


getName

public java.lang.String getName()
The name of the option (a string).


get_underlying

public Basket get_underlying()
Reference to the underlying basket of asset.


get_dim

public int get_dim()
Dimension of underlying asset price vector (excluding the riskfree bond.


get_hasAnalyticPrice

public boolean get_hasAnalyticPrice()
True if and analytic formula for the option price is implemented, false otherwise.


currentDiscountedPayoff

public abstract double currentDiscountedPayoff()
Option payoff discounted to time t=0 and computed from the current discounted price path of the underlying basket.


discountedPayoff

public RandomVariable discountedPayoff()
The discounted option payoff as a random variable based on the risk neutral probability.


discountedAnalyticPrice

public double discountedAnalyticPrice(int t)
Default: undefined, abort. Overridden in subclasses.


analyticDeltas

public ColtVector analyticDeltas(int t)
Default: undefined, abort. Overridden in subclasses.


discountedMonteCarloPrice

public double discountedMonteCarloPrice(int t,
                                        int nPath)

Monte Carlo price at time t computed as a conditional expectation conditioned on information available at time t and computed from a sample of nPath (branches of) the price path of the underlying.

Parameters:
t - current time (determines information to condition on).
nPath - number of path branches used to compute the option price.

discountedMonteCarloPrice

public double discountedMonteCarloPrice(int nPath)

Monte Carlo option price at time t=0.

Parameters:
nPath - number of asset price paths used to compute the option price.

discountedMonteCarloPrice

public double discountedMonteCarloPrice(int t,
                                        double precision,
                                        double confidence)

Monte Carlo price at time t computed as a conditional expectation conditioned on information available at time t with price paths of the underlying simulated until desired precision is reached with desired confidence.

Parameters:
t - current time (determines information to condition on).
precision - absolute error bound.
confidence - probability with which the precision is reached.

discountedMonteCarloPrice

public double discountedMonteCarloPrice(double precision,
                                        double confidence)

Monte Carlo price at time t=0 with price paths of the underlying simulated until desired precision is reached with desired confidence.

See discountedMonteCarloPrice(int,double,double) .

Parameters:
precision - absolute error bound.
confidence - probability with which the precision is reached.

newDiscountedPricePath

public void newDiscountedPricePath(int whichProbability,
                                   int nPath)

Computes one path of the underlying S and a corresponding path C of the option (discounted prices).

Parameters:
whichProbability - probability for simulation (risk neutral/market).
nPath - number of asset price path branches used in the Monte Carlo computation of the option price at each time step.

monteCarloDeltas

public ColtVector monteCarloDeltas(int t,
                                   int nPath)

The vector of Monte Carlo deltas of the underlying assets at time t computed in the risk neutral probability. It is assumed that a price path of the underlying asset has been computed up to time t.

Parameters:
t - current time (time of branching).
nPath - number of asset price path branches expended on each conditional expectation.

minimumVarianceDeltas

public ColtVector minimumVarianceDeltas(int t,
                                        int nPath,
                                        Trigger rebalance)

Warning: not implemented yet.

The vector of minimum variance deltas of the underlying assets computed in the risk neutral probability. The variance of the tracking is minimized over the interval to the next trade (trigger). It is assumed that a price path of the underlying asset has been computed up to time t.

Parameters:
t - current time (time of branching).
nPath - number of asset price path branches expended on each conditional expectation.
rebalance - trigger triggering the hedge trades.