6. Valuation of European Options

The former Chapter, as was summarized in its Concluding Remarks, provided the bridge between the one-period discrete model and a one period model with a continuum of states of nature. This latter type of model is sufficient to allow the valuation of European-type options. Utilizing the reader's intuition and extending the results of Chapter 1 to the continuous-time setting enables the valuation of European-type contingent claims. Specifically if [Maple Math] is the payoff of the contingent claim, where [Maple Math] is the price of the underlying asset at maturity, the value of the derivative security is given by equation (5.7), i.e., by [Maple Math] ), where [Maple Math] is the SDF.

Chapter 5 was also, at least partially (
see footnote 6 on page 185), intent on supporting the choice of the SDF and the risk-neutral probability as the lognormal distribution. We are therefore now at the point where calculating the value of a European-type option amounts to calculating the value of a certain integral. The current Chapter is dedicated to the valuation of European puts and calls, i.e., to European options where [Maple Math] is either given by [Maple Math] or by [Maple Math] , where [Maple Math] is the exercise price and [Maple Math] the value of the underlying asset at maturity.

Having established the pricing formulae, the investigation of combinations of options with different maturity dates follows. Prior to the derivation of this formula we lacked the ''tool'' to compare options with different maturity times and, of course, to value options prior to maturity. Consequently, we were limited to investigating only the payoffs of combinations at maturity. In this Chapter we have the tools and we are able to explore combinations across time. The Chapter also looks into the effect of dividends on the price of European-type options. The Chapter concludes with the issue of volatility vs. implied volatility.

6.1 Valuing a Call Option

We can now calculate the Black-Scholes formula (see [8]) for the price of a call option. As we have seen in equations (5.8) and (5.45), this formula can be derived in two ways. Equation (5.45) derives the formula for pricing call options as the expected value of the future payoff based on the risk-neutral probability, discounted by the risk-free rate of interest. Equation (5.9) expresses the price of a call option as the present value of the payoff based on the stochastic discount factor. In either approach, the formula is obtained by the evaluation of (essentially) the same integral.

If we approach the call option pricing formula from the perspective of the discounted expected value we must use the risk-neutral probability which we defined as the MAPLE function given below.

> Lnrn(s,t,P,r,sigma);

[Maple Math]

The price of the call option based on equations (5.45) and (5.44) will thus be

> CallPrice:='exp(-r*t)*int(Call(s,K)*Lnrn(s,t,P,r,sigma),s=0..infinity)';

[Maple Math]

We have seen in equation (5.16) the relationship between the risk-neutral probability and the stochastic discount facotor [Maple Math] . The function [Maple Math] is defined as below.

> psi:=unapply(exp(-r*t)*Lnrn(s,t,P,r,sigma),s,t,P,r,sigma);

[Maple Math]

The price of the call option can also be calculated based on equation (5.45), as the expression CallAlt:

> CallAlt:=Int((s - K)*psi(s,t,P,r,sigma),s=K..infinity);

[Maple Math]

where [Maple Math] was subsituted for [Maple Math] , and thus the integral is as above. Clearly these two expressions are the same. We shall proceed now with the calculation of CallPrice . Some readers may wish to skip these calculations. The result is reported in equation (6.2) toward the end of this section. We begin by informing MAPLE that some of our variables must be positive:

> assume (P>0,t>0,r>0,K>0,sigma>0);

We then ask MAPLE to attempt an evaluation of the integral. To understand MAPLE's evaluation we need to introduce the definition of the function erf , a built-in MAPLE function. We previously defined the cumulative Normal probability function in MAPLE as Normalcdf . erf is a built-in MAPLE function which is closely related to the function Normalcdf . erf is defined as

> erf(x)=2/sqrt(Pi)*Int((exp(-v^2), v=0..x));

[Maple Math]

Similarly, the cumulative normal probability function is defined by

> Normalcdf:=(x,mu,sigma)->int(exp(-(v-mu)^2/2/(sigma)^2)/sqrt(2*Pi*(sigma)^2), v=-infinity..x);

[Maple Math]

To demonstrate the relationship between erf and the normal probability function we evaluate Normalcdf at [Maple Math] for [Maple Math] and [Maple Math] .

> Normalcdf(x*sqrt(2),0,1);

[Maple Math]

MAPLE recognizes that Normalcdf can be defined in terms of the MAPLE function erf . Conversely, we can express the function erf in terms of the function Normalcdf . Mutliplying Normalcdf by two, evaluating it at the point [Maple Math] is equivalent to the erf function plus one. This is demonstrated as follows:

> 2*Normalcdf(x*sqrt(2),0,1)-1;

[Maple Math]

To facilitate the MAPLE calculation the integral defining CallPrice is rewritten in terms of the density function of [Maple Math] -- the continuously compounded rate of return. As you recall, we assumed it to be the normal distribution with expected value of [Maple Math] and a standard deviation of [Maple Math] . This could be achieved by simply replacing the variable of integration in the above integral using the relation in equation, (5.24) i.e., [Maple Math] .

Alternatively, one can apply the fact that given a random variable [Maple Math] the expected value of [Maple Math] may be calculated based on the density of [Maple Math] as [Maple Math] . Thus in our case [Maple Math] plays the rule of [Maple Math] and [Maple Math] is the normal density function. Consequently we can equivalently define CallPrice as below.

> CallPrice:='exp(-r*t)*int(Call(P*exp(y),K)*Normalpdf(y,(r-sigma^2/2)*t, sigma*sqrt(t)),y=0..infinity)';

[Maple Math]

