Black-Scholes Option Valuation
BlackScholes
Returns the Black-Scholes European call/put valuation.
=BlackScholes(call_put_flag, stock_price, strike_price, time_to_expiry, risk-free rate, dividend_yield, volatility)
' Returns 2.1334
=BlackScholes("c", 60, 65, 0.25, 0.08, 0, 0.3)
call_put_flagis whether the instrument is a call ("c") or a put ("p").stock_priceis the current value of the underlying stock.strike_priceis the option's strike price.time_to_expiryis the time to maturity in years.risk-free rateis the risk-free rate through expiry.dividend_yieldis the annual dividend yield.volatilityis the implied volatility at expiry.
GBlackScholes
Returns the Black-Scholes European call/put valuation.
=GBlackScholes(call_put_flag, stock_price, strike_price, time_to_expiry, risk-free rate, cost_of_carry, volatility)
call_put_flagis whether the instrument is a call ("c") or a put ("p").stock_priceis the current value of the underlying stock.strike_priceis the option's strike price.time_to_expiryis the time to maturity in years.risk-free rateis the risk-free rate through expiry.cost_of_carryis the annualized cost of carry.volatilityis the implied volatility at expiry.
ImpliedVolatility
Returns the Black-Scholes implied volatility using the Newton-Raphson method.
=ImpliedVolatility(call_put_flag, stock_price, strike_price, time_to_expiry, risk-free rate, dividend_yield, price)
' Returns 0.3
=ImpliedVolatility("c", 60, 65, 0.25, 0.08, 0, 2.1334)
call_put_flagis whether the instrument is a call ("c") or a put ("p").stock_priceis the current value of the underlying stock.strike_priceis the option's strike price.time_to_expiryis the time to maturity in years.risk-free rateis the risk-free rate through expiry.dividend_yieldis the annual dividend yield.priceis the Black-Scholes European put/call valuation.
Black76
Returns the Black-76 valuation for options on futures and forwards.
=Black76(call_put_flag, forward, strike_price, time_to_expiry, risk-free_rate, volatility)
' Returns 4.7829
=Black76("c", 100, 98, 1, 0.05, 0.1)
call_put_flagis whether the instrument is a call ("c") or a put ("p").forwardis the current forward value.strike_priceis the option's strike price.time_to_expiryis the time to maturity in years.risk-free rateis the risk-free rate through expiry.volatilityis the implied volatility at expiry.
Swaption
Returns the Black-76 European payer/receiver swaption valuation.
=Swaption(pay_rec_flag, tenor, periods, swap_rate, strike_rate, time_to_expiry, risk-free_rate, volatility)
pay_rec_flagis whether the instrument is a payer ("p") or a receiver ("r").tenoris the tenor of the swap in years.periodsis the number of compoundings per year.swap_rateis the current underlying swap rate.strike_rateis the option's strike rate.time_to_expiryis the time to maturity in years.risk-free_rateis the risk-free rate through expiry.volatilityis the implied volatility at expiry.
The Greeks
Returns the options Greek for a particular sensitivity. (Note: All functions for the Greeks share a common set of arguments, regardless of whether those inputs are used in a particular Greek's calculation.)
=BSDelta(call_put_flag, stock_price, strike_price, time_to_expiry, risk_free_rate, dividend_yield, volatility)
' Returns 0.37
=BSDelta("c", 60, 65, 0.25, 0.08, 0, 0.3)
call_put_flagis whether the instrument is a call ("c") or a put ("p").stock_priceis the current value of the underlying stock.strike_priceis the option's strike price.time_to_expiryis the time to maturity in years.risk-free_rateis the risk-free rate through expiry.dividend_yieldis the annual dividend yield.volatilityis the implied volatility at expiry.
| Function | Sensitivity of __ | to changes in __ |
|---|---|---|
| =BSDelta() | option price | underlying price |
| =Vega() | option price | volatility |
| =Theta() | option price | passage of time |
| =Rho() | option price | risk-free rate |
| =Gamma() | option price | delta |
| =Vanna() | delta | volatility |
| =Charm() | delta | passage of time |
| =Speed() | gamma | underlying price |
| =Zomma() | gamma | volatility |
| =Color() | gamma | passage of time |
| =DvegaDtime() | vega | passage of time |
| =Vomma() | vega | volatility |
| =DualDelta() | option price | strike price |
| =DualGamma() | delta | strike price |
American and Bermudan Options
American
Returns the Barone-Adesi-Whaley approximation for an American option.
=American(call_put_flag, stock_price, strike_price, time_to_expiry, risk-free rate, dividend_yield, volatility)
call_put_flagis whether the instrument is a call ("c") or a put ("p").stock_priceis the current value of the underlying stock.strike_priceis the option's strike price.time_to_expiryis the time to maturity in years.risk-free rateis the risk-free rate through expiry.dividend_yieldis the annual dividend yield.volatilityis the implied volatility at expiry.
BermudanBinomial
Returns the binomial valuation for a Bermudan option.
=BermudanBinomial(call_put_flag, stock_price, strike_price, time_to_expiry, risk-free rate,
dividend_yield, volatility, potential_exercise_times, iterations)
call_put_flagis whether the instrument is a call ("c") or a put ("p").stock_priceis the current value of the underlying stock.strike_priceis the option's strike price.time_to_expiryis the time to maturity in years.risk-free rateis the risk-free rate through expiry.dividend_yieldis the annual dividend yield.volatilityis the implied volatility at expiry.potential_exercise_timesis a range of potential exercise times in years.iterationsis the number of calculations performed to increase precision. Defaults to500.