## Hedging Class VectorHedge

```java.lang.Object Hedging.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:

• analytic deltas (if analytic option price defined)
• minimum variance deltas
• Monte Carlo deltas

computed under the two following probabilities:

• market probability
• risk neutral probability

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) and number of trades (return_value) 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) and standard deviation (return_value) 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) and the number of trades (return_value) 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,
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 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) and standard deviation (return_value) 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.

`public double[] newDiscountedHedgeGainAndNumberOfTrades()`

Computes the discounted profit and loss (return_value) and the number of trades (return_value) 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 must be initialized with the option price at time zero before this routine is called.

`public RandomVector discountedHedgeGainAndNumberOfTrades()`

The discounted hedge gain (return_value) and number of trades (return_value) 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:

• x= discounted hedge gains.
• x= maximum borrowing.
• x= maximum drawdown.
• x= amount invested at time T disregarding the option position.
• x= return on investment from trading disregarding the option position.
See also `newDiscountedHedgeGain()`. The strategy is assumed to be financed completely by borrowing at the risk free rate without using the premium.
`public RandomVector hedgeStatistics()`
The `newHedgeStatistics()` as a random vector.