hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_specfun_opt_lookback_fls_greeks (s30bb)

 Contents

    1  Purpose
    2  Syntax
    7  Accuracy
    9  Example

Purpose

nag_specfun_opt_lookback_fls_greeks (s30bb) computes the price of a floating-strike lookback option together with its sensitivities (Greeks).

Syntax

[p, delta, gamma, vega, theta, rho, crho, vanna, charm, speed, colour, zomma, vomma, ifail] = s30bb(calput, sm, s, t, sigma, r, q, 'm', m, 'n', n)
[p, delta, gamma, vega, theta, rho, crho, vanna, charm, speed, colour, zomma, vomma, ifail] = nag_specfun_opt_lookback_fls_greeks(calput, sm, s, t, sigma, r, q, 'm', m, 'n', n)

Description

nag_specfun_opt_lookback_fls_greeks (s30bb) computes the price of a floating-strike lookback call or put option, together with the Greeks or sensitivities, which are the partial derivatives of the option price with respect to certain of the other input parameters. A call option of this type confers the right to buy the underlying asset at the lowest price, Smin, observed during the lifetime of the contract. A put option gives the holder the right to sell the underlying asset at the maximum price, Smax, observed during the lifetime of the contract. Thus, at expiry, the payoff for a call option is S-Smin, and for a put, Smax-S.
For a given minimum value the price of a floating-strike lookback call with underlying asset price, S, and time to expiry, T, is
Pcall = S e-qT Φa1 - Smin e-rT Φa2 + S e-rT   σ2 2b S Smin -2b / σ2 Φ -a1 + 2b σ T -e bT Φ -a1 ,  
where b=r-q0. The volatility, σ, risk-free interest rate, r, and annualised dividend yield, q, are constants.
The corresponding put price is
Pput = Smax e-rT Φ -a2 - S e-qT Φ -a1 + S e-rT   σ2 2b - S Smax -2b / σ2 Φ a1 - 2b σ T + ebT Φ a1 .  
In the above, Φ denotes the cumulative Normal distribution function,
Φx = - x ϕy dy  
where ϕ denotes the standard Normal probability density function
ϕy = 12π exp -y2/2  
and
a1 = ln S / Sm + b + σ2 / 2 T σT a2=a1-σT  
where Sm is taken to be the minimum price attained by the underlying asset, Smin, for a call and the maximum price, Smax, for a put.
The option price Pij=PX=Xi,T=Tj is computed for each minimum or maximum observed price in a set Smin i  or Smax i , i=1,2,,m, and for each expiry time in a set Tj, j=1,2,,n.

References

Goldman B M, Sosin H B and Gatto M A (1979) Path dependent options: buy at the low, sell at the high Journal of Finance 34 1111–1127

Parameters

Compulsory Input Parameters

1:     calput – string (length ≥ 1)
Determines whether the option is a call or a put.
calput='C'
A call; the holder has a right to buy.
calput='P'
A put; the holder has a right to sell.
Constraint: calput='C' or 'P'.
2:     smm – double array
smi must contain Smin i , the ith minimum observed price of the underlying asset when calput='C', or Smax i , the maximum observed price when calput='P', for i=1,2,,m.
Constraints:
  • smiz ​ and ​ smi 1 / z , where z = x02am , the safe range parameter, for i=1,2,,m;
  • if calput='C', smiS, for i=1,2,,m;
  • if calput='P', smiS, for i=1,2,,m.
3:     s – double scalar
S, the price of the underlying asset.
Constraint: sz ​ and ​s1.0/z, where z=x02am, the safe range parameter.
4:     tn – double array
ti must contain Ti, the ith time, in years, to expiry, for i=1,2,,n.
Constraint: tiz, where z = x02am , the safe range parameter, for i=1,2,,n.
5:     sigma – double scalar
σ, the volatility of the underlying asset. Note that a rate of 15% should be entered as 0.15.
Constraint: sigma>0.0.
6:     r – double scalar
The annual risk-free interest rate, r, continuously compounded. Note that a rate of 5% should be entered as 0.05.
Constraint: r0.0 and absr-q>10×eps×maxabsr,1, where eps=x02aj, the machine precision.
7:     q – double scalar
The annual continuous yield rate. Note that a rate of 8% should be entered as 0.08.
Constraint: q0.0 and absr-q>10×eps×maxabsr,1, where eps=x02aj, the machine precision.

Optional Input Parameters

1:     m int64int32nag_int scalar
Default: the dimension of the array sm.
The number of minimum or maximum prices to be used.
Constraint: m1.
2:     n int64int32nag_int scalar
Default: the dimension of the array t.
The number of times to expiry to be used.
Constraint: n1.

Output Parameters

