﻿

# c# pdf library github : Get pdf metadata SDK application project winforms azure wpf UWP Wiley%20Advanced%20Modelling%20in%20Finance%20using%20Excel%20and%20VBA18-part589

Binomial Trees
179
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
A
B
C
D
E
F
G
H
Euro Binomial Tree
Share price (S)
100.00
Steps in tree (n)
BS value
9.7258
Exercise price (X)
95.00
9
CRR tree
9.6332
Int rate-cont (r)
8.00%
LR tree
9.7242
Dividend yield - cont (q)
3.00%
steps
BS
CRR
LR
Time now (0, years)
0.0000
16
9.7258
9.7709
9.7253
Time maturity (T, years)
0.5000
32
9.7258
9.6954
9.7256
Option life (τ, years)
0.5000
48
9.7258
9.7367
9.7257
Volatility (σ)
20.00%
64
9.7258
9.7427
9.7257
80
9.7258
9.7382
9.7257
iopt
1
96
9.7258
9.7303
9.7257
112
9.7258
9.7214
9.7257
option type
Call
128
9.7258
9.7199
9.7257
Figure 10.11 Comparison of binomial tree valuation with BS value for different tree types
In adjacent columns G and H, a second user-deﬁned function, BinOptionValue, returns
option values based on binomial trees, given inputs to specify the tree type, the option
type, the number of steps in the tree, etc. For example, the ﬁrst input for the function
imod takes value 1 for a CRR tree or 2 for an LR tree. These binomial tree values are
compared with the Black–Scholes value. For the chosen European call, the LR tree with
48 steps matches the Black–Scholes value very closely, in fact to four decimal places.
The code for the BinOptionValue function is in Module0 of the workbook, along with
other functions developed to make the binomial tree valuation methods more straightfor-
ward to implement. Features of the coding are discussed in section 10.10.
It is also instructive to compare the summary statistics of the share price trees generated
by different methods. Figure 10.12 collects together the ﬁrst and second moments (M1
and M2) for the terminal share price distributions for the three tree types and also the
implied mean and variance (M and V) for each. These summary statistics are for the
nine-step valuation of the European call used throughout this chapter and they have been
given separately in Figures 10.3, 10.5 and 10.9.
BS
JRtree
CRRtree
LR tree
S
T
is lognormal with:
M1
102.5315 102.5311 102.5315 102.5315
M2
10725.08 10724.45 10723.55 10708.48
ln(S
T
) is normal with:
M
4.6202
4.6202
4.6202
4.6209
V
0.0200
0.0199
0.0199
0.0185
Figure 10.12 Comparison of share price summary statistics for different trees versus BS values
It is interesting to note that the JR and CRR trees match the assumed variability in share
price better than does the LR tree, despite the LR tree valuation producing a more precise
option value. Thus centring the share price tree at maturity around the exercise price is
the key modiﬁcation with the LR tree.
Enable VB.NET Users to Read, Write, Edit, Delete and Update PDF Document Metadata
180
10.9 AMERICAN OPTIONS AND THE CRR AMERICAN TREE
Because binomial tree valuation can adapt to include the possibility of exercise at inter-
mediate dates and not just the maturity date, it is an extremely important numerical
method when pricing American options. In the case of puts, it is frequently the case that
the possibility of early exercise increases the value of the put. The sheet CRRTree allows
puts to be valued as European options (no early exercise) and also as American options
(with early exercise permitted). The results can be compared easily in this format.
To demonstrate this, specify the option in the CRRTree sheet to be a put, that is, enter
1 in cell D16. Figure 10.13 shows that with no early exercise the put’s value is 2.40
(cell H15), whereas with early exercise the value rises to 2.54 (cell H17). Even in the
absence of dividends, the early exercise feature has an advantage for puts. Since the
Black–Scholes formula is for European options, it is a benchmark only for the Euro-
pean put.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
A
B
C
D
E
F
G
H
I
J
K
CRR American Binomial Tree
Share price (S)
100.00
Cox, Ross & Rubinstein
Exercise price (X)
95.00
Int rate-cont (r)
8.00%
δ
t
0.0556
erdt
1.0045
Dividend yield - cont (q)
3.00%
ermqdt
1.0028
u
1.0483
Time now (0, years)
0.00
d
0.9540
Time maturity (T, years)
0.50
p
0.5177
Option life (τ, years)
0.50
p*
0.4823
Volatility (σ)
20.00%
Steps in tree (n)
9
CRR Euro Value
2.40
BS value
2.49
iopt
-1
option type
Put
CRR Amer Value
2.54
Figure 10.13 Values for the put with and without early exercise in sheet CRRTree
The European and American put values are obtained from the CRR share price tree,
from which the actual option payoffs are obtained if exercise occurs at any step conditional
on each price level.
47
48
49
50
51
52
53
54
55
56
57
58
A
B
C
D
E
F
G
H
I
J
K
Option Payoff
0
1
2
3
4
5
6
7
8
9
9
0.00
8
0.00
0.00
7
0.00
0.00
0.00
6
0.00
0.00
0.00
0.00
5
0.00
0.00
0.00
0.00
0.00
4
0.00
0.00
0.00
0.00
0.00
0.00
3
0.00
0.00
0.00
0.00
0.00
4.00
8.19
2
0.00
0.00
0.00
0.00
4.00
8.19
12.19
16.00
1
0.00
0.00
0.00
4.00
8.19
12.19
16.00
19.64
23.11
0
0.00
0.00
4.00
8.19
12.19
16.00
19.64
23.11
26.42
29.57
Figure 10.14 Option payoff tree for put in CRRTree sheet
TIFFDocument doc = new TIFFDocument(@"c:\demo1.tif"); // Get Xmp metadata for string. TagCollection collection = doc.GetTagCollection(0); // Get Exif metadata.
VB.NET PDF Annotate Library: Draw, edit PDF annotation, markups in
' Get PDF document. Dim fileInpath As String = "" Dim doc As PDFDocument = New PDFDocument(fileInpath) ' Get all annotations. ' Get PDF document.
Binomial Trees
181
Rows 49 to 58 in Figure 10.14 show these option values. Assuming no early exercise,
the only relevant option values are those for step 9 (in K49:K58). The value for this
European put is obtained (as already described for the European call in section 10.4) by
evaluating the expected put payoff and discounting at the risk-free rate. As already stated,
the put value is 2.40 as shown in cell H15 (in Figure 10.13).
To value the American option, it is necessary to know the value of the put not only if
exercised at step 9, but also the expected value at intermediate stages. From the terminal
payoffs shown in column K of Figure 10.15, we evaluate the expected option values at
step 8, conditional on level, remembering to discount the expectation at the risk-free rate.
We use the CRR probabilities [p D 0.5177 and 1  p D p
Ł
D0.4823] when calculating
the expected value to ensure that the risk-neutral world is preserved. Denoting the option
payoff for state i at step 9 as V
i,9
,the expected payoff in state i  1 at step 8 is evaluated
from the relationship:
V
i1,8
D[pV
i,9
C1  pV
i1,9
]/exprυt
which calculates the expectation and discounts it back to each earlier node. The process
of calculating expected values at nodes and discounting is referred to as ‘stepping back’
through the tree.
61
62
63
64
65
66
67
68
69
70
71
72
A
B
C
D
E
F
G
H
I
J
K
European Option Value
0
1
2
3
4
5
6
7
8
9
9
0.00
8
0.00
0.00
7
0.00
0.00
0.00
6
0.00
0.00
0.00
0.00
5
0.00
0.00
0.00
0.00
0.00
4
0.00
0.00
0.00
0.00
0.00
0.00
3
0.10
0.21
0.44
0.91
1.89
3.93
8.19
2
0.46
0.84
1.53
2.72
4.69
7.74
11.90
16.00
1
1.20
2.01
3.28
5.19
7.89
11.39
15.42
19.34
23.11
0
2.40
3.70
5.56
8.06
11.21
14.88
18.75
22.50
26.11
29.57
Figure 10.15 Put valued as European option in CRRTree sheet
With the option payoffs after nine steps in cells K63:72, this stepping back process is
best accomplished in Excel by copying the formula in cell J72:
=IF(\$A72<=J\$62,(\$G\$11
K71
+\$G\$12
K72)/\$G\$7,“”)
throughout the range of the option value tree, that is the range B63 to J72.
The condition within the IF statement ensures that the formula only produces values in
cells on or below the leading diagonal, thus mirroring the layout used for the share price
tree. The formula within the IF statement evaluates the probability-weighted expected
value of the option payoff at each node, discounted then by the one-step risk-free factor
in cell G7.
The value of the put based on stepping back through the nine-step CRR tree is 2.40
(cell B72), in fact identical to the value we obtained when calculating the discounted
expectation over the terminal payoff distribution. The steps are shown in Figure 10.15.
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Get PDF document. String fileInpath = @""; PDFDocument doc = new PDFDocument(fileInpath); // Get all annotations. Get PDF document.
How to C#: Modify Image Metadata (tag)
VB.NET How-to, VB.NET PDF, VB.NET Word, VB.NET Excel How to C#: Modify Image Metadata (tag). With XImage.Raster, you can get the image tags and modify them rapidly
182
However, for an American option, at each node there is the possibility of exercising
the option. In Figure 10.16, looking at cell J86, the expected put value is 26.42, not the
same as the expected value of 26.11 in cell J72 in Figure 10.15. This is because early
exercise gives a larger payoff (of 26.42 as can be seen in cell J58 of Figure 10.14). So
the cell formula in J86 compares the expected option value (no early exercise) with the
option payoff if it were to be exercised and chooses the maximum. The comparison is
handled with the Excel MAX functions, as follows:
=IF(\$A86<=J\$76,MAX((\$G\$11
K85
+\$G\$12
K86)/\$G\$7,J58),“”)
The formula chooses the maximum of the calculated expected value (as in the Euro-
pean case) and the value from intermediate exercise (given by cell J44). The calculations
showing the repeated operation of this formula are shown in Figure 10.16, the ﬁnal Amer-
ican put value being 2.54 (as displayed in Figure 10.13, cell H17).
75
76
77
78
79
80
81
82
83
84
85
86
A
B
C
D
E
F
G
H
I
J
K
American Option Value
0
1
2
3
4
5
6
7
8
9
9
0.00
8
0.00
0.00
7
0.00
0.00
0.00
6
0.00
0.00
0.00
0.00
5
0.00
0.00
0.00
0.00
0.00
4
0.00
0.00
0.00
0.00
0.00
0.00
3
0.10
0.21
0.44
0.92
1.92
4.00
8.19
2
0.47
0.87
1.59
2.84
4.92
8.19
12.19
16.00
1
1.26
2.11
3.46
5.49
8.39
12.19
16.00
19.64
23.11
0
2.54
3.94
5.95
8.68
12.19
16.00
19.64
23.11
26.42
29.57
Figure 10.16 Put valued as American option in CRRTree sheet
This possibility of early exercise also applies to American calls, though in practice
if the dividend yield on the share is zero, it is never worth exercising the call early.
However, for calls on shares that pay dividends, early exercise can be worthwhile. As
an exercise, try changing the put used in this example into a call, then check out how
large the dividend yield has to be for early exercise to be worthwhile. You will have to
increase the dividend yield substantially before there is a noticeable difference between
the American and European call values.
10.10 USER-DEFINED FUNCTIONS IN Module0 AND Module1
The OPTION1 workbook contains the code for several user-deﬁned functions, which
implement most of the tree-based valuation methods discussed in this chapter. The main
functions to obtain option values using either the CRR or LR binomial trees are in Module0
of the workbook. The most important functions are the BinEuroOptionValue function used
on the CRRTheory sheet and the BinOptionValue function used on the Compare sheet.
In the arrays used to hold the option payoffs in the binomial trees we have allowed
array dimensions to start from 0 (rather then the more usual 1) as the binomial tree time
steps also begin with time period 0. This is done using the statement Option Base 0 at
the top of the VBA module sheet. As an additional reminder, we also rename the module
sheet to Module0.
VB.NET PDF: Get Started with PDF Library
rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET edit PDF metadata, C#.NET VB.NET PDF: Get Started with .NET PDF Library Using VB.
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
Scan image to PDF, tiff and various image formats. Get image information, such as its location, zonal information, metadata, and so on.
Binomial Trees
183
The BinOptionValue function can be used to value European or American options
using either the CRR (imodD1) or LR (imodD2) binomial trees. The code is most easily
understood taking one type of option (a European call say, where ioptD1 and ieaD1)
and one valuation method (say the CRR tree demonstrated in the CRREuro sheet). The
valuation process revolves around the vector array vvec() declared as a variant type
with 10 values, vvec(0) to vvec(9), as ensured by the dimensioning statement ReDim
vvec(nstep).
The terminal option prices in the share price tree are derivedfrom a formula of the form:
max[Su
i
d
ni
 X, 0] i D 0, 1, 2, ..., 9
