13.4 Numerical Valuation

13.4.1 Price Evolution

Let us look at a numerical example to clarify the price process. Assume a European call option that matures in a year [Maple Math] in a market where the annual continuously compounded risk-free rate is [Maple Math] . We divide the year into time periods of 2 months in length and so generate a binomial tree with [Maple Math] , i.e., [Maple Math] . As per equation (13.3), [Maple Math] . Let us fix the factor [Maple Math] and [Maple Math] according to the specification of equation (13.4) so that [Maple Math] takes the value [Maple Math] if state Up occurs or the value [Maple Math] if state Down occurs. For the time being we do not explain how these factors were determined Footnote 10, but we will dedicate Section 14.1 to this issue. Hence, [Maple Math]

> evalf(exp((1/5)*sqrt(1/6)));

[Maple Math]

and Do= [Maple Math]

> evalf(exp(-(1/5)*sqrt(1/6)));

[Maple Math]

We verify below that these choices for [Maple Math] and [Maple Math] satisfy the no-arbitrage condition. The no-arbitrage condition in a one-period binomial model is satisfied if and only if the system of equations in (2.1) in Chapter 2 is consistent. In our context it can be translated to the system of equations and inequalities represented in (13.22), being consistent.


[Maple Math]

[Maple Math] < 1

(13.22)

The consistency of (13.22) guarantees the existence of a risk-neutral probability under which the expected value of the stock future price, discounted by the risk-free rate, is its current price. The first equation in (13.22) is independent of [Maple Math] , the price of the stock at the beginning of the period and can be rewritten as


[Maple Math] .


Hence, if the system in (13.22) is consistent, there are no arbitrage opportunities in each of the one-period binomial models composing the
N -period binomial tree spanning the full year. Therefore, by Theorem 11, the N -period binomial model is arbitrage-free. We ask the reader to verify that [Maple Math] solves the equation above.

With these values for
[Maple Math] and [Maple Math] the evolution of the price of the stock is displayed in the spreadsheet below (Table 13.3 in the hard copy). In the on-line version, the reader may change the values of [Maple Math] - the current price of the stock, of [Maple Math] - the annual continuously compounded risk-free rate, and of [Maple Math] - the length of a time period in years, and reevaluate the spreadsheet. Note that for the prepared spreadsheet the maturity time will be [Maple Math] but the reader may increase the number of periods and thereby extend the maturity time. Reevaluating the spreadsheet will triger also the recalculation of the factors [Maple Math] and [Maple Math] and of the risk-neutral probability [Maple Math] .

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

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



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


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

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

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


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



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

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


[Maple Math]

Table 13.3: A Numeric Price Evolution in a Six-Period Binomial Tree

13.4.2 European Call

The value of a European-type contingent claim that pays f(S) at its maturity time (time 6 in our example) can be calculated utilizing the replication approach as in equation (13.21). Alternatively it can be done via the stochastic discount factor as in equation (13.15). In this section we value the call option via the replication approach. We do it in two ways -- once based on equation (13.15), and once showing the price evolution and the replicating portfolio in each time and state.

Let us assign values to the following variables:

> i:='i';j:='j';T:=1;N:=6;r[f]:=.1;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> Up:=evalf(exp(1/5*sqrt(T/N)));Do:=1/Up;S:=100;

[Maple Math]

[Maple Math]

[Maple Math]

> qu:=(exp(r[f]/N)-Do)/(Up-Do);

[Maple Math]

With these assignments the value of the stochastic discount factor in state [Maple Math] at time [Maple Math] is given by

> d(N,j):=(N!/(j!*(N-j)!))*exp(-r[f]*T)*qu^j*(1-qu)^(N-j);

[Maple Math]

We also specify the payoff (value) at a maturity that is defined by the function [Maple Math] . The function defined below is the payoff from a European call option with an exercise price of $80. (The reader may choose to define the function f differently in order to value another contingent claim.)

> f:=S->max(S-80,0);

[Maple Math]

The value of such a contingent claim, utilizing the stochastic discount factor approach, is based on equation (13.15). It is given by the command below:

> 'sum(d(N,j)*f(S*Up^j*Do^(N-j)),j=0..N)'\