Since when [Maple Math] the value of [Maple Math] vanishes we can change the lower limit of the integral to be [Maple Math] and replace [Maple Math] in the integrand with [Maple Math] . Thus, the integral to be calculated is

> CallPrice:='exp(-r*t)*int((P*exp(y)-K)*Normalpdf(y,(r-sigma^2/2)*t, sigma*sqrt(t)),y=ln(K/P)..infinity)';

[Maple Math]

and as we can see below, the results of the calculation are written in terms of the MAPLE function erf .

> CallPrice:=expand(CallPrice);

[Maple Math]
[Maple Math]
[Maple Math]

Let us ask MAPLE to simplify the above expression.

> CallPrice:=simplify(CallPrice);

[Maple Math]
[Maple Math]

Now the resemblance between the CallPrice and the erf functions and consequently the Normalcdf function is more apparent.

Given the relationship between Normalcdf and erf we can convert this expression in terms of Normalcdf . Indeed, the classical way of stating this expression is not in terms of erf . However, at this time it is more efficient to use erf to perform calculations using MAPLE. We shall return to this point soon, but first we define a function in MAPLE that calculates the price of a call option. We name this function Eqbs . The following command in MAPLE defines the function Eqbs based on the results of our calculation:

> Eqbs:=unapply(CallPrice,K,t,P,sigma,r);

[Maple Math]
[Maple Math]

The reader can now calculate the price of a call option given specific parameter values. For example, an option that expires in one month ( [Maple Math] of a year) where [Maple Math] and [Maple Math] are given per annum will have the following value:

> evalf(Eqbs(90,1/12,95,0.18,0.15));

[Maple Math]

Given the relation between erf and the normal distribution it is possible to write the pricing formula in terms of the normal distribution.

We can also ask MAPLE to express the pricing formula in terms of the cumulative standard normal distribution, i.e., in terms of Normlacdf ( [Maple Math] ). For simplicity let us call this function [Maple Math] . Let us define a function called newerf ; this function is simply the erf function in terms of the [Maple Math] function. As discussed earlier, this relationship is

> newerf:=t->2*N(t*sqrt(2))-1;

[Maple Math]

We can now substitute newerf for erf in the CallPrice expression. The pricing formula is now expressed in terms of the [Maple Math] function:

> NewCallPrice:= simplify(subs(erf=newerf,CallPrice));

[Maple Math]

which equals

[Maple Math]

(6.1)

Recognizing that [Maple Math] , we restate equation (6.1) as

[Maple Math] .

(6.2)

The above is the Black-Scholes option pricing formula. The formula is classically restated as

[Maple Math] ,

(6.3)

where [Maple Math] is the cumulative normal distribution with [Maple Math] and [Maple Math] , i.e.,

[Maple Math]

(6.4)

[Maple Math]

(6.5)

and

[Maple Math] = [Maple Math] .

(6.6)

The procedure BstCall is a slight modification of the built-in MAPLE procedure which calculates the call price. Using the above example, the parameters for this procedure are as follows: exercise price (90); time to expiration of the option (1 month); current price of the stock (95); standard deviation of the continuous return on the stock per unit of time (0.18); and continuously compounded risk-free interest rate per unit of time (0.15).

Let us value an option with the above specifications. As discussed earlier it is common practice to use 1 year as the basic unit of time. Hence a one month time period is inputted as [Maple Math] . We assume the interest rates and standard deviation are given in per annum values. We can now value such a call option as follows:

> BstCall(90,1/12,95,0.18,0.15);

[Maple Math]

Compare the results of the prices assigned by the built-in MAPLE procedure BstCall to the function Eqbs defined above. Footnote 1 We see that the result from the procedure BstCall is the same as the calculation based on our function Eqbs .

Before we investigate some properties of the Black-Scholes formula, we would like to compare it to the bounds we obtained by relative pricing arguments. The bounds in equation (4.6) specify that the value of a call option is always smaller than the value of the stock and larger than the value of the option at expiration. In Figure 6.1 we demonstrate these bounds in a three-dimensional graph. The value of a call option is graphed as a function of the current price of the stock and time to maturity. In the same plane we also graph the value of the stock (the upper bound) and the payoff at expiration (the lower bound). Looking at this picture the reader may gain insight as to how the value of the option approaches its value at expiration as time progresses and as the stock price changes. Recall that you may look at this graph from different perspectives by dragging the picture with the mouse. The insights gained by close examination of the picture will be revisited very shortly. Pay attention to the way the middle graph (the value of the call) gets closer to the value of the call at maturity as the time to maturity approaches zero.

> callbound:=plot3d({P,Call(P,20)},t=0..3,P=0..50,labels=[time,`Stock Price`,`Call's Value`],axes=frame,orientation=[23,79],ambientlight=[1,1,1],style=patchnogrid ):

> callprice:=plot3d('BstCall(20,t,P,0.25,0.10)',t=0..3,P=0..50, labels=[time,`Stock Price`,`Call's Value`],axes=none,orientation=[23,79],ambientlight=[0,0,0],title=`Figure 6.1: The Value of a Call Option and its Bounds as a Function of S and t`,titlefont=[TIMES, BOLD, 10]):

> plots[display3d](callbound,callprice);

[Maple Plot]

The on-line book shows an animation of the bounds. Run the animation and observe how as time approaches maturity the value of the call moves within the bounds toward its value at maturity.

> plots[animate]({'BstCall(20,3-t,P,0.25,0.10)',P,Call(P,20)},P=0..50,t=0..3, axes=NORMAL,color=red,labels=[`stock price`,`call value`],thickness=2);

[Maple Plot]

Footnotes

Footnote 1

The reader may have skipped this discussion as suggested.

back to text

Back to table of contents