In the VBA statements this is achieved using a loop:
For i = 0To nstep
vvec(i) = Application.Max(ioptŁ (SŁ (uOi)Ł (dO(nstep - i)) - X), 0)
Next i
The subsequent ﬁve lines of code drive the process of working backwards through the
tree, at each stage discounting the expected option payoff, to calculate the option value:
For j = nstep- 1 To 0 Step - 1
For i = 0 Toj
vvec(i) = (p
Ł
vvec(i + 1) + pstar
Ł
vvec(i)) / erdt
Next i
Next j
There are two important points to note in the VBA code. By replacing redundant values
with new values in the vvec vector as we value the option, we can limit the storage require-
ments to a single vector with only n C 1 elements. The other point is that for American
options (ieaD2) we just need an additional line of code that chooses the maximum of the
European value and the value of immediate exercise.
We describe the hedging parameters in detail in the next chapter, and so limit our
comments here regarding the BinOptionGreeks function. Three of the ﬁve parameters can
be estimated by using an extended binomial tree, while the remaining two parameters
require two separate binomial trees to be built. The function uses the more efﬁcient
LR tree.
The Module1 sheet contains the code for the BSOptionValue function which computes
the Black–Scholes formula. Detailed explanation is given in the following chapter,
section 11.7.
SUMMARY
The binomial tree provides a practical way to model the share price process. The resulting
discrete distribution of terminal prices can be conﬁgured to approximate to the continuous
lognormal distribution assumed in the Black–Scholes analysis.
An option on the share is valued via the tree by calculating the expected option payoff
(weighting each option payoff by its risk-neutral probability) and discounting the expec-
tation at the risk-free rate.
The efﬁciency of the binomial method of option valuation (compared to the Monte
Carlo sampling approach) comes from the fact that many paths in the tree recombine.
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Capture image from whole PDF based on special characteristics. Get image information, such as its location, zonal information, metadata, and so on.
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
You can easily get pages from a PDF file, and then use these pages to create and output a new PDF file. Pages order will be retained.
184
There are several different ways to conﬁgure the binomial tree using different sets of
parameters (e.g. JR tree, CRR tree, LR tree). The JR tree has equiprobable up and down
steps, where size of steps allows for drift and volatility. The CRR tree has related up and
down step sizes reﬂecting volatility but no drift in mean level. To include the drift in
prices, the up and down probabilities differ so that (usually) prices drift up. The LR tree
at maturity is centred on the exercise price and has quite complex probability and step
size parameters.
Experimentation with the different tree types for European options suggests that the
LR tree produces estimates close to the Black–Scholes values using only a small number
of steps.
The binomial tree method is easily adapted to include the early exercise of an option,
thus allowing American options to be valued.
REFERENCES
Cox, J., S. Ross and M. Rubinstein, 1979, “Option Pricing: A Simpliﬁed Approach”, Journal of Financial
Economics, 7, 229–264.
Cox, J. and M. Rubinstein, 1985, Options Markets, Prentice Hall, New Jersey.
Hull, J. C., 2000, Options, Futures and Other Derivatives, Prentice Hall, New Jersey.
Jarrow, R. A. and A. Rudd, 1983, Option Pricing, Richard D. Irwin, Englewood Cliffs, NJ.
Leisen, D. P. J. and M. Reimer, 1996, “Binomial Models for Option Valuation–Examining and Improving
Convergence”, Applied Mathematical Finance, 3, 319–346.
Wilmott, P., S. Howison and J. Dewynne, 1996, The Mathematics of Financial Derivatives, Cambridge
University Press, Cambridge.
C# PDF insert text Library: insert text into PDF content in C#.net
String inputFilePath = Program.RootPath + "\\" 1.pdf"; PDFDocument doc = new PDFDocument(inputFilePath); // get a text manager from the document object
11
The Black– Scholes Formula
Although the binomial tree provides an easier way to understand option pricing, the
analytic Black–Scholes formula remains the central ingredient for European options. Its
strength is in providing the option value through a formula and also in determining the
hedge ratio for the replicating portfolio. In this chapter, the Black–Scholes formula is
derived formally and extended to cover ﬁnancial assets with a continuous dividend, thus
allowing options on currencies and futures to be valued. Hedging parameters can also
be derived, and these allow us to create portfolios that are invariant in value to modest
changes in share price.
Hull’s (2000) textbook on Options is the best reference for most of the topics in this
chapter (Chapter 11 for the derivation and explanation of Black–Scholes, Chapter 12
for the adaptation to include continuous dividends and hence how the Black–Scholes
formula can be modiﬁed to price options on currencies and futures, and Chapter 13 for
the ‘greeks’ and delta hedging). Models illustrating the various Black–Scholes pricing
formulas are in the OPTION2.xls workbook, together with a range of useful valuation
functions.
11.1 THE BLACK–SCHOLES FORMULA
The Black–Scholes pricing formula for a call option was introduced in section 9.2 and
the inclusion of dividends in valuing options was brieﬂy introduced in section 9.7. In
this section, the formula of section 9.2 is extended using Merton’s approach to allow for
continuous dividends.
The argument underlying Merton’s extension compares the overall return from a share
that pays a continuous dividend yield of q per annum with that for an identical share
that pays no dividend. In the risk-neutral world, both shares should provide the same
return overall, that is, dividend and capital growth. If the share with the dividend yield
grows from S initially to S
T
at time T, then the share with no dividends must grow
from S initially to S
T
expqT. Equivalently, in the absence of dividends it grows from
SexpqT initially to S
T
.Thus the same probability distribution for S
T
will apply to a
share with:
(a) initial price S paying a continuous dividend yield q or
(b) initial price SexpqT paying no dividends.
So when valuing a European option on a share paying a continuous dividend yield rate q,
the current share price S is replaced by SexpqT and the option valued as if the share
paid no dividends.
Hence, the Black–Scholes pricing formula for a call option allowing for dividends is:
cD S expqTNd
1
 XexprTNd