1:     pldpn – double array
ldp=m.
pij contains Pij, the option price evaluated for the minimum or maximum observed price Smin i or Smax i at expiry tj for i=1,2,,m and j=1,2,,n.
2:     deltaldpn – double array
ldp=m.
The leading m×n part of the array delta contains the sensitivity, PS, of the option price to change in the price of the underlying asset.
3:     gammaldpn – double array
ldp=m.
The leading m×n part of the array gamma contains the sensitivity, 2PS2, of delta to change in the price of the underlying asset.
4:     vegaldpn – double array
ldp=m.
vegaij, contains the first-order Greek measuring the sensitivity of the option price Pij to change in the volatility of the underlying asset, i.e., Pij σ , for i=1,2,,m and j=1,2,,n.
5:     thetaldpn – double array
ldp=m.
thetaij, contains the first-order Greek measuring the sensitivity of the option price Pij to change in time, i.e., - Pij T , for i=1,2,,m and j=1,2,,n, where b=r-q.
6:     rholdpn – double array
ldp=m.
rhoij, contains the first-order Greek measuring the sensitivity of the option price Pij to change in the annual risk-free interest rate, i.e., - Pij r , for i=1,2,,m and j=1,2,,n.
7:     crholdpn – double array
ldp=m.
crhoij, contains the first-order Greek measuring the sensitivity of the option price Pij to change in the annual cost of carry rate, i.e., - Pij b , for i=1,2,,m and j=1,2,,n, where b=r-q.
8:     vannaldpn – double array
ldp=m.
vannaij, contains the second-order Greek measuring the sensitivity of the first-order Greek Δij to change in the volatility of the asset price, i.e., - Δij T = - 2 Pij Sσ , for i=1,2,,m and j=1,2,,n.
9:     charmldpn – double array
ldp=m.
charmij, contains the second-order Greek measuring the sensitivity of the first-order Greek Δij to change in the time, i.e., - Δij T = - 2 Pij ST , for i=1,2,,m and j=1,2,,n.
10:   speedldpn – double array
ldp=m.
speedij, contains the third-order Greek measuring the sensitivity of the second-order Greek Γij to change in the price of the underlying asset, i.e., - Γij S = - 3 Pij S3 , for i=1,2,,m and j=1,2,,n.
11:   colourldpn – double array
ldp=m.
colourij, contains the third-order Greek measuring the sensitivity of the second-order Greek Γij to change in the time, i.e., - Γij T = - 3 Pij ST , for i=1,2,,m and j=1,2,,n.
12:   zommaldpn – double array
ldp=m.
zommaij, contains the third-order Greek measuring the sensitivity of the second-order Greek Γij to change in the volatility of the underlying asset, i.e., - Γij σ = - 3 Pij S2σ , for i=1,2,,m and j=1,2,,n.
13:   vommaldpn – double array
ldp=m.
vommaij, contains the second-order Greek measuring the sensitivity of the first-order Greek Δij to change in the volatility of the underlying asset, i.e., - Δij σ = - 2 Pij σ2 , for i=1,2,,m and j=1,2,,n.
14:   ifail int64int32nag_int scalar
ifail=0 unless the function detects an error (see Error Indicators and Warnings).

Error Indicators and Warnings

Errors or warnings detected by the function:
   ifail=1
On entry, calput=_ was an illegal value.
   ifail=2
Constraint: m1.
   ifail=3
Constraint: n1.
   ifail=4
Constraint: _smi_ for all i.
   ifail=5
Constraint: s_ and s_.
   ifail=6
Constraint: ti_ for all i.
   ifail=7
Constraint: sigma>0.0.
   ifail=8
Constraint: r0.0.
   ifail=9
Constraint: q0.0.
   ifail=11
Constraint: ldpm.
   ifail=12
Constraint: r-q>10×eps×maxr,1, where eps is the machine precision.
   ifail=-99
An unexpected error has been triggered by this routine. Please contact NAG.
   ifail=-399
Your licence key may have expired or may not have been installed correctly.
   ifail=-999
Dynamic memory allocation failed.

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_specfun_cdf_normal (s15ab) and nag_specfun_erfc_real (s15ad)). An accuracy close to machine precision can generally be expected.

Further Comments

None.

Example

This example computes the price of a floating-strike lookback put with a time to expiry of 6 months and a stock price of 87. The maximum price observed so far is 100. The risk-free interest rate is 6% per year and the volatility is 30% per year with an annual dividend return of 4%.
function s30bb_example


fprintf('s30bb example results\n\n');

put = 'p';
s = 87;
sigma = 0.3;
r = 0.06;
q = 0.04;
sm = [100.0];
t = [0.5];


[p, delta, gamma, vega, theta, rho, crho, vanna, charm, speed, colour, ...
 zomma, vomma, ifail] = s30bb( ...
                               put, sm , s, t, sigma, r, q);


fprintf('\nFloating-Strike Lookback\n European Put :\n');
fprintf('  Spot       =   %9.4f\n', s);
fprintf('  Volatility =   %9.4f\n', sigma);
fprintf('  Rate       =   %9.4f\n', r);
fprintf('  Dividend   =   %9.4f\n\n', q);

fprintf(' Time to Expiry : %8.4f\n', t(1));
fprintf('%9s%9s%9s%9s%9s%9s%9s%9s\n','S-Max/Min','Price','Delta','Gamma',...
        'Vega','Theta','Rho','CRho');
fprintf('%9.4f%9.4f%9.4f%9.4f%9.4f%9.4f%9.4f%9.4f\n\n', sm(1), p(1,1), ...
        delta(1,1), gamma(1,1), vega(1,1), theta(1,1), rho(1,1), crho(1,1));

fprintf('%27s%9s%9s%9s%9s%9s\n','Vanna','Charm','Speed','Colour',...
        'Zomma','Vomma');
fprintf('%18s%9.4f%9.4f%9.4f%9.4f%9.4f%9.4f\n\n', ' ', vanna(1,1), ...
        charm(1,1), speed(1,1), colour(1,1), zomma(1,1), vomma(1,1));


s30bb example results


Floating-Strike Lookback
 European Put :
  Spot       =     87.0000
  Volatility =      0.3000
  Rate       =      0.0600
  Dividend   =      0.0400

 Time to Expiry :   0.5000
S-Max/Min    Price    Delta    Gamma     Vega    Theta      Rho     CRho
 100.0000  18.3530  -0.3560   0.0391  45.5353 -11.6139 -32.8139 -23.6374

                      Vanna    Charm    Speed   Colour    Zomma    Vomma
                     1.9141  -0.6199   0.0007   0.0221  -0.0648  76.1292


PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015