> =sum(d(N,j)*f(S*Up^j*Do^(N-j)),'j'=0..N);

[Maple Math]

We can also calculate the value of the derivative security and its replicating portfolio at each intermediate node. This is not necessary if one is only interested in the value of the European option. However, for an American-type option the situation is different. To pave the ground for our discussion of American options we present the value of the option and its value if exercised at each node.

The value of the option at each node is calculated in a recursive way as was done in the symbolic example of Section 13.2.2. We use the two-dimensional array DerPrice to store the value of the option at each node, where the first index of the array will denote time and the second index denotes the number of up movements since time zero. Hence we assign the value of [Maple Math] for [Maple Math] ,...,6, as below.

> j:='j':i:=6;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=f(S*Up^j*Do^(i-j));

> od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

As was seen in the symbolic example at the end of Subsection 13.3.2, we can run a "do loop" within a "do loop" to calculate the value of the option at time 0. This is done below but we will also run it step-by-step and observe the evolution of the price of the option and the replicating portfolios.

> i:='i';j:='j';

[Maple Math]

[Maple Math]

> for i from 5 to 0 by -1 do;

> for j from i to 0 by -1 do;

> [Maple Math]

> od;

> od;

> DerPrice[0,0];

[Maple Math]

We therefore conclude that the value calculated in this manner leads to the same price, 28.01861454.

We proceed now to calculate the option value step-by-step and its evolution. Having calculated the value of the option at maturity we can calculate the value of the option at each node at time 5. Its price at time 5 is the discounted expected value of the option price at time 6. Hence,

> j:='j':i:=5;

[Maple Math]

> for j from i to 0 by -1 do;

> [Maple Math]

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

This option is of European-type and cannot be exercised at time 5. Let us see, however, if it would have been optimal to exercise in some states at time 5, if that possibility had been available to us. We should realize that since the underlying asset pays no dividend, early exercise would not have been optimal. Nevertheless, we present in the group of Maple commands below, the value of the option at time 5 at each node [Maple Math] for [Maple Math] ,...,5, compared with its value if exercised at time 5, [Maple Math] . Furthermore, we display the composition of the replicating portfolio, where [Maple Math] is the holding of the stock, and [Maple Math] is the amount invested in the risk-free rate. The on-line version of the book presents the output of these commands and also summarizes the output in a spreadsheet. The hard copy of the book only presents the spreadsheet Footnote 11 in the table below.

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

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





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


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


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

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


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


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


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


The on-line version of the book proceeds with the recursive solution showing the output of the Maple commands, finding the value of the option at time 4, and continuing to time 3 until we reach time zero. The hard copy of the book will show only the spreadsheet. At each time period we compare the value of the option to its value if exercised immediately and display the replicating portfolio.

> i:=4;

[Maple Math]

> for j from i to 0 by -1 do;

> [Maple Math]

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

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


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

> i:=3;

[Maple Math]

> for j from i to 0 by -1 do;

> [Maple Math]

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

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


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

Before we continue with the next steps of the calculation we would like to alert the reader again to the evolution and meaning of [Maple Math] . We have mentioned before that [Maple Math] plays the role of the [Maple Math] sensitivity measure. Indeed [Maple Math] , the holding of the stock in the replicating portfolio, takes care of the changes in the value of the derivative security that are the result of changes in the price of the stock. In our discussion of the [Maple Math] sensitivity measure, Chapter 7, the measure was defined as the (calculus) derivative of the derivative security's price with respect to the stock price. In this model, though, the change in the stock price is discrete and [Maple Math] cannot be defined as the (calculus) derivative. In the current setting, [Maple Math] is the solution to the system of equations in (13.16) stipulating that holding of [Maple Math] units of the stock ensures that the portfolio value is equal to the value of the derivative security in the next time period. The investigation of hedging with [Maple Math] in Chapter 8 enforces the similarity between [Maple Math] , in the binomial model, and [Maple Math] , in a model where the stock price can take any value in [ [Maple Math] ).

