NAG Library Function Document
nag_binary_con_price (s30cac)
1 Purpose
nag_binary_con_price (s30cac) computes the price of a binary or digital cash-or-nothing option.
2 Specification
#include <nag.h> |
#include <nags.h> |
void |
nag_binary_con_price (Nag_OrderType order,
Nag_CallPut option,
Integer m,
Integer n,
const double x[],
double s,
double k,
const double t[],
double sigma,
double r,
double q,
double p[],
NagError *fail) |
|
3 Description
nag_binary_con_price (s30cac) computes the price of a binary or digital cash-or-nothing option which pays a fixed amount,
, at expiration if the option is in-the-money (see
Section 2.4 in the s Chapter Introduction). For a strike price,
, underlying asset price,
, and time to expiry,
, the payoff is therefore
, if
for a call or
for a put. Nothing is paid out when this condition is not met.
The price of a call with volatility,
, risk-free interest rate,
, and annualised dividend yield,
, is
and for a put,
where
is the cumulative Normal distribution function,
and
The option price is computed for each strike price in a set , , and for each expiry time in a set , .
4 References
Reiner E and Rubinstein M (1991) Unscrambling the binary code Risk 4
5 Arguments
- 1:
order – Nag_OrderTypeInput
-
On entry: the
order argument specifies the two-dimensional storage scheme being used, i.e., row-major ordering or column-major ordering. C language defined storage is specified by
. See
Section 3.2.1.3 in the Essential Introduction for a more detailed explanation of the use of this argument.
Constraint:
or .
- 2:
option – Nag_CallPutInput
On entry: determines whether the option is a call or a put.
- A call; the holder has a right to buy.
- A put; the holder has a right to sell.
Constraint:
or .
- 3:
m – IntegerInput
On entry: the number of strike prices to be used.
Constraint:
.
- 4:
n – IntegerInput
On entry: the number of times to expiry to be used.
Constraint:
.
- 5:
x[m] – const doubleInput
On entry: must contain
, the th strike price, for .
Constraint:
, where , the safe range parameter, for .
- 6:
s – doubleInput
On entry: , the price of the underlying asset.
Constraint:
, where , the safe range parameter.
- 7:
k – doubleInput
On entry: the amount, , to be paid at expiration if the option is in-the-money, i.e., if
when , or if when , for .
Constraint:
.
- 8:
t[n] – const doubleInput
On entry: must contain
, the th time, in years, to expiry, for .
Constraint:
, where , the safe range parameter, for .
- 9:
sigma – doubleInput
On entry: , the volatility of the underlying asset. Note that a rate of 15% should be entered as 0.15.
Constraint:
.
- 10:
r – doubleInput
On entry: , the annual risk-free interest rate, continuously compounded. Note that a rate of 5% should be entered as 0.05.
Constraint:
.
- 11:
q – doubleInput
On entry: , the annual continuous yield rate. Note that a rate of 8% should be entered as 0.08.
Constraint:
.
- 12:
p[] – doubleOutput
Note: where
appears in this document, it refers to the array element
- when ;
- when .
On exit: contains , the option price evaluated for the strike price at expiry for and .
- 13:
fail – NagError *Input/Output
-
The NAG error argument (see
Section 3.6 in the Essential Introduction).
6 Error Indicators and Warnings
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
- NE_BAD_PARAM
-
On entry, argument had an illegal value.
- NE_INT
-
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INTERNAL_ERROR
-
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.
- NE_REAL
-
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: and .
On entry, .
Constraint: .
- NE_REAL_ARRAY
-
On entry, .
Constraint: .
On entry, .
Constraint: and .
7 Accuracy
The accuracy of the output is dependent on the accuracy of the cumulative Normal distribution function,
. This is evaluated using a rational Chebyshev expansion, chosen so that the maximum relative error in the expansion is of the order of the
machine precision (see
nag_cumul_normal (s15abc) and
nag_erfc (s15adc)). An accuracy close to
machine precision can generally be expected.
8 Parallelism and Performance
nag_binary_con_price (s30cac) is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
Please consult the
Users' Note for your implementation for any additional implementation-specific information.
None.
10 Example
This example computes the price of a cash-or-nothing put with a time to expiry of years, a stock price of and a strike price of . The risk-free interest rate is per year and the volatility is per year. If the option is in-the-money at expiration, i.e., if , the payoff is .
10.1 Program Text
Program Text (s30cace.c)
10.2 Program Data
Program Data (s30cace.d)
10.3 Program Results
Program Results (s30cace.r)