for the value of a European put or call option, or an American call option with zero dividend . In equation (1) is time, is the stock price, is the exercise price, is the risk free interest rate, is the continuous dividend, and is the stock volatility. The parameter , and may be either constant, or functions of time. In the latter case their average instantaneous values over the remaining life of the option should be provided to nag_pde_bs_1d_analytic (d03ndc). An auxiliary function nag_pde_bs_1d_means (d03nec) is available to compute such averages from values at a set of discrete times. Equation (1) is subject to different boundary conditions depending on the type of option. For a call option the boundary condition is
where is the maturity time of the option. For a put option the equation (1) is subject to
nag_pde_bs_1d_analytic (d03ndc) also returns values of the Greeks
nag_bsm_greeks (s30abc) also computes the European option price given by the Black–Scholes–Merton formula together with a more comprehensive set of sensitivities (Greeks).
Further details of the analytic solution returned are given in Section 9.1.
Hull J (1989) Options, Futures and Other Derivative Securities Prentice–Hall
Wilmott P, Howison S and Dewynne J (1995) The Mathematics of Financial Derivatives Cambridge University Press
kopt – Nag_OptionTypeInput
On entry: specifies the kind of option to be valued:
A European call option.
An American call option.
A European put option.
, or ;
if , .
x – doubleInput
On entry: the exercise price .
s – doubleInput
On entry: the stock price at which the option value and the Greeks should be evaluated.
t – doubleInput
On entry: the time at which the option value and the Greeks should be evaluated.
tmat – doubleInput
On entry: the maturity time of the option.
tdpar – const Nag_BooleanInput
On entry: specifies whether or not various arguments are time-dependent. More precisely, is time-dependent if and constant otherwise. Similarly, specifies whether is time-dependent and specifies whether is time-dependent.
r – const doubleInput
Note: the dimension, dim, of the array r
must be at least
On entry: if then must contain the constant value of . The remaining elements need not be set.
If then must contain the value of at time t and must contain its average instantaneous value over the remaining life of the option:
On exit: the value of the option at the stock price s and time t.
theta – double *Output
delta – double *Output
gamma – double *Output
lambda – double *Output
rho – double *Output
On exit: the values of various Greeks at the stock price s and time t, as follows:
fail – NagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).
6 Error Indicators and Warnings
Dynamic memory allocation failed.
On entry, argument had an illegal value.
On entry, is not equal to with American call option.
On entry, and .
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.
On entry, .
On entry, .
On entry, .
On entry, and .
Given accurate values of r, q and sigma no further approximations are made in the evaluation of the Black–Scholes analytic formulae, and the results should therefore be within machine accuracy. The values of r, q and sigma returned from nag_pde_bs_1d_means (d03nec) are exact for polynomials of degree up to .
8 Parallelism and Performance
9 Further Comments
9.1 Algorithmic Details
The Black–Scholes analytic formulae are used to compute the solution. For a European call option these are as follows:
is the cumulative Normal distribution function and is its derivative
The functions , , and are average values of , and over the time to maturity:
The Greeks are then calculated as follows:
Note: that is obtained from substitution of other Greeks in the Black–Scholes partial differential equation, rather than differentiation of . The values of , and appearing in its definition are the instantaneous values, not the averages. Note also that both the first-order average and the second-order average appear in the expression for . This results from the fact that is the derivative of with respect to , not .
For a European put option the equivalent equations are:
The analytic solution for an American call option with is identical to that for a European call, since early exercise is never optimal in this case. For all other cases no analytic solution is known.
This example solves the Black–Scholes equation for valuation of a -month American call option on a non-dividend-paying stock with an exercise price of $50. The risk-free interest rate is 10% per annum, and the stock volatility is 40% per annum.
The option is valued at a range of times and stock prices.