Looking at the evolution of [Maple Math] and [Maple Math] exemplifies this interpretation. When the call option is in the money it is "closer" in nature to a stock than to a bond and [Maple Math] should be closer to 1. Indeed the closer f(s) is to [Maple Math] , the value of the derivative, the closer [Maple Math] is to 1 and the smaller is [Maple Math] . The reader is encouraged to pay attention to this phenomenon which essentially holds for a put option. However, in the case of a put, the larger the value of the stock, the smaller the value of the put option and hence we expect [Maple Math] to be negative and close to [Maple Math] . We proceed now with the final steps of the calculation. Observe the evolution of [Maple Math] , keeping in mind the explanation above.

> i:=2;

[Maple Math]

> for j from i to 0 by -1 do;

> [Maple Math]

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

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


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

> i:=1;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]);

> od;j:='j':

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

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


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

> i:=0;

[Maple Math]

> for j from i to 0 by -1 do;

> [Maple Math]

> od;j:='j':

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':i:='i':

[Maple Math]

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


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

We confirm that the call price is indeed 28.01861454 as calculated before and that it was not optimal to exercise the option prior to maturity. The latter follows since there was no node at which [Maple Math] , the payoff from the option if exercised, was larger than the option's value. This, as we know from Chapter 12, is not necessarily the situation for a put option, even a put written on a stock that pays no dividends. The next subsection exemplifies the optimality of early exercising of a put option within the framework of the binomial model.

13.4.3 European Put

We repeat the same sort of calculations, only this time for a put option. The only change required for this calculation is the definition of the payoff function at maturity. Nevertheless, for convenience we redefine all the parameters below.

> i:='i':j:='j':T:=1:N:=6:r[f]:=.1:

> Up:=evalf(exp(1/5*sqrt(T/N)));Do:=1/Up;S:=100;

[Maple Math]

[Maple Math]

[Maple Math]

> qu:=(exp(r[f]/N)-Do)/(Up-Do);

[Maple Math]

> d(N,j):=(N!/(j!*(N-j)!))*exp(-r[f]*T)*qu^j*(1-qu)^(N-j);

[Maple Math]

Here is where the value of [Maple Math] is defined to reflect a put payoff at maturity.

> f:=S->max(80-S,0);

[Maple Math]

The value of the put based on equation (13.15) is given by the command below.

> 'sum(d(N,j)*f(S*Up^j*Do^(N-j)),j=0..N)'\

> =sum(d(N,j)*f(S*Up^j*Do^(N-j)),'j'=0..N);

[Maple Math]

We proceed to calculate step-by-step the value of the put option based on the replication approach. We start, as we did for the call option, with the value of the put at maturity.

> i:=6:j:='j';

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=f(S*Up^j*Do^(i-j));

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

The value of the put can be calculated as before using a "do-loop" within a "do-loop". This is done below:

> i:='i';j:='j';

[Maple Math]

[Maple Math]

> for i from 5 to 0 by -1 do;

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]);

> od;

> od;i:'i':j:='j':

> DerPrice[0,0];

[Maple Math]

We confirm that the value of the put coincides with its value calculated using the stochastic discount approach. We continue with the step-by-step calculation, displaying the replicating portfolio and the optimal early exercise situations. As expected, in the case of a put, it might be optimal to exercise prior to maturity. Note that at certain states and times [Maple Math] might be less than [Maple Math] , which means exercising would be optimal.

> i:=5;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]);

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

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





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


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


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

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


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


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


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


The reader's attention is drawn to the values displayed in the row that corresponds to [Maple Math] . The value of [Maple Math] is larger than the value of the option, meaning it would have been optimal to exercise the option, were it of the American-type. The spreadsheet displays the values of [Maple Math] in case early exercise is optimal, i.e., if [Maple Math] , in [ ]. The table in the hard copy also displays these values of [Maple Math] in bold fonts.

The value of
[Maple Math] is negative since the put option behaves like a short position in the stock. Recall the payoff graph of a put option (see Figure 4.7 in Chapter 4) in comparison to the payoff from a short position in a stock. In the region when the put option is in the money, its payoff graph has a slope like that of the payoff from a short position in the stock i.e., of -1. Thus the deeper in the money the put is, the closer is [Maple Math] to -1. Observe the evolution of [Maple Math] in comparison to the value of the derivative and to the instances where early exercise, if possible, would have been optimal.