2
186
where q is the continuous dividend rate and Nd the cumulative standard normal
probability distribution function with:
d
1
D[lnS/X C r  q C 0.5
2
T]/
p
T
d
2
D[lnS/X C r  q  0.5
2
T]/
p
T
Interpreting the terms in the Black–Scholes formula, it helps to think of the call in the
form of the replicating portfolio, c D hS  B. The multiplier of S in the ﬁrst term of the
formula, the ‘hedge ratio’, is given by expqTNd
1
. The second term of the formula
consists of the present value of the exercise price, multiplied by Nd
2
. Hence, Nd
2
is
interpreted as the probability that the call will be exercised in the risk-neutral world.
Using the put–call parity relationship, the Black–Scholes pricing formula for a put
option allowing for dividends can be shown to be:
pD SexpqTNd
1
C XexprTNd
2
This can be written in the form:
pD [SexpqTNd
1
 XexprTNd
2
]
which apart from the initial minus sign and the minus signs in the cumulative normal
functions is the same as the expression for a call.
11.2 BLACK–SCHOLES FORMULA IN THE SPREADSHEET
Figure 11.1 contains the details of the call used as an example throughout the previous
chapter, together with the calculations required to evaluate its Black–Scholes value. In
early implementations, various polynomial approximations to the cumulative normal prob-
ability distribution were used. Now, in the current versions of Excel, the NORMSDIST
function takes care of this task. Having evaluated d
1
and d
2
,the corresponding cumula-
tive probabilities Nd
1
and Nd
2
are in cells E11 and E16. Since these quantities are
probabilities, their values lie between 0 and 1.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A
B
C
D
E
F
G
H
Black-Scholes Formula (extended to allow for continuous dividends)
Share price (S)
100.00
Call
Put
Exercise price (X)
95.00
BS value
9.73
2.49
Int rate-cont (r)
8.00%
iopt
1
-1
Dividend yield (q)
3.00%
BSvalue via fn
9.73
2.49
Time now (0, years)
0.0000
via fn
Time maturity (T, years)
0.5000
d
1
0.6102
0.6102
Option life (T, years)
0.5000
N(d
1
)
0.7291
Volatility (σ)
20.00%
r-q+0.5*
σ
^2
0.0700
Exp (-rT)
0.9608
d
2
0.4688
0.4688
Exp (-qT)
0.9851
N(d
2
)
0.6804
Figure 11.1 Black–Scholes valuation of options in the BS sheet
The Black–Scholes Formula
187
The Black–Scholes formula in cell E5 is:
=B4
B16E11
B5
B15E16
where the two discounting factors in cells B15 and B16 and the cumulative normals in
cells E11 and E16 provide intermediate calculation stages. The call value in cell E5 is
9.73. The Black–Scholes value has also been calculated in cell E8 via the user-deﬁned
function, BSOptionValue, whose code is described in section 11.7.
As discussed in the previous section, the hedge ratio is given by the product of
expqT and Nd
1
. Here the hedge ratio has value 0.718 (that is 0.9851
Ł
0.7291). The
risk-neutral probability that the option will be exercised is Nd
2
, which has value 0.680.
For a put on the same share, the Black–Scholes formula in cell H5 is:
=B4
B16(E11
1)B5
B15(E16
1)
Whereas the call formula has Nd
1
in the ﬁrst term, the put has Nd
1
D Nd
1
 1
