Basic Option Pricing, the Black Scholes formula.

The pricing of options and related instruments has been a major breakthrough for the use of financial theory in practical application. Since the original papers of Black and Scholes (1973) and Merton (1973), there has been a wealth of practical and theoretical applications. In this chapter we will discuss ways of calculating the price of an option in the setting discussed in these original papers. The discussion is not complete, it needs to be supplemented by one of the standard textbooks, like Hull (1993).


Let us start by reviewing the setup. The basic assumption used is about the stochastic process governing the price of the underlying asset the option is written on. In the following discussion we will use the standard example of a stock option, but the theory is not only relevant for stock options.

The price of the underlying asset, $S$, is assumed to follow a geometric Brownian Motion process, conveniently written in either of the shorthand forms

\begin{displaymath}dS = \mu S dt + \sigma S dZ \end{displaymath}


\begin{displaymath}\frac{dS}{S} = \mu dt + \sigma dZ \end{displaymath}

where $\mu$ and $\sigma$ are constants, and $Z$ is Brownian motion.

Using Ito's lemma, the assumption of no arbitrage, and the ability to trade continuously, Black and Scholes showed that the price of any contingent claim written on the underlying must solve the following partial differential equation:

\frac{\partial f}{\partial S}rS +
\frac{\partial f}{\part...
...\frac{1}{2} \frac{\partial^2 f}{\partial S^2}\sigma^2S^2 = rf
\end{displaymath} (6.1)

For any particular contingent claim, the terms of the claim will give a number of boundary conditions that determines the form of the pricing formula.

We will start by discussing the original example solved by Black, Scholes, Merton: European call and put options.

European call and put options, The Black Scholes analysis.

A call (put) option gives the holder the right, but not the obligation, to buy (sell) some underlying asset at a given price $X$, called the exercise price, on or before some given date $T$.

If the option is European, it can only be used (exercised) at the maturity date. If the option is American, it can be used at any date up to and including the maturity date.

We use the following notation: $S$: Price of the underlying, eg stock price, $X$: Exercise price, $r$: Risk free interest rate, (continously compounded), $\sigma$: Standard deviation of the underlying asset, eg stock, $t$: Current date, $T$: Maturity date and $T-t$: Time to maturity.

At maturity, a call option is worth

\begin{displaymath}C_T = \max(0,S_T-X) \end{displaymath}

and a put option is worth

\begin{displaymath}P_T = \max(0,X-S_T) \end{displaymath}

This can be used in solving the Black Scholes pde above, since they define a boundary condition for the pde.

Analytical option prices, Black Scholes case.

The pde with the boundary condition $c_T = \max(0,S_T-X)$ was shown by Black and Scholes to have an analytical solution of functional form shown in formula 6.1.

% latex2html id marker 1951\caption{The Black Scholes formula}...
...tion and $N(\cdot)$\ the cumulative normal
The calculation is shown in code 6.1

% latex2html id marker 2067\caption{Price of European call opt...

Proving the Black Scholes formulas correctness

Can be done in a number of ways. The original Black Scholes paper first showed the general pde shown in equation 6.1 and then showed that with the boundary conditions defined by $C_T =
\mbox{max}(S_T-X)$ satisfied the pde. The Black Scholes formulation involves an assumption of continous time and the possibility of trading continously.

The Black Scholes formula can be proven a number of other ways. One is to assume a representative agent and lognormality as was done in Rubinstein (1976). Another is to use the limit of a binomial process (Cox et al., 1979). The latter is particularly interesting, as it allows us to link the Black Scholes formula to the binomial, allowing the binomial framework to be used as an approximation. We will return to this in the next chapter.

Partial derivatives.

In trading of options, a number of partial derivatives of the option price formula is important. The first derivative of the option price with respect to the price of the underlying security is called the delta of the option price. It is the derivative most people will run into, since it is important in hedging of options. We limit the discussion to the partials of call options

\begin{displaymath}\frac{\partial c}{\partial S} = N(d_1) \end{displaymath}

Code 6.2 shows the calculation of the delta for a call option.

% latex2html id marker 2072\caption{Calculating the delta of t...

The remaining derivatives are more seldom used, but all of them are relevant.

The gamma is the second derivative of the option price with respect to the price of the underlying security, and calculated as:

\begin{displaymath}\Gamma_c = \frac{\partial^2 c}{\partial S^2} =
\Gamma_p = \fr...
...rtial \Delta}{\partial
S} = \frac{n(d_1)}{S\sigma\sqrt{T-t} } \end{displaymath}

The theta is the partial with respect to time.

For a call option the following two relations hold:

\begin{displaymath}\frac{\partial c}{\partial (T-t)} = Sn(d_1)\frac{1}{2}\sigma\frac{1}{\sqrt{T-t}}+rXe^{-r(T-t)}N(d_2)\end{displaymath}

\begin{displaymath}\frac{\partial c}{\partial t} = -Sn(d_1)\frac{1}{2}\sigma\frac{1}{\sqrt{T-t}}-rXe^{-r(T-t)}N(d_2)\end{displaymath}

The Vega is the partial with respect to volatility:

\begin{displaymath}\textrm{Vega}_c = \frac{\partial c}{\partial \sigma} = S\sqrt{T-t}n(d_1)\end{displaymath}

The Rho is the partial with respect to the interest rate

\begin{displaymath}\textrm{Rho}_c = \frac{\partial c}{\partial r} = X(T-t) e^{-r(T-t)}N(d_2)\end{displaymath}

The calculation of all of these partial derivatives is shown in code 6.3

% latex2html id marker 2077\caption{Calculating the partial de...

Implied Volatility.

In calculation of the option pricing formulas, in particular the Black Scholes formula, the only unknown is the standard deviation of the underlying stock. A common problem in option pricing is to find the implied volatility, given the observed price quoted in the market. For example, given $c_0$, the price of a call option, the following equation should be solved for the value of $\sigma$

\begin{displaymath}c_0 = c(S,X,r,\sigma,T-t) \end{displaymath}

Unfortunately, this equation has no closed form solution, which means the equation must be numerically solved to find $\sigma$. What is probably the algorithmic simplest way to solve this is to use a binomial search algorithm, which is implemented in the following. We start by bracketing the sigma by finding a high sigma that makes the BS price higher than the observed price, and then, given the bracketing interval, we search for the volatility in a systematic way. Code 6.4 shows such a calculation.

% latex2html id marker 2082\caption{Calculation of implied vol...

Instead of this simple bracketing, which is actually pretty fast, and will (almost) always find the solution, we can use the Newton-Raphson formula for finding the root of an equation in a single variable. The general description of this method starts with a function $f()$ for which we want to find a root.

\begin{displaymath}f(x) = 0. \end{displaymath}

The function $f()$ needs to be differentiable. Given a first guess $x_0$, iterate by

\begin{displaymath}x_{i+1} = x_i - \frac{f(x_i)}{f^\prime(x_i)} \end{displaymath}


\begin{displaymath}\vert f(x_i)\vert<\epsilon \end{displaymath}

where $\epsilon$ is the desired accuracy.6.1

In our case

\begin{displaymath}f(x) = c_{obs} - c_{BS}(\sigma) \end{displaymath}

and, each new iteration will calculate

\begin{displaymath}\sigma_{i+1}=\sigma_i+\frac{c_{obs}-c_{BS}(\sigma_i)} {-\frac{\partial c_{BS}()}{\partial\sigma}}\end{displaymath}

Code 6.5 shows the calculation of implied volatility using Newton-Raphson.
% latex2html id marker 2087\caption{Calculation of implied vol...

Note that to use Newton-Raphson we need the derivative of the option price. For the Black-Scholes formula this is known, and we can use this. But for pricing formulas like the binomial, where the partial derivatives are not that easy to calculate, simple bisection is in most cases the preferred algorithm.

Implement the Black Scholes price for a put option:
...{displaymath} where $d_1$\ and $d_2$\ are as for the call option.