> i:=4;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]);

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

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





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


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


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

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


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


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


Here we see again that for a value of [Maple Math] , early exercise would have been optimal. The value of the option is $6.85 and by exercising it one collects $7.86. If the option had been American it would have been exercised. This would trigger a domino effect causing a change in the value of the option at time i=3, which in turn would cause a change in the value of the option at time i=2. We shall examine this in the next subsection where an American option is valued. The rest of this subsection presents the evolution of the value of the European put and its replicating portfolios.

> i:=3;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]);

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

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





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


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


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

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


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


> i:=2;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[j,i]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,i+1]+(1-qu)*DerPrice[i+1,i]);

> od;j:'j':

[Maple Math]

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

[Maple Math]

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





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


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


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

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


> i:=1;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]);

> od;j:='j':

[Maple Math]

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':

[Maple Math]

[Maple Math]

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





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


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


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

[Maple Math]

> i:=0;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]);

> od;j:='j':

[Maple Math]

> for j from i to 0 by -1 do;

> ['j'=j,'S'=S*Up^j*Do^(i-j),'DerPrice'=DerPrice[i,j],\

> 'f(S)'=f(S*Up^j*Do^(i-j)),\

> 'Xs'=(-DerPrice[i+1,j]+DerPrice[i+1,j+1])\

> /(S*Up^j*Do^(i-j)*(Up-Do)),\

> 'Xb'=-(Do*DerPrice[i+1,j+1]-DerPrice[i+1,j]*Up)\

> /((Up-Do))*exp(r[f]*T/N)];

> od;j:='j':i:='i':

[Maple Math]

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


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

We shall now proceed with the calculation of the value of an American option. The reader probably expects, given the examples above, the methods by which this will be done.

13.4.4 American Options

Because of the possibility of early exercise, there is no analytical solution for the value of an American put option. The nonexistence of an analytical solution follows from the fact that in order to value this option, one needs to know when it is optimal to exercise it. On the other hand, in order to know if it is optimal to exercise the option one needs to know its value. This creates a vicious circle that cannot be overcome analytically. The value of an American option for which early exercise is not optimal is equal to the value of an otherwise identical European option. Such is the case, as we have seen in Chapter 12, for an American call option on a stock that pays no dividends. Hence, if it is not possible to prove that the early exercise is not optimal we have to resort to numerical solutions.

The previous section and Chapter 12, within the context of the binomial model, demonstrated that early exercise of an American put might be optimal. Those descriptions pointed to the method of identifying, within the context of the binomial model, a numerical solution for the value of American options lacking an analytical solution. The vicious circle, mentioned above, can be overcome within the binomial model framework, again by recursive valuation. Starting from the maturity time and going backward, the option value, if the option is not exercised, is calculated at each possible state of nature and compared to its value if exercised. The ''true'' value of the option at each node is the maximum of these two values. Hence, when the recursion continues, backward, it takes into account the additional value due to the possibility of early exercise.

Calculating the price of an American option, we transverse back from the maturity time [Maple Math] to time [Maple Math] , and so on. At each time we evaluate whether or not it is optimal to exercise the option, given the time and the realized state. Since the value of the option at maturity is known, we essentially can apply the pricing-by-arbitrage arguments of the one-period model to value the option at each of the coordinates ( [Maple Math] ) for [Maple Math] ,..., [Maple Math] . After all, looking ahead from a coordinate ( [Maple Math] ), for some [Maple Math] , one sees exactly the same situation as in a one-period binomial model. Therefore, at that time, we can compare the value of the option if not exercised to its value if exercised. We are not sure which of the ( [Maple Math] ),...,( [Maple Math] ) states will be realized at time [Maple Math] . Hence we calculate the value of the option at each possible state. Continuing in the same manner we can find the value of the option at time zero.

Let us see how this works. We reassign the following parameters and redefine
[Maple Math] to be the payoff from a put option with an exercise price of $80.

> i:='i';j:='j';T:=1;N:=6;r[f]:=.1;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> Up:=evalf(exp(1/5*sqrt(T/N)));Do:=1/Up;S:=100;