because of the symmetry of the normal probability distribution. Hence the E11 term for
the call is replaced by (E11  1) for the put. Similar remarks apply to the change in
the second term. The put value in cell H5 is 2.49. Once again, the Black–Scholes value
has been calculated in cell H8 using the same user-deﬁned function BSOptionValue as
previously used for the call. The function has the important parameter ‘iopt’ which takes
value 1 for a call, 1 for a put, thus providing one general function in place of two
separate ones for call and put respectively. As we have seen, the algebraic expressions
for put and call are similar, except for several minus signs.
It is of interest to ‘what-if’ on details of the underlying share and the option to inves-
tigate the effect on the option value. In particular, it will be found that the option value
is very sensitive to changes in the volatility of the share. This sensitivity analysis can be
implemented easily with one or more Data Tables (as outlined in section 2.7).
11.3 OPTIONS ON CURRENCIES AND COMMODITIES
So far our discussion of option valuation has concentratedon options on equities. However,
the Black–Scholes framework with continuously-paid dividends also allows options on
foreign currencies and commodity futures contracts to be valued. As we have seen, the
Black–Scholes call formula for a share with continuous dividend rate q is:
cD S expqTNd
1
 XexprTNd
2
Acurrency can be treated in the same way as a stock that pays a continuous dividend, with
the foreign interest rate R replacing the continuous dividend yield q in the Black–Scholes
formula. The domestic interest rate is equivalent to the risk-free rate r. Hence the value
of the call on a currency with foreign interest rate R is:
cD SexpRTNd
1
 X exprTNd
2
This is sometimes known as the Garman–Kohlhagen formula (Garman and Kohlhagen,
1983). Figure 11.2 shows an example in the Currency sheet of valuing a call on a currency
with foreign interest rate 4%. The call value is 0.0044 (in cell E11). It has been calculated
using the BSOptionValue user-deﬁned function with appropriate inputs.