

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object Options.Option Options.PathIndependentOption Options.Call Options.BlackScholesCall
Plain vanilla European call. The underlying follows a geometric Brownian motion with constant drift and volatility.
This class implements a large variety of hedge weights ("deltas") and methods to compute the discounted hedge error. It is assumed that the hedge is rebalanced at each time step. The generality here is greater than in the case of a general option. For example we can simulate paths of the underlying both in the market probability and the risk neutral probability.
Analytic Price: All prices are discounted
prices, that is, delta is the derivative of the discounted call price with respect to the discounted price of the underlying and similarly for all the other greeks. No assumptions are made on the underlying asset. It should be noted that these analytic formulas are supported by theory only for nonstochastic volatility assets.
Field Summary 
Fields inherited from class Options.Option 
ANALYTIC_DELTA, ANALYTIC_MINIMUM_VARIANCE_DELTA, ANALYTIC_QUOTIENT_DELTA, MARKET_PROBABILITY, MINIMUM_VARIANCE_DELTA, MONTE_CARLO_DELTA, QUOTIENT_DELTA, RISK_NEUTRAL_PROBABILITY 
Constructor Summary  
BlackScholesCall(double K,
ConstantVolatilityAsset asset)

Method Summary  
double 
analyticDelta(int t)
Analytic delta exp(q(Tt))N(d_+) computed from discounted price S[t]=S^B(t). 
double 
analyticDelta(int t,
double hedge_sigma)
Analytic delta: D(t)=exp(q(Tt))N(d_+) based on arbitrary volatility hedge_sigma not necessarily equal to the true volatility of the underlying asset. 
double 
analyticGamma(int t)
Analytic call gamma: (dDelta/dS) Present implementation only correct for zero dividends. 
double 
analyticSGamma(int t)
S(t)*(dDelta/dS)(t) . 
double 
analyticTheta(int t)
Analytic theta: dC/dt. 
double 
analyticThetaDelta(int t)
Analytic theta of delta: (dDelta/dt). 
double 
analyticVega(int t)
Analytic vega: dC/dsigma. 
double 
currentDiscountedHedgeGain(double hedge_sigma,
double fixed_trc,
double prop_trc)
Computes the discounted profit and loss of the delta hedge of a short position in one call along one path of the underlying simulated under the market probability. 
double 
discountedAnalyticPrice(int t)
Analytic BlackScholes price C(t). 
double 
hedgeErrorVarianceReduction(int nPath)
Computes the reduction in the variance of the hedge error over the first hedge interval [0,dt] which the variance minimizing delta provides compared to the analytic delta as a percentage of the minimal variance. 
static void 
main(java.lang.String[] args)
Program tests quality of the analytic approximation for market deltas accross a variety of strikes and times to maturity. 
Methods inherited from class Options.Call 
currentDiscountedPayoff, get_K 
Methods inherited from class Options.PathIndependentOption 
controlledDiscountedPayoff, discountedPayoff, minimumVarianceDelta, minimumVarianceDelta 
Methods inherited from class java.lang.Object 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Constructor Detail 
public BlackScholesCall(double K, ConstantVolatilityAsset asset)
K
 strike price.asset
 underlying, must be of type ConstantVolatilityAsset.Method Detail 
public double discountedAnalyticPrice(int t)
Analytic BlackScholes price C(t).
discountedAnalyticPrice
in class Option
t
 current time.public double analyticDelta(int t)
Analytic delta exp(q(Tt))N(d_+) computed from discounted price S[t]=S^B(t).
analyticDelta
in class Option
t
 current time.public double analyticDelta(int t, double hedge_sigma)
Analytic delta: D(t)=exp(q(Tt))N(d_+) based on arbitrary volatility hedge_sigma not necessarily equal to the true volatility of the underlying asset.
Used to study the effect of misjudging the true volatility of the underlying asset on hedge performance.
t
 current timehedge_sigma
 volatility employed in computing hegde weightspublic double analyticTheta(int t)
Analytic theta: dC/dt. Present implementation only correct for zero dividends.
analyticTheta
in class Option
t
 current time.public double analyticVega(int t)
Analytic vega: dC/dsigma. Present implementation only correct for zero dividends.
analyticVega
in class Option
t
 current time.public double analyticSGamma(int t)
S(t)*(dDelta/dS)(t)
.
Present implementation only correct for zero dividends.
This quantity rather than gamma is needed for discrete hedging.
Note this.
analyticSGamma
in class Option
t
 current time.public double analyticGamma(int t)
Analytic call gamma: (dDelta/dS) Present implementation only correct for zero dividends.
analyticGamma
in class Option
t
 current time.public double analyticThetaDelta(int t)
Analytic theta of delta: (dDelta/dt). Present implementation only correct for zero dividends.
analyticThetaDelta
in class Option
t
 current time.public double currentDiscountedHedgeGain(double hedge_sigma, double fixed_trc, double prop_trc)
Computes the discounted profit and loss of the delta hedge of a short position in one call along one path of the underlying simulated under the market probability. The hedge is rebalanced at each time step.
The hedge employs analytic deltas computed using a volatility hedge_sigma which may be different from the true volatility sigma of the underlying. This is used to study the effect of misjudging the volatility on hedge performance.
Transaction costs have a fixed and a proportional component. The fixed component also has to be normalized to cost per one 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 bidask spread etc., 0.1 is a conservative number. Transaction costs are assumed to remain constant in today's dollars.
The option price path C[0] must be initialized with the option price at
time zero before this routine is called. Current implementation of the
class Call
does this at call initialization.
hedge_sigma
 volatility under which deltas are computed.fixed_trc
 fixed transaction costs (normalized to one share).prop_trc
 proportional transaction costs.public double hedgeErrorVarianceReduction(int nPath)
Computes the reduction in the variance of the hedge error over the first hedge interval [0,dt] which the variance minimizing delta provides compared to the analytic delta as a percentage of the minimal variance. The paths of the underlying are simulated in the risk neutral probability.
public static void main(java.lang.String[] args) throws java.io.IOException
java.io.IOException


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 