[Maple Math]

[Maple Math]

[Maple Math]

> qu:=(exp(r[f]/N)-Do)/(Up-Do);

[Maple Math]

> f:=S->max(80-S,0);

[Maple Math]

Since we have to take into account the possibility of early exercise it is not possible to value the option via the stochastic discount factor approach as we did for a European option. We will have to do it recursively step-by-step as explained in Section (13.4.3). Let us assign the value of the put option at maturity to [Maple Math] , j =0,...,6. This value, needless to say, coincides with the value of a European option at maturity.

> i:='6':j:='j':

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=f(S*Up^j*Do^(i-j));

> od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]


We then go a step backward and again consider the value of the option if it is held without being exercised. As we have seen before, at a few states in time (nodes), it was profitable to exercise the option. At these nodes the payoff from exercising the option is larger than the value if exercised. The possibility of early exercise does not influence the value of the option at maturity. Thus for both American and European options the value at maturity is the payoff from the option.

Having calculated, as above, the value of the option at time 6 we can calculate its value at each node at time 5 if not exercised. This amounts to calculating the discounted expected value of the option payoff at each node. The next step is to calculate the value of the option if exercised at this point, i.e.,
[Maple Math] , for j=0,..,5. The value of the option at each node (i,j) is the larger of the two values calculated. Hence, at each node, we should check if it is optimal to exercise the option and value the option it by

[Maple Math] ,

(13.23)

where

[Maple Math] .

Calculating the value at each node based on equation (13.23) affects the value of the option at all the nodes prior in time to this node, and so alters the value of the option at time zero. It also follows that a very small change in the code shown above for a European option will suffice to value an American option. This is exemplified below where the value of the American option is calculated by a "do-loop" within a "do-loop".

> i:='i';j:='j';

[Maple Math]

[Maple Math]

> for i from 5 to 0 by -1 do;

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=max(exp(-r[f]*T/N)*\

> (qu*DerPrice[i+1,j+1]+(1-qu)*DerPrice[i+1,j]),f(S*Up^j*Do^(i-j)));

> od;

> od;

> DerPrice[0,0];

[Maple Math]

> i:='i';j:='j';

[Maple Math]

[Maple Math]

The comparison of this value to the counterpart European option below reveals that the European option is cheaper.

> 'sum(d(N,j)*f(S*Up^j*Do^(N-j)),j=0..N)'\

> =sum(d(N,j)*f(S*Up^j*Do^(N-j)),'j'=0..N);

[Maple Math]

This confirms that the possibility of early exercise increases the value of an American option option relative to its European equivalent.

To gain a better understanding and to visualize the impact of early exercise, we repeat the above calculations step-by-step. In addition we would like to keep a record of the coordinates at which it was optimal to excise the option prior to maturity. We define [Maple Math] as an object where we keep these coordinates. We will add another line to the code above that will append the coordinate ( [Maple Math] ) to this object if it was optimal to exercise the option there, that is, if ( [Maple Math] ) satisfies the inequality in (13.24).

[Maple Math]

(13.24)

We initialize [Maple Math] to be the empty set, unassign the values of [Maple Math] and [Maple Math] , and then run the modified code.

> OptExer:={};

[Maple Math]

> i:='i':j:='j';

[Maple Math]

> for j from 5 to 0 by -1 do;

> for i from j to 0 by -1 do;

> DerPrice[j,i]:=max(exp(-r[f]*T/N)*\

> (qu*DerPrice[j+1,i+1]+(1-qu)*DerPrice[j+1,i]),f(S*Up^i*Do^(j-i)));

> if exp(-r[f]*T/N)*(qu*DerPrice[j+1,i+1]+(1-qu)*DerPrice[j+1,i])\

> <f(S*Up^i*Do^(j-i)) then OptExer:=[[j,i],op(OptExer)] fi;

> od;

> od;

> DerPrice[0,0];

[Maple Math]

The coordinates at which it was optimal to exercise the option are now contained in [Maple Math] .

> OptExer;

[Maple Math]

The following command superimposes a blue box on each node of the binomial tree at which it is optimal to exercise the option. This is displayed in Figure 13.5.

