Barrier options are derivatives where the payoff depends on whether the asset price reaches a given barrier level,B.Knockout optionsbecome worthless (cease to exist) if the asset price reaches the barrier,whereasknockin optionscome into existence when the asset price hits the barrier. We will consider the following single asset barrier options:
. Down and out call: A knockout vanilla call option,value cdo(S,B,E,),which ceases to exist when the asset price reaches or goes below the barrier level.
. Up and out call: A knockout vanilla call option,valuecuo(S,B,E,),which ceases to exist when the asset price reaches,or goes above the barrier level.
. Down and in call: A knockin vanilla call option,valuecdi(S,B,E,),which comes into existence when the asset prices reaches or goes below the barrier level.
. Up and in call: A knockin vanilla call option,valuecui(S,B,E,),which comes into existence when the asset price reaches or goes above the barrier level.
Since the following expressions must be true:
cðS;E; Þ ¼cuoðS;B;E; Þ þcuiðS;B;E; Þ ð9:62Þ cðS;E; Þ ¼cdoðS;B;E; Þ þcdiðS;B;E; Þ ð9:63Þ we need to only derive expressions for both the knockout options,and then use the above equations to calculate the value of the corresponding knockin options.
The notation that we will use is as follows:Eis the strike price,Sis the current value of the asset,Bthe barrier level,the symboltrepresents the current time,Trepresents the time at which the option matures and ¼Tt,the duration of the option. The symbol s,with constrainttsT,is any intermediate time during which the option is alive.
9.4.2 Down and out call
If we consider Brownian motion (with zero drift) XsN(0,(st)2), tsT which starts atXt¼0 and,after time ¼Tt,ends at the pointXT¼Xthen (e.g.
Freedman,1983) the probability density function for this motion not to exceed the valueX¼b(whereb>0) during time is given by:
fðb Xsmax;XÞ ¼ ffiffiffi2 r
exp 2bðXbÞ 2
exp X2 22
ð9:64Þ where for convenience we have used ¼(2bX)=33=2,and Xsmax¼ max (Xs,tsT).
SinceXs is Brownian motion without drift,and volatilitythenXsis identical Brownian motion. Therefore by substituting X! X,and b! b in the above equation we obtain:
fðbXsmin;XÞ ¼ ffiffiffi2 r
exp 2bðXbÞ 2
exp X2 22
ð9:65Þ 110 Pricing Assets
//SYS21///INTEGRAS/ELS/PAGINATION/ELSEVIER UK/CMF/3B2/FINALS_21-11-03/CH009.3D–111– [87–115/29]
21.11.2003 3:30PM
where we have used Xsmin¼min (Xs,tsT). Equation 9.65 is the probability density function ofXs staying above the valueX¼b,where b<0. These results can be generalized to include drift (e.g. Musiela and Rutkowski,1998,p. 212),so that XsN((r2=2)(st),(st)),for tsT. We now have the following results:
fðb Xsmax;XÞ ¼ ffiffiffi2 r
exp 2bðXbÞ 2
exp ðX ðr2=2ÞÞ2 22
ð9:66Þ
fðbXsmin;XÞ ¼ ffiffiffi2 r
exp 2bðXbÞ 2
exp ðX ðr2=2ÞÞ2 22
ð9:67Þ A European down and out barrier option with maturity and a barrier at X¼B will cease to exist (become worthless) if at any time XsB,fortsT.
The probability density function that the barrier option will continue to exist at time T if the end point is X is therefore:
fðX >BÞ ¼ ffiffiffi2 r Z b¼x
b¼logðB=SÞ
exp 2bðXbÞ 2
exp X ðr2=2Þ2
22
!
db ð9:68Þ
or
fðX >BÞ ¼ ffiffiffi2 r
exp X ðr2=2Þ2
22
!
Z b¼X
b¼logðB=SÞ
exp 2bðXbÞ 2
db ð9:69Þ
where we have integrated over all possible values ofb(i.e.B<b<X) that keep the option alive. Recalling that:
Z b¼X
b¼logðB=SÞ
exp 2bðXbÞ 2
db ¼ Z b¼X
b¼logðB=SÞ
ðX2bÞ
33=2 exp 2bðXbÞ 2
db
and noting that:
@
@bexp 2bðXbÞ 2
¼2ðX2bÞ
2 exp 2bðXbÞ 2
we have:
Z b¼X b¼logðB=SÞ
2ðX2bÞ
2 exp 2bðXbÞ 2
db¼ exp 2bðXbÞ 2
b¼X
b¼logðB=SÞ
¼ 1exp 2 logðB=SÞðXlogðB=SÞÞ 2
Analytic methods and single asset European options 111
//SYS21///INTEGRAS/ELS/PAGINATION/ELSEVIER UK/CMF/3B2/FINALS_21-11-03/CH009.3D–112– [87–115/29]
21.11.2003 3:30PM
So the value of the option is given by:
fðX>BÞ ¼ 1 pffiffiffi ffiffiffiffiffiffi
p2exp X ðr2=2Þ2
22
!
1exp 2 logðB=SÞðXlogðB=SÞÞ 2
This integral is evaluated in Appendix G.1; here we merely state the result.
Down and out call option cdo¼S N1ðd1Þ N1ðd4Þ B
S
2r=2þ1!
EexpðrÞ N1ðd2Þ N1ðd3Þ B S
2r=21!
ð9:70Þ where S is the current asset value,E the strike price, B the barrier level, the volatility,rthe riskless interest rate, the duration of the option,and:
d1¼logðS=EÞ þ ðrþ2=2Þ ffiffiffi
p ; d2¼logðS=EÞ þ ðr2=2Þ ffiffiffi
p ;
d3¼logðB2=SEÞ þ ðr2=2ÞÞ
pffiffiffi ; and d4¼logðB2=ESÞ þ ðrþ2=2Þ pffiffiffi
In Code excerpt 9.7 below we provide the functionbs_opt_barrier_downout_
call which uses Equation 9.70 to price a down and out European call option.
This routine will be used in Sections 10.6.3 and 10.6.6 to measure the accuracy achieved by using various finite-difference grid techniques to solve the Black–Scholes equation.
void bs_opt_barrier_downout_call(double *value, double barrier_level, double s0, double x, double sigma, double t, double r, Integer *iflag) {
/* Input parameters:
barrier_level — the level of the barrier
s0 — the current price of the underlying asset
x — the strike price
sigma — the volatility
t — the time to maturity
r — the interest rate
Output parameters:
value — the value of the option iflag — an error indicator
*/
double one¼1.0,two¼2.0,zero¼0.0;
double eps,temp,temp1,temp2,a,b,d1,d2,d3,d4,d5,d6,d7,d8;
double fac;
112 Pricing Assets
//SYS21///INTEGRAS/ELS/PAGINATION/ELSEVIER UK/CMF/3B2/FINALS_21-11-03/CH009.3D–113– [87–115/29]
21.11.2003 3:30PM
eps¼X02AJC;
if(x < eps) {/* then strike price (X) is too small */
printf (‘‘ERROR X is too smallnn’’);
return;
}
if (sigma < eps){/* then volatility (sigma) is too small */
printf (‘‘ERROR sigma is too smallnn’’);
return;
}
if (t < eps){/* then time to expiry (t) is too small */
*ifail¼3;
printf (‘‘ERROR option maturity is too smallnn ’’);
return;
}
if (barrier_level¼¼0){printf (‘‘ERROR barrier must be > zeronn’’);
fac¼sigma*sqrt(t);
temp1¼ oneþ(two*r/(sigma*sigma));
temp2¼barrier_level/s0;
a¼pow(temp2,temp1);
temp1¼oneþ(two*r/(sigma*sigma));
b¼pow(temp2,temp1);
if (x > barrier_level){
d1¼(log(s0/x)þ(rþ0.5*sigma*sigma)*t)/fac;
d2¼(log(s0/x)þ(r0.5*sigma*sigma)*t)/fac;
temp¼(s0*x)/(barrier_level*barrier_level);
d7¼(log(temp)(r0.5*sigma*sigma)*t)/fac;
d8¼(log(temp)(rþ0.5*sigma*sigma)*t)/fac;
temp1¼s0*(s15abc(d1)b*(ones15abc(d8)));
temp2¼x*exp(r*t)*(s15abc(d2)a*(ones15abc(d7)));
*value¼temp1temp2;
}
else{/* x <¼barrier_level */
d3¼(log(s0/barrier_level)þ(r0.5*sigma*sigma)*t)/fac;
d6¼(log(s0/barrier_level)(r0.5*sigma*sigma)*t)/fac;
d4¼(log(s0/barrier_level)þ(rþ0.5*sigma*sigma)*t)/fac;
d5¼(log(s0/barrier_level)(rþ0.5*sigma*sigma)*t)/fac;
temp1¼s0*(s15abc(d3)b*(ones15abc(d6)));
temp2¼x*exp(r*t)*(s15abc(d4)a*(ones15abc(d5)));
*value¼temp1temp2;
} return;
}
Code excerpt 9.7 Function to compute the value for European down and out call options
9.4.3 Up and out call
Here we will obtain an expression for an up and outEuropean call option in a similar manner to that used in Section 9.3.5 for the down and out European call option. A European up and out barrier option with maturityand a barrier atX ¼Bwill cease to exist (become worthless) if at any timeXs B,fortsT. The probability density function that the barrier option will continue to exist at timeT if the end point isX is therefore:
fðX <BÞ ¼ ffiffiffi2
r Z B¼SexpðbÞ
b¼X
exp 2bðXbÞ 2t
exp X ðr2=2Þ2
22
!
db ð9:71Þ
Analytic methods and single asset European options 113
//SYS21///INTEGRAS/ELS/PAGINATION/ELSEVIER UK/CMF/3B2/FINALS_21-11-03/CH009.3D–114– [87–115/29]
21.11.2003 3:30PM
or
fðX <BÞ ¼ ffiffiffi2 r
exp X ðr2=2Þ2
22
!
Z b¼logðB=SÞ b¼X
exp 2bðXbÞ 2
db ð9:72Þ
where as in Section 9.3.5 we have used ¼(2bX)/33/2 and have integrated overall possible values ofb(i.e.B>b>X) that keep the option alive. Recalling that:
Z b¼logðB=SÞ b¼X
exp 2bðXbÞ 2
db¼
Z b¼logðB=SÞ b¼X
ð2bXÞ
33=2 exp 2bðXbÞ 2
db
and noting:
@
@bexp 2bðXbÞ 2
¼2ðX2bÞ
2 exp 2bðXbÞ 2
ð9:73Þ we have:
Z b¼logðB=SÞ b¼X
2ð2bXÞ
2 exp 2bðXbÞ 2
db¼ exp 2bðXbÞ 2
b¼logðB=SÞ
b¼X
¼ 1exp 2 logðB=SÞðXlogðB=SÞÞ 2
Therefore:
fðX <BÞ ¼ 1 pffiffiffi ffiffiffiffiffiffi
p2 ffiffiffi2 r
exp X ðr2=2Þ2
22
!
1exp 2 logðB=SÞðXlogðB=SÞÞ 2
ð9:74Þ We will now derive the formula for an up and out call option whenE<B. In fact if E>B then the option is worthless,since at the current time t the call option’s payout,max (StE,0)¼0,and ifSt>Ethen the option will be knocked out.
cuo¼expðrÞ pffiffiffi ffiffiffiffiffiffi p2
Z 1 X¼logðE=SÞ
SexpðXÞ E
f gfðX<BÞdX ð9:75Þ Taking into account the fact the option becomes worthless whenSexp (X)>B,(i.e.
X >log (B=S)) we have:
cuo¼expðrÞ ffiffiffi
p ffiffiffiffiffiffi p2
Z logðB=SÞ X¼logðE=SÞ
SexpðXÞ E
f gfðX<BÞdX ð9:76Þ 114 Pricing Assets
//SYS21///INTEGRAS/ELS/PAGINATION/ELSEVIER UK/CMF/3B2/FINALS_21-11-03/CH009.3D–115– [87–115/29]
21.11.2003 3:30PM
This integral is evaluated in Appendix G.2,and the value of the up and out call optioncuo is:
Up and out call option
cuo¼ fN1ðk7Þ N1ðk8ÞgS B S
2r=2þ1
fexpðrÞN1ðk5Þ N1ðk6ÞgE B S
2r=21
þSfN1ðk2Þ N1ðk1Þg EexpðrÞfN1ðk4Þ N1ðk3Þg ð9:77Þ where S is the current asset value, E the strike price, Bthe barrier level, the volatility,rthe riskless interest rate, the duration of the option,and:
k1¼logðE=SÞ ðrþ2=2ÞÞ ffiffiffi
p ; k2¼logðB=SÞ ðrþ2=2Þ ffiffiffi
p
k3¼logðE=SÞ ðr2=2Þ
pffiffiffi ; k4¼logðB=SÞ ðr2=2Þ pffiffiffi
k5¼logðES=B2Þ ðr2=2ÞÞ
pffiffiffi ; k6¼logðS=BÞ ðr2=2ÞÞ pffiffiffi
k7¼logðES=B2Þ ðrþ2=2Þ
pffiffiffi and k8¼logðS=BÞ ðrþ2=2Þ pffiffiffi
Analytic methods and single asset European options 115
//SYS21///INTEGRAS/ELS/PAGINATION/ELSEVIER UK/CMF/3B2/FINALS_21-11-03/CH010.3D–116– [116–220/105]
21.11.2003 4:27PM