European Barrier Options (OTC) 

Use

European barrier buy (call) and sell (put) options are valuated using the Rubinstein Procedure. Four situations can occur:

In addition, a rebate can be paid. This is a fixed amount which is paid based on reaching or not reaching the barrier when the option is not exercised. For an Up & Out option, a fixed amount is paid as soon as the price reaches or exceeds the Up & Out point. For a Down & In, a fixed amount is paid if the price does not reach the in point before the option expires.

Prerequisites/Calculating the Input Parameters

The price calculator for European barrier options has the following parameters:

Features / Valuation

If the expiration date of the option is reached, the internal value of the option (rebate amount) is shown.

For an unexpired option, the option price is calculated as follows:

lograte = log( 1 + opt_domestic_rate / 100).

logforeign = log( 1 + opt_foreign_rate / 100).

yearfrac = opt_days / 365.

dom_disc = exp( lograte * -1 * yearfrac).

for_disc = exp( logforeign * -1 * yearfrac).

adjvola = opt_vola / 100.

volaroot = adjvola * sqrt( yearfrac).

lambda = ( lograte - logforeign + ( adjvola2 / 2)) / adjvola 2) .

eta = -1 for up options

eta = 1 for down options

phi = -1 for puts

phi = 1 for calls

 

N(x) = standard distribution of x

resign = + for positive rebates

+ for negative rebates

 

The prices of the barrier options are consist of 6 summands:

res1:

ex = phi * ( ( log( spot / strike) / volaroot) +

( lambda * volaroot)).

ex2 = ex - ( phi * volaroot).

res1 = phi * spot * for_disc * N(ex) -

phi * strike * dom_disc * N(ex2).

 

res2:

ex = phi * ( ( log( spot / barrier) / volaroot) +

( lambda * volaroot)).

ex2 = ex - ( phi * volaroot).

res2 = phi * spot * for_disc * N(ex) -

phi * strike * dom_disc * N(ex2)

 

res3:

yps = eta * ( ( log( barrier 2 / spot / strike) /

volaroot) + ( lambda * volaroot)).

yps2 = yps - ( eta * volaroot).

res3 = phi * spot * for_disc *

exp( log( barrier / spot) * 2 * lambda) * N(yps) -

phi * strike * dom_disc *

exp( log( barrier / spot) * ( 2 * lambda - 2)) * N(yps2)

 

res4:

yps = eta * ( ( log( barrier / spot /

volaroot) + ( lambda * volaroot)).

yps2 = yps - ( eta * volaroot).

res3 = phi * spot * for_disc *

exp( log( barrier / spot) * 2 * lambda) * N(yps) -

phi * strike * dom_disc *

exp( log( barrier / spot) * ( 2 * lambda - 2)) * N(yps2)

 

res5 (Rebate summand for in options):

ex1 = eta * ( ( log( spot / barrier) /

volaroot) + ( ( lambda - 1) * volaroot)).

yps1 = eta * ( ( log( barrier / spot) /

volaroot) + ( ( lambda - 1) * volaroot)).

if resign = '-'.

res5 = -1 * rebate * dom_disc * ( N(ex1) -

exp( log( barrier / spot) * ( 2 * lambda - 2)) * N(yps1)).

else.

res5 = rebate * dom_disc * ( N(ex1) -

exp( log( barrier / spot) * ( 2 * lambda - 2)) * N(yps1)).

endif.

 

res6 (Rebate summand for out options):

This component is the same as a one-touch option (see the documentation for one-touch options)

 

Runtime > 0

24 constellations have to be differentiated between for this valuation:

In - Option

Up - Option

Put (Up&In Put)

Spot < Barrier

Strike >= Barrier

Price = res1 - res2 + res4 + res5

Strike < Barrier

Price = res3 + res5

Spot > Barrier

Standard option, as already knocked

Call (Up&In Call)

Spot < Barrier

Strike >= Barrier

Price = res1 + res5

Strike < Barrier

Price = res2 - res3 + res4 + res5

Spot > Barrier

Standard option, as already knocked

Down - Option

Put (Down&In Put)

Spot > Barrier

Strike >= Barrier

Price = res2 - res3 + res4 + res5

Strike < Barrier

Price = res1 + res5

Spot < Barrier

Standard option, as already knocked

Call (Down&In Call)

Spot > Barrier

Strike >= Barrier

Price = res3 + res5

Strike < Barrier

Price = res1 - res2 + res4 + res5

Spot < Barrier

Standard option, as already knocked

Out - Option

Up - Option

Put (Up&Out Put)

Spot < Barrier

Strike >= Barrier

Price = res2 - res4 + res6

Strike < Barrier

Price = res1 - res3 + res6

Spot > Barrier

Price = res6

Call (Up&Out Call)

Spot < Barrier

Strike >= Barrier

Price = res6

Strike < Barrier

Price = res1 - res2 + res3 - res4 + res6

Spot > Barrier

Price = res6

Down - Option

Put (Down&Out Put)

Spot > Barrier

Strike >= Barrier

Price = res1 - res2 + res3 - res4 + res6

Strike < Barrier

Price = res6

Spot < Barrier

Price = res6

Call (Down&Out Call)

Spot > Barrier

Strike >= Barrier

Price = res1 - res3 + res6

Strike < Barrier

Price = res2 - res4 + res6

Spot < Barrier

Price = res6