Package com.illumon.numerics.derivatives
Class BlackScholes
java.lang.Object
com.illumon.numerics.derivatives.BlackScholes
A generalized Black-Scholes model for European options.
-
Method Summary
Modifier and TypeMethodDescriptionstatic doublecarryRho(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes carryRho (first order partial derivative of option price with respect to cost-of-carry).static doublecharm(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes charm (first order partial derivative of Delta with respect to time to expiry).static doubledelta(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes delta (first order partial derivative of option price with respect to stock price).static doubledriftlessTheta(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes driftlessTheta (theta assuing the risk free rate and the cost of carry are zero).static doublegamma(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes gamma (second order partial derivative of option price with respect to stock price).static doublegammaP(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes percentage gamma (first order partial derivative of delta with respect to ln(stock price)).static doubleimpliedVolBisect(double P, Boolean isCall, double S, double X, double T, double r, double b) Generalized Black-Scholes implied vol fitter using a bisection algorithm.static doubleimpliedVolBisect(double P, Boolean isCall, double S, double X, double T, double r, double b, double eps, int maxIters) Generalized Black-Scholes implied vol fitter using a bisection algorithm.static doubleimpliedVolNewton(double P, Boolean isCall, double S, double X, double T, double r, double b) Generalized Black-Scholes implied vol fitter using a newton algorithm.static doubleimpliedVolNewton(double P, Boolean isCall, double S, double X, double T, double r, double b, double eps, int maxIters) Generalized Black-Scholes implied vol fitter using a newton algorithm.static doubleimpliedVolNewtonP(double P, Boolean isCall, double S, double X, double T, double r, double b) Generalized Black-Scholes implied vol fitter using a newton algorithm based on log(vol).static doubleimpliedVolNewtonP(double P, Boolean isCall, double S, double X, double T, double r, double b, double eps, int maxIters) Generalized Black-Scholes implied vol fitter using a newton algorithm based on log(vol).static doubleprice(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes option price.static doublerho(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes rho (first order partial derivative of option price with respect to risk-free rate).static doublestrikeDelta(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes strikeDelta (first order partial derivative of option price with respect to strike price).static doublestrikeFromDeltaBisect(double delta, Boolean isCall, double S, double T, double r, double b, double v) Finds the Generalized Black-Scholes strike from the delta.static doublestrikeFromDeltaBisect(double delta, Boolean isCall, double S, double T, double r, double b, double v, double eps, int maxIters) Finds the Generalized Black-Scholes strike from the delta.static doubletheta(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes theta (first order partial derivative of option price with respect to time to expiry).static doublevega(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes vega (first order partial derivative of option price with respect to volatility).static doublevegaBleed(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes vegaBleed (first order partial derivative of Vega with respect to time to expiry).static doublevegaP(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes percentage vega (first order partial derivative of vega with respect to ln(volatility)).static doublevomma(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes vomma (second order partial derivative of option price with respect to volatility).static doublevommaP(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes percentage vomma (first order partial derivative of Vega with respect to ln(volatility)).
-
Method Details
-
price
public static double price(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes option price.- Parameters:
isCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
delta
public static double delta(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes delta (first order partial derivative of option price with respect to stock price).- Parameters:
isCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option delta
-
gamma
public static double gamma(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes gamma (second order partial derivative of option price with respect to stock price).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
gammaP
public static double gammaP(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes percentage gamma (first order partial derivative of delta with respect to ln(stock price)).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
vega
public static double vega(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes vega (first order partial derivative of option price with respect to volatility).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
vegaP
public static double vegaP(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes percentage vega (first order partial derivative of vega with respect to ln(volatility)).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
vomma
public static double vomma(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes vomma (second order partial derivative of option price with respect to volatility).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
vommaP
public static double vommaP(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes percentage vomma (first order partial derivative of Vega with respect to ln(volatility)).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
vegaBleed
public static double vegaBleed(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes vegaBleed (first order partial derivative of Vega with respect to time to expiry).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
charm
public static double charm(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes charm (first order partial derivative of Delta with respect to time to expiry).- Parameters:
isCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
theta
public static double theta(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes theta (first order partial derivative of option price with respect to time to expiry).- Parameters:
isCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
driftlessTheta
public static double driftlessTheta(double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes driftlessTheta (theta assuing the risk free rate and the cost of carry are zero).- Parameters:
S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
rho
public static double rho(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes rho (first order partial derivative of option price with respect to risk-free rate).- Parameters:
isCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
carryRho
public static double carryRho(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes carryRho (first order partial derivative of option price with respect to cost-of-carry).- Parameters:
isCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
strikeDelta
public static double strikeDelta(boolean isCall, double S, double X, double T, double r, double b, double v) Computes the generalized Black-Scholes strikeDelta (first order partial derivative of option price with respect to strike price).- Parameters:
isCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- theoretical option price
-
impliedVolBisect
public static double impliedVolBisect(double P, Boolean isCall, double S, double X, double T, double r, double b) Generalized Black-Scholes implied vol fitter using a bisection algorithm.- Parameters:
P- option priceisCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carry- Returns:
- implied volatility
-
impliedVolBisect
public static double impliedVolBisect(double P, Boolean isCall, double S, double X, double T, double r, double b, double eps, int maxIters) Generalized Black-Scholes implied vol fitter using a bisection algorithm.- Parameters:
P- option priceisCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryeps- volatility convergence tolerancemaxIters- maximum number of optimization iterations- Returns:
- implied volatility
-
impliedVolNewton
public static double impliedVolNewton(double P, Boolean isCall, double S, double X, double T, double r, double b) Generalized Black-Scholes implied vol fitter using a newton algorithm.- Parameters:
P- option priceisCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carry- Returns:
- implied volatility
-
impliedVolNewton
public static double impliedVolNewton(double P, Boolean isCall, double S, double X, double T, double r, double b, double eps, int maxIters) Generalized Black-Scholes implied vol fitter using a newton algorithm.- Parameters:
P- option priceisCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryeps- volatility convergence tolerancemaxIters- maximum number of optimization iterations- Returns:
- implied volatility
-
impliedVolNewtonP
public static double impliedVolNewtonP(double P, Boolean isCall, double S, double X, double T, double r, double b) Generalized Black-Scholes implied vol fitter using a newton algorithm based on log(vol).- Parameters:
P- option priceisCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carry- Returns:
- implied volatility
-
impliedVolNewtonP
public static double impliedVolNewtonP(double P, Boolean isCall, double S, double X, double T, double r, double b, double eps, int maxIters) Generalized Black-Scholes implied vol fitter using a newton algorithm based on log(vol).- Parameters:
P- option priceisCall- true for call; false for put.S- underlying stock priceX- strike priceT- years to expiryr- risk-free rateb- cost-of-carryeps- volatility convergence tolerancemaxIters- maximum number of optimization iterations- Returns:
- implied volatility
-
strikeFromDeltaBisect
public static double strikeFromDeltaBisect(double delta, Boolean isCall, double S, double T, double r, double b, double v) Finds the Generalized Black-Scholes strike from the delta.- Parameters:
delta- deltaisCall- true for call; false for put.S- underlying stock priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatility- Returns:
- strike associated with the delta
-
strikeFromDeltaBisect
public static double strikeFromDeltaBisect(double delta, Boolean isCall, double S, double T, double r, double b, double v, double eps, int maxIters) Finds the Generalized Black-Scholes strike from the delta.- Parameters:
delta- deltaisCall- true for call; false for put.S- underlying stock priceT- years to expiryr- risk-free rateb- cost-of-carryv- volatilityeps- volatility convergence tolerancemaxIters- maximum number of optimization iterations- Returns:
- strike associated with the delta
-