Hedging
Class VectorHedge

java.lang.Object
  extended byHedging.VectorHedge
Direct Known Subclasses:
VectorDeltaHedge

public class VectorHedge
extends java.lang.Object

A hedge for an option on a basket (asset vector). Provides methods to compute the profit/loss from hedging an option using various deltas:

computed under the two following probabilities:

The hedge is rebalanced whenever the Trigger rebalance triggers a hedge trade. The hedge is checked against price paths of the underlying simulated under the market probability.

At each trade nonanalytic hedge weights are derived from conditional expectations which can be computed under the market or the risk neutral probability.

Monte Carlo deltas are computed under the risk neutral probability while minimum variance deltas are computed under the market proability. This is based on what works best in the one dimensional case where we have kept all options open. The flag whichDelta indicate which type of deltas are used in the hedge.

Transaction costs have a fixed and a proportional component. The fixed component also has to be normalized to cost per share. If you transact in lots of 1000 shares and such a trade costs 10 dollars, fixed transaction costs are 10/1000=0.01. The proportional transaction costs come from bid-ask spread etc., 0.1 is a conservative number. Transaction costs are assumed to remain constant in today's dollars.


Constructor Summary
VectorHedge(Basket underlying, BasketOption option, VectorStrategy hedgeStrategy)
           
 
Method Summary
 RandomVariable discountedHedgeGain()
          The discounted hedge gain as a random variable.
 RandomVector discountedHedgeGainAndNumberOfTrades()
          The discounted hedge gain (return_value[0]) and number of trades (return_value[1]) as a random vector.
 VectorStrategy get_hedgeStrategy()
          The trading strategy in the asset used to hedge the option payoff (delta hedging with our various deltas).
 BasketOption get_option()
          The option to be hedged.
 Basket get_underlying()
          The asset underlying the option to be hedged.
 double[] hedgeMeanAndStandardDeviation(int nPaths)
          Computes mean (return_value[0]) and standard deviation (return_value[1]) of the profit and loss from hedging a short position in the option (on one share of the underlying).
 double[] hedgeMeanAndStandardDeviation(int nPaths, int m, javax.swing.JProgressBar jPrgBar)
          Same as hedgeMeanAndStandardDeviation(int) with progress reported to progress bar.
 RandomVector hedgeStatistics()
          The newHedgeStatistics() as a random vector.
 double newDiscountedHedgeGain()
          Computes the discounted profit and loss of hedging a short position in one option along one path of the underlying.
 double[] newDiscountedHedgeGainAndNumberOfTrades()
          Computes the discounted profit and loss (return_value[0]) and the number of trades (return_value[1]) when hedging a short position in one option on one share of the underlying along one path of the underlying.
 double[] newHedgeStatistics()
          Computes the following vector x of statistics associated with hedging a short position in one option on one share of the underlying from a new independent path of the underlying:
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VectorHedge

public VectorHedge(Basket underlying,
                   BasketOption option,
                   VectorStrategy hedgeStrategy)
Parameters:
underlying - asset underlying the option.
option - option to be hedged.
hedgeStrategy - trading strategy hedging the option payoff..
Method Detail

get_underlying

public Basket get_underlying()
The asset underlying the option to be hedged.


get_option

public BasketOption get_option()
The option to be hedged.


get_hedgeStrategy

public VectorStrategy get_hedgeStrategy()
The trading strategy in the asset used to hedge the option payoff (delta hedging with our various deltas). Initialized by constructor.


newDiscountedHedgeGain

public double newDiscountedHedgeGain()

Computes the discounted profit and loss of hedging a short position in one option along one path of the underlying.

Price paths of the underlying asset are simulated in the market probability and the hedge is rebalance whenever the Trigger rebalance triggers a hedge trade.

Assume that nonanalytic hedge deltas are used. Each time a hedge trade occurs the computation of the new hedge weights involves conditional expectations which are computed via branching price paths of the underlying asset, a very time consuming activity.

The option price path C[0] must be initialized with the option price at time zero before this routine is called. Note that this price is the martingale price of the option based on frictionless trading and perfect theoretical duplication of the option payoff. Sell at this price at your own risk.


discountedHedgeGain

public RandomVariable discountedHedgeGain()

The discounted hedge gain as a random variable.

The parameter t will be disregarded, ie. no conditional expectations. We don't need them and they are hard to implement.


hedgeMeanAndStandardDeviation

public double[] hedgeMeanAndStandardDeviation(int nPaths)

Computes mean (return_value[0]) and standard deviation (return_value[1]) of the profit and loss from hedging a short position in the option (on one share of the underlying). The gain is computed for the combined strategy hedgeStrategy + option short position.

Parameters:
nPaths - number of price paths of underlying against which hedge is checked.

hedgeMeanAndStandardDeviation

public double[] hedgeMeanAndStandardDeviation(int nPaths,
                                              int m,
                                              javax.swing.JProgressBar jPrgBar)

Same as hedgeMeanAndStandardDeviation(int) with progress reported to progress bar.

Parameters:
nPaths - number of paths.
m - progress report updated every m paths.
jPrgBar - target of progress report.

newDiscountedHedgeGainAndNumberOfTrades

public double[] newDiscountedHedgeGainAndNumberOfTrades()

Computes the discounted profit and loss (return_value[0]) and the number of trades (return_value[1]) when hedging a short position in one option on one share of the underlying along one path of the underlying.

See also newDiscountedHedgeGain().

The option price path C[0] must be initialized with the option price at time zero before this routine is called.


discountedHedgeGainAndNumberOfTrades

public RandomVector discountedHedgeGainAndNumberOfTrades()

The discounted hedge gain (return_value[0]) and number of trades (return_value[1]) as a random vector.

The parameter t will be disregarded, ie. no conditional expectations. We don't need them and they are hard to implement.


newHedgeStatistics

public double[] newHedgeStatistics()

Computes the following vector x of statistics associated with hedging a short position in one option on one share of the underlying from a new independent path of the underlying:

See also newDiscountedHedgeGain(). The strategy is assumed to be financed completely by borrowing at the risk free rate without using the premium.

The option price path C[0] must be initialized with the option price at time zero before this routine is called.


hedgeStatistics

public RandomVector hedgeStatistics()

The newHedgeStatistics() as a random vector.

The parameter t will be disregarded, ie. no conditional expectations. We don't need them and they are hard to implement.