> BinTree(6,OptExer);

[Maple Plot]

Figure 13.5: A Binomial Tree with a Box Superimposed on Nodes Where Early Exercise Is Optimal

Let us rerun this same valuation again, but for a higher exercise price so that it will make it optimal to exercise prior to maturity more frequently. We thus reassign the variables and change the payoff function f to have an exercise price of $110.

> j:='j':i:=6;

[Maple Math]

> f:=S->max(110-S,0);

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=f(S*Up^j*Do^(i-j));

> od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> OptExer:={};

[Maple Math]

> i:='i':j:='j':

> for j from 5 to 0 by -1 do;

> for i from j to 0 by -1 do;

> DerPrice[j,i]:=max(exp(-r[f]*T/N)*\

> (qu*DerPrice[j+1,i+1]+(1-qu)*DerPrice[j+1,i]),f(S*Up^i*Do^(j-i)));

> if exp(-r[f]*T/N)*(qu*DerPrice[j+1,i+1]+(1-qu)*DerPrice[j+1,i])\

> <f(S*Up^i*Do^(j-i)) then OptExer:=[[j,i],op(OptExer)] fi;

> od;

> od;

The price of such an option will be

> DerPrice[0,0];

[Maple Math]

and the nodes at which it is optimal to exercise this option are given below.

> OptExer;

[Maple Math]

The next command superimposes the boxes on the nodes in which the option should be exercised. Figure 13.6 in the hard copy displays the output.

> BinTree(6,OptExer);

[Maple Plot]

Figure 13.6: A Binomial Tree with a Box Superimposed on Nodes Where Early Exercise Is Optimal for a Binary Option

We can utilize the template presented above to calculate the prices of different types of American options. Suppose we have an option that pays $10 if the price of the stock falls below $90, and zero otherwise. This is an example of a binary options introduced in Section 4.5. In Chapter 4 we only approximated the value of such a European option by replicating its payoff using plain vanilla puts and calls. Since the option is American and the payoff is $10 or nothing, if the price of the stock falls below $90 it should be clear that it is optimal to excise immediately. To value such an option we need only to change the payoff function and define it as below.

> f:=S->piecewise(S<90,10);

[Maple Math]

The payoff at maturity is displayed in the on-line version of the book in the figure below, but is omitted from the hard copy.

> plot(f(s),s=0..150,thickness=3);

[Maple Plot]

We keep the parameters as above and change only the form of [Maple Math] . The valuation code is rerun below.

> j:='j':i:=6;

[Maple Math]

> for j from i to 0 by -1 do;

> DerPrice[i,j]:=f(S*Up^j*Do^(i-j));

> od;

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

[Maple Math]

> OptExer:={};

[Maple Math]

> i:='i':j:='j':

> for j from 5 to 0 by -1 do;

> for i from j to 0 by -1 do;

> DerPrice[j,i]:=max(exp(-r[f]*T/N)*\

> (qu*DerPrice[j+1,i+1]+(1-qu)*DerPrice[j+1,i]),f(S*Up^i*Do^(j-i)));

> if exp(-r[f]*T/N)*(qu*DerPrice[j+1,i+1]+(1-qu)*DerPrice[j+1,i])\

> <f(S*Up^i*Do^(j-i)) then OptExer:=[[j,i],op(OptExer)] fi;

> od;

> od;

The price of such an option is therefore

> DerPrice[0,0];

[Maple Math]

The nodes at which it is optimal to exercise the option are presented and the binomial tree with these nodes superimposed is displayed in Figure 13.7.

> OptExer;

[Maple Math]

> BinTree(6,OptExer);

[Maple Plot]

Figure 13.7: A Binomial Tree with a Box Superimposed on Nodes Where Early Exercise Is Optimal

Footnotes

Footnote 10

As might be suspected, the [Maple Math] under the square root sign is indeed [Maple Math] and the meaning of the [Maple Math] will be uncovered soon.

Back to Text

Footnote 11

The spreadsheet uses some global variables that are defined by the Maple commands. However, the reader may change the template presented above and modify the spreadsheet to summarize the new results.

Back to Text

Back to table of contents.