Razor Financial Principals
Razor Financial Principals
Version 3.2
Razor Financial Principals
Contents
Chapter 1 Introduction ................................................................... 14
Concept Index372
2.1 Introduction
RAZOR employs a Monte Carlo simulation approach to predict credit exposure
distributions at predefined future dates (credit node). Exposure is determined
by sampling results from the exposure distributions based upon the required
confidence interval.
The essence of the Monte Carlo process is the stochastic simulation of market
rates. To produce the future market scenarios, RAZOR uses the form of
parametric simulations that assumes the normality or log normality of future
distributions of the market rates. The future values of the market rates
representing financial markets snapshots are simulated according to a specified
stochastic model.
Currently lognormal mean reverting, normal mean reverting and lognormal are
supported.
The stochastic models may be specifically associated with each individual rate
class, or sub class of rate classes, or simply defaulted globally to the one
model which is applied to all rate classes. In other words the user may override
the default global simulation model with a specific simulation model for
individual asset types or rate classes.
Currently all market rates which must be simulated, must not change state
moving from one day to the next. In other words the term to maturity must be
relative and not an explicit date such as would be the case for specific security
or futures for example. The historical time series of data used to generate the
stochastic parameters for a specific rate must also be constant in state
throughout the time series.
The statistical parameters of these models (e.g. volatilities, level and speed of
mean reversions, correlations, etc.) are either specified explicitly or derived
from historical time series.
The statistical parameters of simulation are pre-calculated using these past
prices of some historical sampling period. To produce realistic future scenarios
outcomes these statistical parameters can be reviewed and adjusted for all or
selected set of market rates.
The same price history can be also used for generation of meaningful
correlation matrices that reflects interdependency among market rates and
should be used to achieve the co-integration of simulated scenarios. It is
assumed that the correlations of market rates historical price changes are
stable.
Thus, the length of the historical sampling periods is important for both the
generation of parametric coefficients of stochastic simulations and for building
of non-degenerated correlation matrices. Ideally the number of price records
of the historical time series should be at least the same as the number of
simulated market rates. However, even this condition can not guarantee
positive semi-definite feature of correlation matrix when some of the price
series may be very close to linear dependency. In these situations some fast
Razor Financial Principals
σ2
d ln( R t ) = (a − )dt + σdWt
2
where dWt is the Wiener process.
The model results in a lognormal distribution of the underlying rates.
Normal Mean-Reverting model
Market rates are simulated according to the following formula:
dR t = (θ − aR t ) dt + σdWt
The use of this model will produce normally distributed samples of possible
simulated market rates outcomes.
Lognormal Mean-Reverting model
The process of market rate simulations is described by:
d (ln R t ) = (θ − a ln( R t )) dt + σdWt
The distribution of the resulting simulated market rates will be lognormal.
The last two models have the attraction that they capture the stylised fact
that some market rates tend to revert to their mean. The use of these models
makes consistent the dispersion of the simulated values with one’s expectation
of “likely” values over a given time horizon: in particular rates should not be
allowed to become negative, or to assume “implausibly” large values.
Let’s assume that we have one year’s history of observations of market rate R
.
R = r− 251 , r− 250 , r− 249 ,..., r−1 , r0
Define:
∆ 1 = ln r− 250 − ln r− 251
∆ 2 = ln r− 249 − ln r− 250
.
.
.
∆ 251 = ln r0 − ln r−1
mean:
1 N −1
∆= ∑ ∆i
N − 1 i =1
variance:
1 N −1
σ2= ∑ (∆ i − ∆ ) 2
N − 2 i =1
Because we consider daily perturbations, on business days only, introduce:
1
δ= Where M = 252
M
The statistical parameters can be derived from the given data as:
σ2
σ = σ2 M = - annualised standard deviation
δ
∆ σ2
a= + - drift
δ 2
∆ 1 = r− 250 − r− 251
∆ 2 = r− 249 − r− 250
.
.
.
∆ 251 = r0 − r−1
mean:
1 N −1
∆= ∑ ∆i
N − 1 i =1
variance:
1 N −1
σ2 = ∑ (∆ i − ∆ ) 2
N − 2 i =1
Let’s consider:
r~1 = r− 251 , r~2 = r− 250 ,..., ~
r251 = r−1 , ~
r252 = r0
Parameters of the model can be estimated using the Method of Maximum
Likelihood which maximises the maximum likelihood estimator as a function of
the probability that the selected set of fitted parameters is “most likely” to be
correct.
The likelihood function in this case is:
L(θ , a, σ , ∆ 1 ...∆ 251 , r1 ...r251 = f (∆ 1 , r1 ) f ( ∆ 2 , r2 )... f ( ∆ 251 , r251 )
where
−
(∆i −(θ −ari )δ )2
1
f (∆i , ri ) = e 2σ 2δ
2πδσ
The maximum of this likelihood estimator coincides with the maximum of its
logarithm, so after maximising function
251
1 251
(∆ i − (θ − ari )δ ) 2
F = ln L = ∑ ln −∑
i =1 2πδσ i =1 2σ 2δ
the desired parameters can be calculated using expressions:
N −1 N −1 2 N −1 N −1
θ=
∑ i =1
∆ i ∑i =1 r~i − ∑i =1 ∆ i r~i ∑i =1 ~
ri
δ (N − 1)∑i =1 r~i 2 −
N −1
(∑ r~ )
N −1
i =1 i
2
N −1 N −1 N −1
a=
∑ i =1
∆ i ∑i =1 ~
ri − ( N − 1)∑i =1 ∆ i r~i
δ (N − 1)∑i =1 ~
N −1 2
ri − (∑ ~r )
N −1
i =1 i
2
and
N −1
∑ (∆ − (θ − a~r )δ )
1
σ= 2
( N − 1)δ
i i
i =1
Proof:
For better readability, we replace all ~
ri by ri .
251
1 251
(∆ i − (θ − ari )δ ) 2
F = ln L = ∑ ln −∑ .
i =1 2πδσ i =1 2σ 2δ
∂F (∆ − (θ − ari )δ )
=∑ i
∂θ σ2
∂F (∆ − (θ − ari )δ )ri
=∑ i
∂a σ2
∂F ∂F
Set and to 0, we obtain:
∂θ ∂a
∂F (∆ − (θ − ari )δ )
=∑ i =0 … (1)
∂θ σ2
∂F (∆ − (θ − ari )δ )ri
=∑ i =0 … (2)
∂a σ2
(N − 1)θδ − ∑ ∆ i
a= sub in (2),
δ ∑ ri
θ=
∑∆ ∑r − ∑∆ r ∑r . 2
δ ((N − 1)∑ r − (∑ r ) )
i i i i i
2 2
i i
θ=
∑ ∆ i + aδ ∑ ri sub in (2),
(N − 1)δ
∑ ∆ i ∑ ri − (N − 1)∑ ∆ i ri .
a=
(
δ ( N − 1)∑ ri 2 − (∑ ri )
2
)
Volatility can be obtained similarly by differentiating with respect to
volatility.
Z1 = ,
σ δ
∆ 2 − ( a − σ2 )δ
2
Z2 = ,
σ δ
M
∆ 251 − ( a − σ2 )δ
2
Z 251 =
σ δ
k = 1,..., K , and l = 1,..., K , and where for each market rate the time series is
represented by {Z i }, i = 1,..., 251 .
The correlation co-efficient υ k ,l between two market rates k and l for the
time series Z k = {Z ik } and Z l = {Z il } is defined by
cov ( Z k , Z l )
υ k ,l = , where
σZ σZ k l
( )
cov Z k , Z l is the covariance defined by
cov(Z k , Z l ) =
1 N −1 k
(
∑ Z i − Z k Z il − Z l , and where
N − 2 i =1
)( )
σ Z is the standard deviation defined by
k
σZ =k
1 N −1 k
∑ Zi − Z k
N − 2 i =1
( ) , and where Z
2
k
is the mean of Z k for k ’th market
rate.
cov ( Z k , Z l )
υ k ,l = , ie
σZ σZ k l
∑(Z )( Z − Z )
N −1
i
k
− Zk i
l l
υ k ,l = i =1
∑(Z ) ∑(Z − Z )
N −1 2 N −1 2
i
k
− Zk i
l l
i =1 i =1
Note that since by definition as the sample size increase, the sample series
{Z i } will approach a N(0,1) distribution, with mean Z of 0, and standard
β1,1 β 2,1 L β K ,1
β1,2 β 2,2 L β K ,2
B=
M M O M
β1, K β 2, K L β K , K
Ref:
“Numerical Recipes in C”, Second Edition.
We know define:
T
β j = β j ,1 , β j ,2 ,K , β j , K
K
V≈ ∑ λ j β j βTj where λ = [ λ1 ,..., λK ] are sorted in ascending order here. To
j = K −n
determine the ‘dominant’ eigenvalues (i.e. to find n ), we calculate the ratio
of convergence or level of representation of the square root matrix calculated
using selected components to the square root matrix derived from all
components. The ratio Rd n is defined as:
∑ λk
K
Rd n = k = K −n
, for n = 0,..., K − 1 , and note that λ = [ λ1 ,..., λK ] are sorted in
∑ λ
K
k =1 k
ascending order.
It appears that for the correlation noise matrices prepared on two years
observation history of approximately 1000 market rates, only a few principal
components are required (very often less than 20) in order to represent 95%
(this percentage is configurable) of the correlation matrix transformational
behaviour. In other words, there will be a significant reduction in the
dimensionality of the problem of the correlation noise building if only principal
components are chosen to represent the required level of correlation
significance.
Example:
If we have three asset classes and we obtained the covariance matrix:
1 0.5 0.9
V = 0.5 1 0.3 .
0.9 0.3 1
©2009 Razor Risk Technologies Page 25 of 373
Razor Financial Principals
After decomposition,
V
= BΛBT
0.73 0.17 0.66 0.07 0 0 0.73 -0.18 -0.65
= -0.18 -0.88 0.44 0 0.75 0 0.17 -0.88 0.44 .
-0.65 0.44 0.61 0 0 2.17 0.66 0.44 0.61
∑ λk
K
Recall Rd n = k = K −n
.
∑ λk
K
k =1
If we set the confidence interval to be 95%, then we can find that n = 2 where
Rd 2
2.17 + 0.75
=
2.17 + 0.75 + 0.07
= 97.66% .
Then
K
V≈ ∑
j = K −n
λ j β j βTj
0.66 0.17
= 2.17 ⋅ 0.44 [ 0.66 0.44 0.61] + 0.75 ⋅ −0.88 [ 0.17 -0.88 0.44]
0.61 0.44
0.97 0.52 0.93
= 0.52 1.00 0.29 which is a very good approximation for V .
0.93 0.29 0.95
It is computationally important to include only the dominant eigenvalues. For
example in daily simulations, if we have 1000 asset classes but only 20
dominant eigenvalues, then instead of looping through all 1000 eigenvalues and
eigenvectors, we only need to loop through 20 eigenvalues and eigenvectors.
It is also possible to filter the eigenvalues using a fixed threshold instead of a
confidence interval.
Rkt = Rkt −1 + (θ k − ak Rkt −1 )δ + σ k δ ( β1,k λ1ϖ 1t + β 2,k λ2ϖ 2t + ... + β19, k λ19ϖ 19t )
2.6.1 Introduction
This section discusses on the generation of future equity prices using
Monte-Carlo simulation. Equities are categorised into two fundamental
types: base equity and secondary equity. Base equities are broad-market
©2009 Razor Risk Technologies Page 27 of 373
Razor Financial Principals
indices like S&P 500 and secondary equities are those equities that are
not broad enough to represent any particular market but whose
movement is correlated closely with a particular base equity.
Define:
Si ( t ) = price of the i-th base equity at time t.
µi = drift coefficient of the i-th base equity.
σi = volatility of the i-th base equity.
β = Principal decomposition of the covariance matrix.
β ij = element of matrix β .
W j (t ) = Brownian motion for base equity j at time t.
N = the set of base indices {1, 2,..., n} .
The stochastic differential equation (SDE) representing the base equity is:
n
dSi ( t ) = µi Si dt + Si ∑ β ij dW j ( t ) .
j =1
Define:
Ski ( t ) = price of secondary equity k linked to base equity i at time t.
µ i
k = drift coefficient of the secondary equity k linked to base
equity i.
where
σ ki 2 = β ki 2σ i2 + β k2 .
Base Equity
Then we calculate
M N
∆i = ∑ ∆i ( j )
N − 1 j =1
M N
∑ ( ∆i ( j ) − ∆i )
2
σ i2 =
N − 1 j =1
σ i2
µi = ∆ i +
2
σi = σ i
2
Step 4: To obtain β ij
β ij is defined as the element of matrix β and β is defined as the
decomposition of covariance matrix V , i.e. V = β T β . We can obtain β
from V using principal decomposition algorithm.
Secondary Equity
Step 1: To obtain µ ki , β ki and β k
We obtain µ ki , β ki and β k using linear regression. Refer to the next
section for the details of using linear regression to obtain the secondary
equity parameters.
We can simulate the future secondary equity price path using the
formula:
β ki
S (t )
S ( t ) = S ( tm ) i m +1 ×
i i
Si ( tm )
k k
1 1 1
exp µki − β ki 2σ ki 2 − β k2 dt − β ki µi − σ i2 dt + β k ζ tikm ∆t
2 2 2
Si ( tm +1 )
Note that can be obtained from the already simulated base
Si ( t m )
equity prices.
Model Explanation
The equation governing the price of the secondary equity index is:
∆S ki (t m ) i
= µ ki ∆t + β ki ∑ β ijφ tmj ∆t + β k γ tkm ∆t .
S k (t m )
i
j =1
For example, if we have historical secondary index prices for six days,
then we will have five historical daily returns and we will have five values
for Y .
The µ ki ∆t component
i
The β ki ∑ β ij φ tmj ∆t component
j =1
generated when we estimated the base index. Thus φtmj is already known
when we try to estimate the secondary equity index.
i
The term ∑ β ijφ tmj ∆t is a constant and observable from the base index.
j =1
i
We denote ∑ β ij φtmj ∆t as X 1 . Note that X 1 is a constant because it is
j =1
observable from the process when we estimated the base index. When
doing linear regression, if we have five historical returns, i.e. five Y ,
then we need to get the corresponding five values of X 1 from the base
index.
X 1 can be recovered from the historical prices of the base index by the
following formula:
S (t ) 1
X 1 = ln i m +1 − µ i − σ i2 ∆t .
S i (t m ) 2
i
Note the summation ∑β φ
j =1
j
ij t m ∆t over j is based on the number of base
indexes. If there are 10 base indexes, we need to sum the j from 1 to 10.
10
Then the term becomes ∑β φ
j
j
ij t m ∆t . However, we do not need to
To summarise, the equation for the secondary equity index can be re-
written as:
Y = α 0 + α1 X 1 + α 2 X 2 .
We can determine α 0 , α 1 and α 2 using linear regression.
Note that α 0 = µ ki ∆t and ∆t is a known constant. Thus once we obtain α 0
α0
from regression, we can calculate µ ki as . Also α 1 = β ki and α 2 = β k ,
∆t
thus if we know a1 and α 2 , we automatically know β ki and β k .
Linear Regression
To carry out linear regression, we write the linear regression equation as:
Y = α 0 + α 1 X 1 + α 2 X 2 + ε , where ε ~ N (0,1) .
We assume in this example that all the known constants are equal to 1
and we have yearly historical secondary index data, thus both β ij and ∆t
are all equal to 1. We also assume that there is only one base index.
Assume the annual historical prices for secondary equity index in the past
six years are:
Year Price
2001 10
2002 20
2003 30
2004 40
2005 50
2006 60
∆S ki (t m )
Then the vector of Y = becomes:
S ki (t m )
20 − 10
10
30 − 20 1
20
0.5
40 − 30
Y = = 0.33 .
30
50 − 40 0.25
0.2
40
60 − 50
50
α 0 = µ ki is constant.
0.28
0.16
X 1 = 0.81 .
0.53
0.65
generate five values for X 2 . We generate five values randomly from the
standard normal distribution. If the five random numbers we generated
are 0.1,0.9,0.35,0.65 and 0.95 then the vector of X 2 becomes:
0.1
0.9
X 2 = 0.35 .
0.65
0.95
In support for the Internal Model the following additional measures are
provided in Razor to support the aforementioned Trading Book
Amendments:
The effective EPE estimate corresponds with the exposure that can be
calculated in the current economic climate. However in order to capture
a deteriorating economic climate the final number must be scaled by a
regulatory defined factor called “Alpha”, this value is currently set at
1.4.
0.9
0.8 MPE
PFE
0.7
EE
EEE
Dollar in Millions
0.6
EEPE
0.5 EPE
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Time
Note that MPE is the maximum peak exposure and PFE is the maximum
exposure estimated to occur on a future date at a high level of statistical
confidence.
Reference
settlement exposure for this trade. During this period the trade represents
a pre-settlement exposure.
Irrevocable - The bank’s payment instruction for the sold currency can no longer
be cancelled unilaterally either because it has been finally processed by
the relevant payments system or because some other factor (e.g. internal
procedures, correspondent banking arrangements, local payments system
rules, laws) makes cancellation dependent upon the consent of the
counterparty or another intermediary; the final receipt of the bought
currency is not yet due. In this case, the bought amount is clearly at risk.
Uncertain - The bank’s payment instruction for the sold currency can no longer
be cancelled unilaterally; receipt of the bought currency is due, but the
bank does not yet know whether it has received these funds with finality.
In normal circumstances, the bank expects to have received the funds on
time. However, since it is possible that the bought currency was not
received when due (e.g. owing to an error or to a technical or financial
failure of the counterparty or some other intermediary), the bought
amount might, in fact, still be at risk.
Failed - The bank has established that it did not receive the bought currency
from its counterparty. In this case the bought amount is overdue and
remains clearly at risk. Failed trades can be converted to a cash exposure
and should appear effectively as a Loan in the Pre-Settlement exposure to
the Counterparty.
Settled - The bank knows that it has received the bought currency with finality.
From a settlement risk perspective the trade is considered settled and the
bought amount is no longer at risk.
The key states for settlement risk measurement purposes are Irrevocable and
Uncertain.
The net settlement date exposure for these trades will be 50 (AUD 45 + NZD 5).
The system supports the processing of settlement exposure with and without
settlement netting enabled for different portfolio types.
Chapter 4
Credit Risk Measurement
Credit risk arises from the changes in credit quality of a counterparty to a
trade. It is made up of default risk and downgrade credit spread risk. Default
risk is measuring the risk of failure of a counterparty meeting its financial
obligations, and what level of recovery is likely in the event of default.
Downgrade risk is the risk that a counterparty's credit rating falls and therefore
the value of the positions with that counterparty may also fall.
The traditional approaches to the management of credit risk by setting limits
to measures such as counterparty credit exposure are described in Chapter 3.
Additional to the measurement of counterparty credit exposure, which
measure current and potential future exposure assuming default, it is useful to
have more sophisticated measures of credit risk which adequately model credit
losses.
A credit risk model calculates credit losses by deriving at each credit or time
node a distribution of potential credit losses. These models not only consider
the changes in the market risk factors, but also credit rating migration and
rates of recovery if default occurs for a counterparty or an issuer.
Factors which more commonly determine portfolio credit risk include,
At a trade level include but are not limited to such factors as:
Current and future potential exposure as defined in 3.1.1, and Recovery rates,
which are a measure of the amount which may still be recovered from a
defaulting counterparty.
2. At a counterparty level the factors are:
Credit migration probabilities, that is the probability of a counterparty credit
rating transitioning to a lower credit rating and the subsequent change in
credit exposure to that counterparty,
Default probabilities, that is the probability a counterparty will default, and
the subsequent loss incurred by the counterparty failing to meet the
obligations associated with the trade.
The default probability may be embedded in the credit migration probabilities
by specifying a probability to transition to the default rating. Alternatively
default risk can be separated from credit risk by only specifying probabilities to
maintain the current rating or transition to default.
Recovery rates, which are a measure of the amount which may still be
recovered from the defaulting counterparty,
At the counterparty level the aggregation of exposures will take into
consideration offsetting, netting agreements and collateral as described in
3.1.3, 3.1.4, 3.1.5,
3. At a portfolio level such factors as joint credit migration probability
distribution, which recognize the level of co-movement between credit events
occurring for different counterparties.
87.87
BBB 0.07% 0.20% 5.60% % 4.83% 1.02% 0.17% 0.24%
81.48
BB 0.00% 0.10% 0.61% 7.79% % 7.90% 1.11% 1.01%
82.80
B 0.00% 0.10% 0.28% 0.46% 6.95% % 3.96% 5.45%
12.32 60.44 23.69
CCC 0.00% 0.00% 0.37% 0.75% 2.43% % % %
Therefore the % chance that a AAA rated issuer will stay AAA in a year’s time is
92.97%, while the chance that it will migrate to AA within a year is 6.43%.
This matrix can be simplified by just specifying the probabilities of default
from each credit rating which simulates default events but ignores
transitioning between other rating values.
calculated term is linearly interpolated from the set of provided term based
probabilities.
1. If there is only one provided matrix then the probabilities are constant with
respect to term.
2. Similarly if the calculated term required is shorter in duration compared
with the first sorted matrix, or longer in duration compared with the last
sorted matrix, then again the probabilities are flat with respect to term, and
the closest (respectively the first and last) matrix will be used.
3. If the duration of the term being transitioned from one credit node to the
next lies between two termed based credit rating migration probability
matrices then it is a straight line time based linear interpolation to derive the
probabilities to use.
So for example if a 1 month and 3 month credit rating migration probability
matrix are provided, and all the credit nodes are 2 months apart then the
probabilities used for each migration of 2 months duration in the simulation
will be those same linearly interpolated (half way) between the 1 month and 3
month matrices.
As another example if using the same matrices as above and just 3 credit nodes
of 1 month apart, then the probabilities for each credit rating migration of 1
month duration in the future will be those from the 1 month credit rating
migration probability matrix.
As another example if using the same matrices as above and just 2 credit
nodes, at 1 month and 4 months, then the transition to the 1 month credit
node will use the 1 month probabilities as supplied, and the transitioning from
1 month node to 4 month credit node will use the 3 month probabilities as
supplied.
Naturally as transitioning along a path the credit party credit rating is
migrating according to the probabilities and the simulation going from one
credit node to the next along the path.
Daimler Chrysler
Rating AAA AA A BBB BB B CCC D Rating AAA AA A BBB BB B CCC D Rating AAA AA A BBB BB B CCC D
AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% Rating AAA AA A BBB BB B CCC D AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00%
AA AA AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% AA
2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00% 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00% 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00%
AA 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00%
A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04%
BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24%
BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01%
Ford B
CCC
0.00%
0.00%
0.10%
0.00%
0.28%
0.37%
0.46%
0.75%
6.95%
2.43%
82.80%
12.32%
3.96%
60.44%
5.45%
23.69%
B
CCC
0.00%
0.00%
0.10%
0.00%
0.28%
0.37%
0.46%
0.75%
6.95%
2.43%
82.80%
12.32%
3.96%
60.44%
5.45%
23.69%
BB
B
CCC
0.00%
0.00%
0.00%
0.10%
0.10%
0.00%
0.61%
0.28%
0.37%
7.79%
0.46%
0.75%
81.48%
6.95%
2.43%
7.90%
82.80%
12.32%
1.11%
3.96%
60.44%
1.01%
5.45%
23.69%
B
CCC
0.00%
0.00%
0.10%
0.00%
0.28%
0.37%
0.46%
0.75%
6.95%
2.43%
82.80%
12.32%
3.96%
60.44%
5.45%
23.69%
Toyota
Rating AAA AA A BBB BB B CCC D Rating AAA AA A BBB BB B CCC D Rating AAA AA A BBB BB B CCC D
AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% Rating AAA AA A BBB BB B CCC D AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00%
AA AA AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% AA
2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00% 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00% 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00%
AA 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00%
A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04%
BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24%
BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01%
B B BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% B
0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45% 0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45% 0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45%
B 0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45%
CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69% CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69% CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69%
CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69%
British Petroleum
JP Morgan
Rating AAA AA A BBB BB B CCC D Rating AAA AA A BBB BB B CCC D Rating AAA AA A BBB BB B CCC D
AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% Rating AAA AA A BBB BB B CCC D AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00%
AA AA AAA 92.97% 6.43% 0.48% 0.08% 0.04% 0.00% 0.00% 0.00% AA
2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00% 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00% 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00%
AA 2.60% 91.81% 4.78% 0.60% 0.06% 0.12% 0.03% 0.00%
A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04%
BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% A 0.70% 2.27% 91.68% 4.49% 0.56% 0.25% 0.01% 0.04% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24%
BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% BBB 0.07% 0.20% 5.60% 87.87% 4.83% 1.02% 0.17% 0.24% BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01%
B B BB 0.00% 0.10% 0.61% 7.79% 81.48% 7.90% 1.11% 1.01% B
0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45% 0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45% 0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45%
B 0.00% 0.10% 0.28% 0.46% 6.95% 82.80% 3.96% 5.45%
CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69% CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69% CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69%
CCC 0.00% 0.00% 0.37% 0.75% 2.43% 12.32% 60.44% 23.69%
Barclays
Hence in summary, CRTM are defined by tenor and interpolated to the current
time node. Multiple CRTM structures can be defined relating to different
segments of the market.
Configuration determines to which CRTM structure a trade is assigned.
Typically this would be determined by any combination of trade attributes such
as industry, location, and so on.
most likely outcome is the transitioned credit rating will be the same as the
current rating.
This perturbed rating is used as the initial rating for the next time node in the
simulation. At the beginning of each path the credit rating is reset to its initial
condition. In this manor a credit rating can transition up or down during the
simulation. Transitioning to the default rating causes a default event to be
raised and no further transitioning can occur for the remainder of the path.
Result of Uniform
Matrix Random
Decomposition Numbers Correlated random numbers
z1
b11 0 0 b11 * z 1
b21 b22 0
z2 = b 21 * z 1 + b 22 * z 2
b31 b32 b33 z3 b 31 * z 1 + b 32 * z 2 + b 33 * z 3
This yields a set of correlated random numbers on the interval (0,1) for each
credit entity, and for each scenario in a path.
Note: Within RAZOR it is possible to set up multiple credit loss models running
in parallel where each model is using data from a different external or internal
ratings model, and hence it is possible to compare measures such as expected
loss, and economic capital as derived from each model.
The Credit Rating simulation has been described it remains to detail the
calculation of Credit Losses.
N’th percentile
Present Value 0
of Loss Economic Capital
Currently RAZOR does not support a distribution of credit losses for a particular
node which have been present valued back to the current date. The present
value of the simulated credit losses back to the start date can be supported by
©2009 Razor Risk Technologies Page 50 of 373
Razor Financial Principals
There are various other configurable settings for default treatment using the
following xml under the simulatedRiskConfig (or distributedRiskConfig).
<defaultTreatment>
<valueAtDefault>false</valueAtDefault>
<valueAfterDefault>false</valueAfterDefault>
<pushValueAtDefaultForward>true</pushValueAtDefaultForward>
©2009 Razor Risk Technologies Page 51 of 373
Razor Financial Principals
</defaultTreatment>
1. valueAtDefault will value on the first node after the default event and then
assume 0 value for the remainder of the path.
2. valueAfterDefault will value on all nodes after the default event.
3. pushValueAtDefaultForward will value on the first node after the default
event and then use that same value for the remainder of the path.
Chapter 5
Market Risk Measurement
Market risk is the risk of a decrease in value of a portfolio of investments,
trades, and positions due to changes in the value of the market risk factors
which determine the market value of the portfolio.
Measuring this risk provides financial institutions with the knowledge to
properly manage the risk of portfolio losses, and the understanding to the
composition of this risk, and enables the setting aside of regulatory capital to
protect them against these potential portfolio losses.
There are various methods for measuring this risk, including the more
traditional measures of sensitivity such as interest rate sensitivity such as
PV01, basis point sensitivity, duration, convexity, and option based sensitivity
measures (the ‘Greeks’) such as delta, gamma, rho, vega, theta.
Market risk is also typically measured using a Value at Risk methodology. Razor
provides support for both the Historical, and the Monte Carlo VaR
methodologies
More formally, the VaR for a particular holding period may be derived from a
probability density function fτ (w) for the continuous random variable W of the
change in portfolio value with values w , for that holding period τ .
The probability p of a change in portfolio value w being lower than a level V
V
is ∫ fτ ( w)dw .
−∞
V
p = P(W < V ) = ∫ fτ ( w)dw .
−∞
Therefore the probability of a change in portfolio value not being less than this
value V is 1 − p . Hence 1 − p represents the confidence level c .
∞
c = 1 − p = P(W > V ) = ∫ fτ ( w) dw
V
In other words, with confidence level c the worst change in portfolio value
time horizon τ is V . Hence V is the value for VaR, and it is reported as a
positive number.
So for example, over a time horizon of 1 day, if 5% of the changes in portfolio
value are less than -10,000 (ie more negative than -10,000), then 95% of the
changes in portfolio value are greater than or equal to -10,000 (ie more
positive than -10,000). In other words if 5% of the portfolio losses are greater
than a loss of 10,000, then 95% must be less than or equal to 10,000. Hence to
a confidence level of 95% the largest likely loss will be 10,000, and this is the
reported VaR.
Hence for Stτ , each market risk factor value Fiτ (t ) is derived as
Fiτ (t ) = Fi (0) + ∆τ Fi (t ) , where ∆τ Fi (t ) = Fi (t + τ ) − Fi (t ) is the change in value
of a market risk factor i observed from time t to time t + τ .
This change ∆τ Fi (t ) can be set for each class of risk factors to be absolute (
Fi (t + τ ) − Fi (t ) , as above), relative ( Fi (t + τ ) / Fi (t ) ), or zero (for example as
use in partial risk as described below).
Historical simulation has the advantage of using actual real historic changes in
market risk factors to generate the distribution of values, and hence there are
no assumptions with respect to the distribution of risk factor values, the
volatility/correlations are as they actually occurred, and takes account of
outliers, and fat tails. Some of the disadvantages to be aware of include that
trends reflected in the historical data do not necessarily reflect current market
conditions, and also since it is possible for outliers to distort the VaR, careful
analysis of the outliers may be required.
An adequate VaR number depends on the availability of an adequate set of
historic data. It is recommended that at least 1 year of historic data is used.
The regulatory framework of the Basle Internal Models Approach requires
Historic VaR to be calculated for 1 day and 10 day holding periods with a 99%
confidence level. The 10 day VaR may be calculated as an approximation from
the 1 day VaR ( VaR10 day = 10 * VaR1day ), but ideally should be directly
calculated using the same historic simulation methodology as the 1 day VaR.
Monte Carlo simulation uses the generalized Monte Carlo simulation framework
as described in detail in Chapter 2, to generate the set of simulated changes in
the risk factors which are then used to create the scenarios S τj , for time
horizon τ .
The market risk factors are stochastically modelled forward in time τ
according to a set of correlated diffusion processes. The returns for each
market risk factor are assumed to have a specific probability distribution, such
as normal, or lognormal, and evolve using a stochastic process defined by
volatility and with or without mean reversion. From the set of market risk
factors and the probability distributions, it is necessary to estimate or define
the stochastic parameters for each of the risk factors and the correlations
between all of the risk factors. This can be by various methods, such as
deriving from a historical set of values for the market risk factors or defining
externally by any other mechanism, or from some combination of these
methods.
From this input the Monte Carlo simulation process generates m simulated
relative changes or returns S∆τ j Fi , in the n market risk factors Fi , over the
time horizon τ , by correlated random sampling.
Hence, in a similar fashion as for Historic VaR, for scenario S τj , each market
risk factor value Fiτ ( j ) is defined as the value of the i’th risk factor in the j’th
scenario for time horizon τ , and is derived as Fiτ ( j ) = Fi (0) * S∆τ j Fi .
Chapter 6
Market Rates, Prices and Curves
The various pricing routines in RAZOR make use of both observed and implied
security prices and theoretical structures that describe the characteristics of
the financial market at a point in time. This information is encapsulated by an
object in RAZOR called a Market.
P(t , t1 ) = F
1
d t →t1
1 + Z t →t1 ⋅
D
If the zero-coupon bond price is observed, the zero rate can be uniquely
determined as:
F D
Z t → t1 = − 1 ⋅
P (t , t 1 ) d t → t1
When F = 1 , the price of the zero-coupon bond P(t , t1 ) is called the discount
factor at time t1 and we denote it as D(t , t1 ) , i.e.
D(t , t1 ) =
1
and equivalently
d t →t1
1 + Z t →t1
D
1 D
Z t →t1 = − 1 ⋅
(
D t , t1 ) d t →t1
Forward Rate
Forward rate is the interest rate implied by current zero rates for a specified
future time period.
Define:
f (t , t1 , t 2 )
= the forward rate
= the implied annualised interest rate for future time period t1 to t 2 at
current time t .
d d d
1 + Z t →t1 ⋅ t →t1 1 + f (t , t1 , t 2 ) ⋅ t1 →t2 = 1 + Z t → t 2 ⋅ t → t 2
D D D
The reason for the above equality to hold is explained by the arbitrage-free
theory:
If LHS > RHS
Short $1 of a t 2 -year zero-coupon bond.
At the end of time t 2 , we will have the invested amount equal to the LHS and
we need to return the shorted amount with interest equal to the RHS. Since
LHS > RHS, an arbitrage profit of LHS – RHS is earned.
If LHS < RHS
Short $1 of a t1 -year zero-coupon bond and lock in a forward interest rate to
pay for the period t1 to t 2 .
At the end of time t 2 , we will have the invested amount equal to the RHS and
we need to return the shorted amount with interest equal to the LHS. Since
LHS < RHS, an arbitrage profit of RHS – LHS is earned.
In an efficient market, investors will exploit the arbitrage opportunities. This
will force any arbitrage opportunity to be eliminated as soon as they arise and
fail to exist in the market. This means that the above mathematical equality
has to hold, i.e. LHS = RHS, in an efficient and arbitrage-free market.
The above mathematical equality can also be written as:
−1
d t →t
D(t , t 2 ) = D(t , t1 )1 + f (t , t1 , t 2 ) ⋅ 1 2
D
Thus if the zero rates (or the price of the zero-coupon bonds) are observed,
then the forward rate can be uniquely determined as:
d t →t 2 dt →t1 D
f ( t , t1 , t2 ) = 1 + Z t →t2 ⋅ / 1 + Z t →t1 ⋅ − 1 ⋅
D D dt1 →t2
D ( t , t1 ) D
= −1 ⋅
D ( t , t ) d
2 t1 →t2
Swap Rate
Swap rate is the fixed rate in an interest rate swap that causes the swap to
have a value of zero.
It is important to note that on the floating side of the swap, the present value
of all cash flows must equal to the principal amount. Thus for the interest rate
swap to have a value of zero, the present value of all the cash flows on the
fixed side of the swap must also equal to the principal amount. It implies that
the fixed rate on the swap is equivalent to the yield-to-maturity of a bond that
equates the present value of all cashflows of the bond to the face value of the
bond (i.e. the par yield). As a result, it is convenient to think the swap rate as
a par yield rate.
supports. This includes cash deposit, cash rates, swap rates, and futures
points. Currently security (bond) yield to maturity rates and security (bond)
prices are not supported in Razor, and there is no support for convexity
adjustments. Inflation Curves are currently not supported.
Specific market curves which contain rates/prices which are not directly
supported by Razor’s current bootstrapping function can still be supported by a
conversion of these points to points in the form above. This will involve some
integration layer / ETL processing.
For each input rate rtir , at time t i , on the reference yield curve r ,the
resultant input rate rtic at time t i , on the spread yield curve c is defined by
If no spread rate sti exists at time t i , then the spread rate to use is derived by
linear interpolation between the previous and next spread rates. If there is no
previous spread rate, then linear interpolate between the next spread rate and
a spread rate of zero at start of curve, time t . If there is no next spread rate,
then rtic = rtir .
Dc (t , t1 ) =
1
d t →t1
1 + Z tc→t1 ⋅
Dc
1 D
Z t1→t1 = − 1 ⋅ c , the zero rate at time t1 from first yield curve
D (
1 1t , t ) d t →t1
1 D
Z t2→t1 = − 1 ⋅ c , the zero rate at time t1 from second yield curve
D2 (t , t1 ) d t →t1
Dc , the number of days in year, as defined on composite curve
1 D
Z t →t1 = − 1 ⋅ , unadjusted zero rate
D(t , t1 ) d t →t1
( )
Z tA→t1 = Z t →t1 + A * M , adjusted zero rate
D A (t , t1 ) =
1
, adjusted discount factor
d t →t1
1+ Z A
t →t1 ⋅
Dc
6.3.1 Bootstrapping
In RAZOR, the bootstrapping process is driven by a bootstrapping
configuration. The bootstrapping configuration determines what assets to use
to generate the yield curve. Assets are referenced by an asset class, an
identifier that represents the type of security used at a particular point on the
yield curve - for example; a one month bank accepted bill rate.
Different types of securities have different cash flow profiles and different rate
calculation methods. These differences need to be taken into account when
determining the theoretical value of a zero coupon bond at the specific
maturity.
P(t , t1 ) = F
1
d t → d1
1 + Z t →t1 ⋅
D
It is very straightforward to bootstrap the zero rates if we are given the prices
of the bills. The zero rates can be found using the formula
Z t → t1 =
(F − P (t , t 1 ))D .
P (t , t 1 )d t → t1
Example:
If we have the price for a 30-day bill with face value 100 equal to 99 (assuming
360 days in a year), the annualised 30-day zero rate is:
360(100 − 99 )
Z t →t1 = = 12.12% .
30 × 99
While it is very simple to determine zero rates using bills, it should be realised
that bills have very short-maturities. To construct a yield curve with maturities
up to say 40 years, it is obvious that we do not have bills with equivalent time-
to-maturities.
Bill Futures
A bill futures contract is a futures contract on bills. It obliges the buyer/seller
of the futures contract to buy/sell the underlying bill at a predetermined
delivery price in the specified future time.
Define:
B(t , t1 , t 2 ) = the futures price of a bill futures contract that begins at time t1
and matures at time t 2
100 − B(t , t1 , t 2 )
B(t , t1 , t 2 ) is quoted in a way such that is the annualised
100
interest rate applied to the period t1 to t 2 at the current time t .
100 − B(t , t1 , t 2 )
Thus it is intuitively clear that is just the annualised forward
100
rate applied to the period t1 to t 2 from the perspective of current time t .
Mathematically, we can write:
100 − B(t , t1 , t 2 )
f (t , t1 , t 2 ) =
100
Thus if we are given the bill futures price, we can uniquely determine the
forward rate and then bootstrap the zero rate for t 2 from this forward rate
and the zero rate we bootstrapped or given at time t1 .
Example:
Assume there are 360 days in a year and given the 180-day discount factor is
0.9730. We have a 90-day bill futures contract that begins in 180 days and the
rate of the bill futures contract is 95. We want to determine the 270-day zero
rate, i.e. we want to calculate Z 270 .
t→
360
Answer:
180 270
We are given B t , , = 95 . We can use the forward formula
360 360
100 − B(t , t1 , t 2 )
f (t , t1 , t 2 ) =
100
to calculate the annualised forward rate implied for the period from 180 days
to 270 days, i.e.
1 D
Z t →t1 = − 1 ⋅ so that
D (t , t1 ) d t →t1
Z 270
t→
360
= 1
− 1 ⋅
360
270 d
D t , t → 360
270
360
©2009 Razor Risk Technologies Page 65 of 373
Razor Financial Principals
1 360
= − 1 ⋅
0 .9610 270
= 5.41%
Swaps
A swap contract is a contract that exchanges a fixed rate of interest on a
certain notional principal for a floating rate of interest on the same notional
principal.
The swap rate is the fixed rate in a swap that causes the swap to have a value
of zero. As we have discussed in section 6.1.2, the swap rate can be thought as
a par yield (i.e. the yield-to-maturity that makes the present value of all cash
flows of a bond equal to the face value of the bond).
The construction of a yield curve usually requires a very long maturity term.
Bills and bill futures generally do not have the equivalent maturities. However,
swaps can have very long maturity term (e.g. 40 years). It is thus very
important to find a method to construct the yield curve using swaps.
Define:
rs (c, N ) = the annualised swap rate of a swap contract that exchanges
interest payment c times a year with maturity term N
F = the principal amount under the swap
90 1
D t , = D t , = 0.9851
360 4
180 2
D t , = D t , = 0.9698
360 4
270 3
D t , = D t , = 0.9557
360 4
Using the formula
rs ( c, N ) cN −1 i
1− ∑ D t,
c
D (t, N ) =
c i =1
rs ( c, N )
1+
c
rs ( 4,1) 3
1− ∑ D (t, i )
D ( t ,1) =
4 i =1
r ( 4,1)
1+ s
4
r ( 4,1)
1− s
4
( D ( t ,1) + D ( t , 2 ) + D ( t ,3) )
=
r ( 4,1)
1+ s
4
0.06
1− ( 0.9851 + 0.9698 + 0.9557 )
= 4
0.06
1+
4
= 0.9422
1 D
Z t →t1 = − 1 ⋅
D (t , t 1 ) d t →t1
The 1 year zero rate is:
1 360
Z t →1 = − 1 ⋅
D ( t ,1) d t →1
1 360
= − 1 ⋅
0.9422 360
= 6.13%
For the case where the term of the last known zero bootstrapped t i does not
cover the terms for all required zero rates, then we need to derive in order
these interim zero rates first.
Assume t j is the term of the next interim zero rate which is required to be
bootstrapped but for which there is no direct swap rate of frequency c
available, t i is the term for the most recently bootstrapped zero rate,
t j −1 = t j − 1 / c , t j −1 ≤ t i , and t i < t j < t k .
To bootstrap the zero rate at t j , we firstly need to derive a swap rate at this
term. This is achieved by interpolating between the next available swap rate
at t k , and an effective swap rate of the same frequency derived at t i , or is
this t j −1 .
Once we find the effective swap rate at time t i , with the given swap rate at
time t k , we linearly interpolate the swap rate at time t j . After obtaining the
swap rate at time t j , the discount factor and zero rate at time t j can be
evaluated as we have done in the previous section.
Define Effective Swap Rate
An effective swap rate is a swap rate that is implied by the discount factors
An effective swap rate of maturity ti, and frequency c, can be derived from an
existing bootstrapped yield curve, or known series of zero rates or discount
factors for terms t1 to tn, spanning ti.
It is very simple to calculate the effective swap rate:
Recall:
rs (c, N ) cN −1 i
1− ∑ D t ,
c
D(t , N ) =
c i =1
rs (c, N )
1+
c
Rearrange the formula and we can calculate the effective swap rate as:
c(1 − D(t , N ))
rs (c, N ) = cN
i
∑i =1
D t ,
c
Example:
Assume there are 30 days in a month and 360 days in a year. We are given the
3-month, 6-month and 9-month and 12-month discount factors equal to 0.9851,
0.9698, 0.9557 and 0.9422 respectively. We want to find the effective swap
rate for a 1-year swap contract with quarterly exchanges of interest payments.
Answer:
We are given
90 1
D t , = D t , = 0.9851
360 4
180 2
D t , = D t , = 0.9698
360 4
270 3
D t , = D t , = 0.9557
360 4
360
D t , = D(t ,1) = 0.9422
360
Using the effective swap rate formula
c(1 − D(t , N ))
rs (c, N ) = cN
i
∑i =1
D t ,
c
4 (1 − D ( t ,1) )
rs ( 4,1) = 4
i
∑ D t , 4
i
4 (1 − D ( t ,1) )
=
1 2 3
D t , + D t , + D t , + D ( t ,1)
4 4 4
4 (1 − 0.9422 )
=
0.9851 + 0.9698 + 0.9557 + 0.9422
= 6%
Thus the 1-year effective swap rate is 6%.
The effective swap rate formula is very useful to bootstrap zero rates.
Consider the following situation:
We want to find the 1.25-year zero rate. We have a 3-year swap with quarterly
interest exchange. We also have the 90-days, 180-days, 270-days and 1-year
discount factors obtained from other short term instruments.
From the formula we had before, to find the 1.25-year discount factor, we will
need a swap contract with maturity at 1.25 years. However, we only have a 3-
year swap contract. We even cannot interpolate the 1.25-year swap rate
because we do not have any other swap contract besides the 3-year swap. The
©2009 Razor Risk Technologies Page 69 of 373
Razor Financial Principals
90 1
D t , = D t , = 0.9851
360 4
180 2
D t , = D t , = 0.9698
360 4
270 3
D t , = D t , = 0.9557
360 4
360
D t , = D(t ,1) = 0.9422
360
rs (4,3) = 0.0582
The 1-year effective swap rate can be obtained from the formula
c(1 − D(t , N ))
rs (c, N ) = cN
i
∑i =1
D t ,
c
and we have calculated in the previous example that the 1-year effective swap
rate rs (4,1) is 6%.
Using linear interpolation (for details on linear interpolation, please refer to
the next section):
rs ( 4,3) − rs ( 4,1)
rs ( 4,1.25) = rs ( 4,1) + (1.25 − 1)
3 −1
0.0582 − 0.06
= 0.06 + (1.25 − 1)
3 −1
= 5.98%
With the interpolated 1.25-year swap rate and the corresponding discount
factors, we can find the 1.25 discount factor using the formula:
rs (c, N ) cN −1 i
1− ∑ D t ,
c
D(t , N ) =
c i =1
rs (c, N )
1+
c
We can now find D(t ,1.25) as:
rs ( 4,1.25 ) 4 i
1−
4
∑ D t,
4
D ( t ,1.25 ) = i =1
rs ( 4, N )
1+
4
rs ( 4,1.25) ) 1 2 3
1− D t , 4 + D t , 4 + D t , 4 + D ( t ,1)
4
=
rs ( 4,1.25 )
1+
4
0.0598
1− ( 0.9851 + 0.9698 + 0.9557 + 0.9422 )
= 4
0.0598
1+
4
= 0.9285
It is straightforward to find the 1.25-year zero rate Z t →1.25 :
1 D
Z t →t1 = − 1 ⋅
D(t , t1 ) d t →t1
1 360
Z t →1.25 = − 1 ⋅
D ( t ,1.25 ) dt →1.25
1 360
= − 1 ⋅
0.9285 360 (1.25 )
= 6.16%
Linear Interpolation
This is the simplest way to interpolate the required rate. If the rate at time t i
is ri and the rate at time t j is r j and we want to work out the rate at a time
between t i and t j , i.e. to calculate rα at time tα for some α ∈ (i, j ) . Linear
interpolation assumes there is a linear relationship between ri and r j during
the time from t i to t j . Thus we can calculate any rate rα at time tα using
linear interpolation formula:
r j − ri
rα = ri + (tα − ti ) .
t j − ti
Rate here is a very general definition. It can be spot rate, discount rate, log-
rate, etc.
We will now discuss four options that are based on linear interpolation.
Linear Spot
This is the situation where we have got two spot rates Z t →t a and Z t →tb at time
t a and t b respectively. We need to find the spot Z t →ti at time t i for some
i ∈ (a, b ) using linear interpolation.
Example:
The 3-month spot rate is 6.01% and the 6-month spot rate is 6.11%. Calculate
the 5-month spot rate using the concept of linear spot.
Answer:
Z 3 = 0.0601
t→
12
Z 6 = 0.0611
t→
12
3
D t , = 0.9852
12
6
D t , = 0.9704
12
Using linear interpolation formula:
5
D t ,
12
6 3
D t , − D t ,
3 12 12 ⋅ 5 − 3
= D t , +
12 6
−
3 12 12
12 12
0.9704 − 0.9852 5 3
= 0.9852 + ⋅ −
6 3
− 12 12
12 12
= 0.9753
Z 6 = 0.0611
t→
12
log Z 5
t →12
log Z 6 − log Z 3
t →
12 t →
12 5 3
= log Z 3 + ⋅ −
t→
12
6
−
3 12 12
12 12
log(0.0611) − log(0.0601) 5 3
= log(0.0601) + ⋅ −
6 3
− 12 12
12 12
= -2.80074
Z 5
t→
12
= exp log Z 5
t→
12
= exp(− 2.80074)
= 6.08%
3
D t , = 0.9852
12
6
D t , = 0.9704
12
Use log linear discount factor with the linear interpolation formula:
5
log D t ,
12
6 3
log D t , − log D t ,
3 12 12 ⋅ 5 − 3
= log D t , +
12 6
−
3 12 12
12 12
log(0.9704) − log(0.9852) 5 3
= log(0.9852) + ⋅ −
6 3
− 12 12
12 12
= −0.025
5
D t ,
12
5
= exp log D t ,
12
= exp(− 0.025)
= 0.9753
©2009 Razor Risk Technologies Page 74 of 373
Razor Financial Principals
Notation
ti = time point i .
ri = continuous compounding rate at ti .
dfi = discount factor at ti .
Implementation
If we have got discount factors at t1 and t2 , i.e. df1 and df 2
respectively, then we can interpolate the discount factor dfi at time
t1 < ti < t2 as:
ti t2 − ti ti ti −t1
× ×
t1 t2 −t1 t2 t2 −t1
dfi = df1 × df 2 .
Example
If the discount factor at year 1 is 0.9900 and the discount factor at year
2 is 0.9800 then the discount factor at year 1.5 can be interpolated as:
1.5 2 −1.5 1.5 1.5−1
× ×
df = 0.9900 1 2 −1
× 0.9800 2 2 −1
≈ 0.9850.
Razor supports this directly and also via linearly interpolating continuous
compounding rate.
We now show that to exponentially interpolate discount factors is the
same as linearly interpolate continuous compounding rate.
We have the formulas:
df i = e − ri ti .
1
ri = − ln dfi .
ti
ti t2 − ti ti ti −t1
× ×
t2 −t1 t2 −t1 1
We substitute dfi = df1t1 × df 2 t2 into ri = − ln dfi , then we get
ti
1
ri = − ln dfi
ti
ti t2 −ti ti ti − t1
1 × ×
= − ln df1t1 t2 −t1 × df 2 t2 t2 −t1
ti
= − ln df1 + ln df 2 2 2 1
ti
1 − r1×ti × t2 −t1 − r2 ×ti × tti −−tt1
t2 − ti
= − ln e + ln e 2 1
ti
1 t −t t −t
= − −r1 × ti × 2 i − r2 × ti × i 1
ti t2 − t1 t2 − t1
t −t t −t
= r1 × 2 i + r2 × i 1
t2 − t1 t2 − t1
rt − rt + r t − r t
= 12 1i 2i 21
t2 − t1
rt − rt + rt − rt + r t − r t
= 12 1i 11 11 2 i 21
t2 − t1
r1 ( t2 − t1 ) t2 + ( r2 − r1 )( ti − t1 )
=
t2 − t1
( r2 − r1 )
= r1 + ( ti − t1 ) .
t2 − t1
∆x = x − xi
(0.4)
yi = di since ∆x = xi − xi = 0
yi +1 = ai ∆x 3 + bi ∆x 2 + ci ∆x + d i (0.5)
Since we require the first and second derivatives to be smooth where the
spline segments join we differentiate Eq. (0.4) twice:
y ′ = 3ai ∆x 2 + 2bi ∆x + ci (0.6)
Setting these two equations for interval i and i − 1 equal to each other and
substituting for ai , bi , ci , di in terms of
∆y ∆x ( 2 Si′′+ Si′′+1 )
yi′ = −
∆x 6
∆S−′′1 Si′′−1 ∆y−1 ∆x−1 ( 2Si′′−1 + Si′′)
= 3 ∆x−1 + 2
2
+ −
6∆x−1 2 ∆x−1 6
This equation is now simplified as:
∆y ∆y−1
∆x−1Si′′−1 + (2∆x−1 + ∆x) + ∆xSi′′+1 = 6 −
∆x ∆x−1
And finally substituting ∆x = h, S ′′ = S and writing in a vector form:
y − y y − yi −1
hi −1S i −1 + (2hi −1 + hi ) + hi Si +1 = 6 i +1 i − i (0.9)
hi hi −1
y2 − y1 y1 − y0
−
h1 h0
2(h +
0 0 1 1
h h )h 1
S
y3 − y2 y2 − y1
h12(h1 + h2 )h2 S −
2 = 6 h2 h1
O M
M
hn−3 2(hn−3 + hn−2 )hn−2 Sn−2
yn−1 − yn−2 − yn−2 − yn−3
hn−2 hn−3
(0.10)
We do not solve for either S 0 or S n−1 since these end-point second
derivatives are bound at 0 (natural spline). Since this is a symmetric,
tridiagonal matrix we use a sparse matrix algorithm for reduction and
back-substitution to solve for Si . From Eq. (0.8) the values for ai , bi , ci , di
are:
Si +1 − Si S y − y 2h ( S + S i +1 )
ai = , bi = i , ci = i +1 i − i i , di = yi (0.11)
6hi 2 hi 6
1 .25 0 S1 -0.0382
.25 1 .25 S = 0.0227
2
0 .25 1 S 3 -0.2908
A−1b = S
1.0714 -0.2857 0.0714 -0.0382 -0.0682
-0.2857 1.1429 -0.2857 0.0227 = 0.1200
0.0714 -0.2857 1.0714 -0.2908 -0.3208
0
-0.0682
S = 0.1200
-0.3208
0
From equations (0.11) we derive the coefficients for the cubic spline
polynomial
-0.0455 0 0.0033 1
0.1255 -0.0341 -0.0078
a= , b = , c = , d = 0.9964
-0.2938 0.0600 0.0139 0.9911
0.2138 -0.1604 0.0158 0.9868
h = xˆ − x1
yˆ = a1h3 + b1h 2 + c1h + d
= 0.9948
Extrapolation Methods
Suppose we have N number of rates in our data sample.
Define:
t (k ) = the time of the k th rate in our sample such that
t (1) < t ( 2 ) < t (3 ) < ... < t ( N )
r ( k ) = the rate at time t (k )
We have demonstrated in the previous section that we can find any rate r j at
( )
time t j for any t j ∈ t (1) , t ( N ) . For example, for some i such that
(i ) (i +1)
t < tj < t , we can use the linear interpolation formula
r (i +1) − r (i )
r j = r (i ) + (
⋅ t j − t (i ) )
t (i +1) − t (i )
to find r j .
Last Zero
This is a very simple and straightforward extrapolation method to extrapolate
zero rates Z t →t j for some t j < t (1) or t j > t ( N ) . This method is saying that we
use the boundary zero rate as an approximation for any zero rate beyond the
boundary rate. Thus, using last zero method, Z t →t j = r (1) for any t j < t (1) and
Z t →t j = r ( N ) for any t j > t ( N ) .
Example:
The 3-month zero rate Z 3 is 6.01% and the 40-year zero rate Z t → 40 is 5.75%.
t→
12
Calculate the 1-month zero rate and 41-year zero rate using last zero method.
Answer:
r (1) = Z 3 = 6.01%
t→
12
3
t (1) =
12
r ( N ) = Z t → 40 = 5.75%
t ( N ) = 40
1
Since t 1 = < t (1) , using last zero method, we then obtain:
12
12
Z 1
t→
12
= r (1)
= 6.01%
Also t 41 = 41 > t ( N ) , using last zero method, we then obtain:
Z t →41
= r (N )
= 5.75%
©2009 Razor Risk Technologies Page 80 of 373
Razor Financial Principals
Linear Zero
It is another method to extrapolate the zero rates Z t →t j for some t j < t (1) and
t j > t ( N ) . This method works as follows:
(1)
For t j < t , we assume Z t →t j lies on the straight line produced by the two
( ) ( )
points t (1) , r (1) and t ( 2 ) , r ( 2 ) . Mathematically, Z t →t j can be written as:
r (2 ) − r (1)
Z t →t j = r (1) +
t (2 ) − t (1)
(
⋅ t j − t (1) )
For t j > t ( N ) , we assume Z t →t j lies on the straight line produced by the two
( ) ( )
points t ( N −1) , r ( N −1) and t ( N ) , r ( N ) . Mathematically, Z t →t j can be written as:
r ( N ) − r ( N −1)
Z t →t j = r ( N −1) +
t ( N ) − t ( N −1)
(
⋅ t j − t ( N −1) )
Example:
Given the 3-month zero rate is 6.01% and 6-month zero rate is 6.11%. Calculate
the 1-month zero rate using linear zero.
Answer:
r (1) = 0.0601
3
t (1) =
12
r (2 ) = 0.0611
6
t (2 ) =
12
1
Since t j = < t (1) , we use linear zero formula to extrapolate Z 1 :
12 t→
12
Z 1
t→
12
0.0611 − 0.0601 1 3
= 0.0601 + ⋅ −
6 3
− 12 12
12 12
= 5.94%
Example:
Given the 39.5-year zero rate is 5.75% and 40-year zero rate is 5.35%. Calculate
the 41-year zero rate using linear zero.
Answer:
r ( N −1) = 0.0575
t ( N −1) = 39.5
r ( N ) = 0.0535
t ( N ) = 40
Since t j = 41 > t ( N ) , we use linear zero formula to extrapolate Z t →41 :
Z t →41
0.0535 − 0.0575
= 0.0575 + ⋅ (41 − 39.5)
40 − 39.5
= 4.55%
r ( 2 ) − r (1)
D (t , t j ) = r (1) + (2 )
t −t
(
(1) ⋅ t j − t
(1)
)
and
for t j > t ( N )
r ( N ) − r ( N −1)
D (t , t j ) = r ( N −1) +
t ( N ) − t ( N −1)
(
⋅ t j − t ( N −1) )
Example:
Given the 3-month discount factor is 0.9850 and the 6-month discount factor is
0.9698, calculate the 1-month discount factor using linear discount factor
method.
Answer:
r (1) = 0.9850
3
t (1) =
12
r (2 ) = 0.9698
6
t (2 ) =
12
1
Since t j = < t (1) , we use linear discount factor formula to extrapolate
12
1
D t , :
12
1
D t ,
12
©2009 Razor Risk Technologies Page 82 of 373
Razor Financial Principals
0.9698 − 0.9850 1 3
= 0.9850 + ⋅ −
6 3
− 12 12
12 12
= 0.9951
Example:
Given the 39.5-year discount factor is 0.1062 and the 40-year discount factor is
0.1032, calculate the 41-year discount factor using linear discount factor
method.
Answer:
r ( N −1) = 0.1062
t ( N −1) = 39.5
r ( N ) = 0.1032
t ( N ) = 40
Since t j = 41 > t ( N ) , we use linear discount factor formula to extrapolate
D(t ,41) :
D(t ,41)
0.1032 − 0.1062
= 0.1062 + ⋅ (41 − 39.5)
40 − 39.5
= 0.09720
Linear Zero-Zero
Linear zero-zero is an extrapolation method to extrapolate zero rate for some
t j < t (1) . This method assumes the zero rate r0 at time 0 ( t 0 )is 0 and all the
zero rates Z t ←t j for some time t 0 < t j < t (1) will lie on the straight line of the
( )
two points (t 0 , r0 ) and t (1) , r (1) . Note that (t 0 , r0 ) = (0,0 ) by assumption.
r (1)
Z t →t j = ×tj
t (1)
Example:
The 3-month zero rate is 6.01%. Find the 1-month zero rate using linear zero-
zero method.
Answer:
r (1) = 0.0601
3
t (1) =
12
1
Since t 1 = < t (1) , we need to extrapolate the data to find Z 1 . Using
12 t→
12 12
linear-zero-zero formula:
Z 1
t→
12
0.0601 1
= ×
3 12
12
= 2.00%
At the asset level the cash deposit allows rate inputs to be specified as zeros.
The modes available are:
Simple Zero
Compounded Zero
Continously-Compounded Zero
Cash Deposit
These are similar to the input zero methods at the curve level which are
explained below. Hence a set of cash deposit assets with a zero method of
continuously-compounded selected, is in affect a zero curve with no
bootstrapping required.
Simple Zero
Let us denote the annualised simple zero by Z tS→t . The relationship between
1
P(t , t1 ) = F = F ⋅ D (t , t1 )
1
d t →t1
1 + Z t→t1 ⋅
S
D
and the conversions between D(t ,t1 ) and Z t →t1 can be stated as:
−1
d t →t1 1 D
D(t , t1 ) = 1 + Z tS→t ⋅ and Z tS→t = − 1
D D(t , t1 ) d t →t1
1 1
Compounded Zero
For compounded zero, users can specify different compounding frequencies
(number of times compounding is performed in a year). For example, annual
compounding is represented by setting the frequency to “1” (once a year),
semi-annual to “2”, quarter to “4”, etc. We provide the following derivations
for different compounding frequency cases.
Annual Compounding
( )
d t →t1
P(t , t1 ) = F 1 + Z tC→t1 = F ⋅ D(t , t1 )
−
D
and the conversions between the discount factor and the zero rate are
( )
dt →t
− 1
Semi-Annual Compounding
The relationship between the present and future values is given by
2 d t →t1
−
ZC D
P(t , t1 ) = F 1 + t→t1 = F ⋅ D (t , t1 )
2
and the conversions between the discount factor and the zero rate are
2 d t →t
− 1
D
Z tC→t
D(t , t1 ) = 1 + and Z tC→t = 2 D(t , t1 ) − 1
D
1 −
2 d t →t1
2 1
Z C
D(t , t1 ) = 1 + t→t1 and Z tC→t = K D(t , t1 ) − 1
D
−
Kd t →t1
K 1
Continuously-Compounded Zero
For continuous-compounding, we have the following relationships
d t →t1
P(t , t1 ) = F exp − Z te→t1 ⋅ = F ⋅ D(t , t1 )
D
d t →t1
D(t , t1 ) = exp − Z te→t1 ⋅ log(D(t , t1 ))
D
and Z te→t = −
D
1
d t →t1
Cash-Deposit
d t →t1 d t →t1
When ≤ 1 , it is treated as a simple zero, and when > 1 , it is
D D
treated as an annually-compounded zero.
factors rs (c, N )
1+
c
8 Linear Interpolation r j − ri
rα = ri + (tα − ti )
t j − ti
Contracts Available
Bootstrapping Method
N −1
D(t , N ) = 1 − ∑ Couponi ⋅ D(t , i ) / (1 + Coupon N )
i =1
where Couponi = rs ⋅ DCFi , and
DCFi is the year count fraction for period i based on day count
convention of the swap.
In addition, when linearly interpolating between two swap rates, the year count
fractions (instead of number of calendar days) should be used:
r j − ri
rα = ri + (DCFα − DCFi )
DCF j − DCFi
where DCF i is the year count fraction from t 0 to t i
If the underlying term to maturity for which a volatility is required does not
match a known one on the surface, then linear interpolation is employed
between volatilities found from term structures for known underlying terms to
maturity, which span the underlying term to maturity of the option for which
an implied volatility is required. Otherwise straight line extrapolation is used
beyond either edge of the surface.
The interest rate volatility surface as described above is currently
implemented and used by the swaption and bond option pricing routines.
All other interest rate option products (including caps and floors) currently use
the volatility surface defined by the option expiry date and delta, as described
below. Currently only the volatility for the ATM delta is used.
6.8.3 FX Volatility
Treatment of FX volatilities is as above for Equity volatility.
Parametric stochastic volatility (Heston), construction from risk reversal and
broker strangle spreads for 10% and 25% deltas and ATM volatility are not
currently supported.
Currently within each of the fx option models, only a single ATM volatility can
be used as provided specific for that trade or product by configuration.
6.9 Calendars
There are various named calendars in RAZOR. Calendars contain date events,
which define events such as holidays. There should be a calendar defined for
every currency code, as these are used in the date roll calculations.
Schema Diagram
FinMark Schema
Name: Type Occurs Size Description
An identifier that allows us to run
scheme
1..1 20 multiple trade sets in the one
string
database.
deal
0..n The deal
Deal
ccyPair
0..n
CurrencyPair
party
0..n
Party
whatIfDealScenarios
0..1
WhatIfDealScenarios
Deal Schema
Name: Type Occurs Size Description
sysId
1..1
int
dealHeaderDealId
1..1 20 The unique identifier for the deal
string
This is used to identify the type of
dealHeaderDealType
1..1 20 structure for structured deals – e.g.
string
CONDOR
dealHeaderDealDate
1..1 The date the deal was traded
date
dealHeaderStatus
1..1 20 The current status of the deal
string
trade
0..n
Trade
Trade Schema
Name: Type Occurs Size Description
sysId
1..1
int
tradeHeaderTradeId This identifier uniquely identifies the
1..1 30
string trade
tradeHeaderTradeDate The date that this particular trade
1..1
date was done
Trade Schema
Name: Type Occurs Size Description
This code identifies the trade type
tradeHeaderTradeType
1..1 20 and is used to map to the
string
appropriate pricing model
This identifier provides the
tradeHeaderCreditLine
0..1 20 capability to link trades with specific
string
lines of credit
tradeHeaderDealer Identifies the dealer who did the
0..1 30
string trade
tradeHeaderCounterparty Identifies the counterparty of the
0..1 20
string trade
tradeHeaderInternalUnit Identifies the internal unit who is
1..1 20
string responsible for the trade
tradeHeaderBuySell Indicates whether the internal unit is
1..1 4
string long or short the trade
tradeHeaderStatus Indicates the current status of this
1..1 20
string particular trade
guarantees Guarantees provide information
0..1
Guarantees about any guarantors in the deal
collateralAgreementId ID of the collateral agreement if the
0..1 20
string trade has been lodged against
Defines a schedule for allowing the
rightToBreakSchedule
0..1 bank to break the contract
RightToBreakSchedule
extensions
extensions Extensions allow clients to extend
0..1
TradeExtensions the trade with additional data
A product that can representing
productGenericInterestRate
1..1 generic interest rate payments or
GenericInterestRate
cashflows
productCashPayment A product that can represent single
1..1
CashPayment cash payments
productCreditLine A product that represents a line of
1..1
CreditLine credit
productLetterOfCredit A product that represents a letter of
1..1
LetterOfCredit credit
productFxleg
1..1 A product that represents an FX deal
fpmlFXLeg
productFxSimpleOption A product that represents an FX
1..1
fpmlFXOptionLeg Vanilla Option deal
productFxBarrierOption A product that represents an FX
1..1
fpmlFXBarrierOption Barrier Option deal
productFxDigitalOption A product that represents an FX
1..1
fpmlFXDigitalOption Digital Option deal
©2009 Razor Risk Technologies Page 96 of 373
Razor Financial Principals
Trade Schema
Name: Type Occurs Size Description
productFxAverageRateOption A product that represents an FX
1..1
fpmlFXAverageRateOption Average Rate deal
A product that represents an FX
productFxOption
1..1 vanilla option or a vanilla option
FXOption
with single or double barriers
productSwap A product that represents an interest
1..1
fpmlSwap rate swap
productFra A product that represents an interest
1..1
fpmlFRA rate FRA
productEquityOption A product that represents an equity
1..1
fpmlEquityOption option
productCapFloor A product that represents an interest
1..1
fpmlCapFloor rate cap or floor
productSwaption A product that represents an interest
1..1
fpmlSwaption rate
productBondOption A product that represents a bond
1..1
BondOption option
productEquity product that represents a held or
1..1
Equity forward equity
productCreditDefaultSwap A product that represents an credit
1..1
fpmlCreditDefaultSwap default swap
productBond
1..1 A product that represents a bond
fpmlBond
otherPartyPayment 0..n
Any additional payments made to
OtherPartyPayment the counterparty
7.5 Transitioning
7.5.1 Market Transitioning
The pricing adapter for a trade may need to transition certain rates between
different node dates. An example for when this needs to occur is on swaps. If a
rate set occurs between two node dates, the swap pricing model linear
interpolates between the rate that occurred on the last node date and the rate
that occurs on the current node date to determine the implied rate occurring
at the rate set date.
Obviously, this means that the pricing model has to have the information
available for the relevant rates on previous node dates. The pricing adapter
achieves this through the use of the market transition cache parameter on the
pricing request structure. The pricing adapter is responsible for allocating an
area of memory that it can use as a cache, in order to keep any historical
market information around that it needs to fulfil pricing requests.
b. All other fixings which occur in the future will be forward forecast from
today’s market, with each flows observation date set to today’s date. They are
not marked as fixed. The rate is set to the forward simple rate from the start
date t si to the end date t ei .
c. For any previous fixings which have not been observed as yet, then it is set
to an observation from today’s market, and marked as fixed. It is set to the
( )
forward simple rate from the start date t 0 + t si − t f i to the end date
( )
t 0 + t ei − t f i . This represents the best estimate that can be made from today
as to what the fixing should have been.
The set of floating flow cashflows at a forward time node
The market scenario is simulated and built with respect to the time node date
t j . All floating rate flows which are already fixed are skipped. Those floating
flow rates which are not already fixed are processed as outlined in the cases
above (except t 0 is replaced with t j ), but with one additional case to be
handled.
For any previous fixings which have been previously observed as forecast in the
future, but for which the fixing date now lays between last time node and the
current time node, then the rate will be calculated as follows. It is the rate
which is linearly interpolated between the last observed rate, and the forecast
observed rate from the current time node – ie the forward simple rate from the
( ) ( )
start date t j + t si − t f i to the end date t j + t ei − t f i . The observed date is set
to the fixing date t f i , and the cashflow is market as fixed.
fpmlInterestRateStream Schema
Name: Type Occurs Size Description
payerPartyReference
1..1 The identifier of the paying party
fpmlPartyReference
receiverPartyReference
1..1 The identifier of the receiving party
fpmlPartyReference
calculationPeriodDates Indicates the schedule that the
1..1
fpmlCalculationPeriodDates floating rate calculations occurs
paymentDates Indicates the schedule that the date
1..1
fpmlPaymentDates payments occur
resetDates This structure indicates when
1..1
fpmlResetDates floating rate resets occur
calculationPeriodAmount This structure indicates how the
1..1
fpmlCalculationPeriodAmount amounts to be paid is determined
This structure indicates how the
stubCalculationPeriodAmount
0..1 stub period amounts to be paid are
fpmlStubCalculationPeriodAmount
determined
principalExchanges Determines if and when the
0..1
fpmlPrincipalExchanges exchange
cashflows This type gives us the fixed cash
0..1
fpmlCashflows flows represented by the product
fpmlCalculationPeriodDates Schema
Name: Type Occurs Size Description
effectiveDate
1..1
fpmlUnadjustedDate
terminationDate
1..1
fpmlUnadjustedDate
calculationPeriodDatesAdjustments
1..1
fpmlDateAdjustments
calculationPeriodFrequency
0..1
fpmlCalculationPeriodFrequency
id
1..1 50
string
fpmlPaymentDates Schema
Name: Type Occurs Size Description
calculationPeriodDatesReference
0..1
fpmlRef
paymentFrequency
1..1
fpmlTenor
payRelativeTo
0..1
fpmlDateRelativeTo
paymentDatesAdjustments
0..1
fpmlDateAdjustments
fpmlResetDates Schema
Name: Type Occurs Size Description
calculationPeriodDatesReference
1..1
fpmlRef
resetRelativeTo
1..1
fpmlDateRelativeTo
fixingDates
1..1
fpmlRelativeDateOffset
resetFrequency
1..1
fpmlTenor
resetDatesAdjustments
1..1
fpmlDateAdjustments
fpmlCalculationPeriodAmount Schema
Name: Type Occurs Size Description
calculation
1..1
fpmlCalculation
knownAmountSchedule
1..1
fpmlAmountSchedule
fpmlStubCalculationPeriodAmount Schema
Name: Type Occurs Size Description
calculationPeriodDatesReference
1..1
fpmlRef
initialStub
0..1
fpmlStub
fpmlStubCalculationPeriodAmount Schema
Name: Type Occurs Size Description
finalStub
0..1
fpmlStub
The fpmlCashflows type gives us the fixed cash flows represented by the
product.
fpmlCashflows Schema
Name: Type Occurs Size Description
Indicates whether the cashflows could
cashflowsMatchParameters be regenerated from the parametric
0..1
boolean information without any loss of
information
principalExchange The initial, intermediate and final
0..n
fpmlPrincipalExchange principal exchange amounts
The adjusted payment date and
paymentCalculationPeriod associated calculation period
0..n
fpmlPaymentCalculationPeriod parameters required to calculate the
payment amount
The fpmlPrincipalExchanges structure determines if and when the exchange of
principal is done. Note that any exchange of principal could have settlement
risk implications.
<currency>AUD</currency>
<amount>1000000.000000</amount>
</notionalAmount>
<floatingRateDefinition/>
</calculationPeriod>
</paymentCalculationPeriod>
<paymentCalculationPeriod>
<adjustedPaymentDate>2002-12-30</adjustedPaymentDate>
<calculationPeriod>
<adjustedStartDate>2002-12-30</adjustedStartDate>
<adjustedEndDate>2003-03-30</adjustedEndDate>
<notionalAmount>
<currency>AUD</currency>
<amount>1000000.000000</amount>
</notionalAmount>
<floatingRateDefinition/>
</calculationPeriod>
</paymentCalculationPeriod>
<paymentCalculationPeriod>
<adjustedPaymentDate>2003-03-30</adjustedPaymentDate>
<calculationPeriod>
<adjustedStartDate>2003-03-30</adjustedStartDate>
<adjustedEndDate>2003-06-30</adjustedEndDate>
<notionalAmount>
<currency>AUD</currency>
<amount>1000000.000000</amount>
</notionalAmount>
<floatingRateDefinition/>
</calculationPeriod>
</paymentCalculationPeriod>
<paymentCalculationPeriod>
<adjustedPaymentDate>2003-06-30</adjustedPaymentDate>
<calculationPeriod>
<adjustedStartDate>2003-06-30</adjustedStartDate>
<adjustedEndDate>2003-09-30</adjustedEndDate>
<notionalAmount>
<currency>AUD</currency>
<amount>1000000.000000</amount>
</notionalAmount>
<floatingRateDefinition/>
</calculationPeriod>
</paymentCalculationPeriod>
<paymentCalculationPeriod>
<adjustedPaymentDate>2003-09-30</adjustedPaymentDate>
<fixedPaymentAmount>
<currency>AUD</currency>
<amount>1000000.000000</amount>
</fixedPaymentAmount>
</paymentCalculationPeriod>
</cashflows>
</interestRateStream>
</genericInterestRate>
9.1 FX Forwards
9.1.1 Description of Instrument
Spot and Forward FX transactions involve the exchange of cash in one currency
for cash of another currency. With a spot FX transaction the money is
exchanged on the “spot” date, which is determined by the market convention
for the two currencies being exchanged. Normally the convention is that the
spot date is two business, or “good”, days forward from today, and must be
business days in each currency’s home country.
An FX Swap is a combination of two FX Forwards; one being the reverse of the
other, but being forward in time. This is represented in RAZOR as being a deal
containing the two FX Forward products.
FX Forward Example
<fxleg>
<exchangedCurrency1>
<payerPartyReference href = "ITE"/>
<receiverPartyReference href = "BAN"/>
<paymentAmount>
<currency>AUD</currency>
<amount>10000000</amount>
Razor Financial Principals
</paymentAmount>
</exchangedCurrency1>
<exchangedCurrency2>
<payerPartyReference href = "BAN"/>
<receiverPartyReference href = "ITE"/>
<paymentAmount>
<currency>USD</currency>
<amount>5600000</amount>
</paymentAmount>
</exchangedCurrency2>
<valueDate>2003-12-21</valueDate>
<exchangeRate>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<rate>0.5600</rate>
</exchangeRate>
</fxleg>
9.1.3 Pricing
Let
C ccy1 = the cash flow denominated in currency ccy1
XML Schema
fpmlFXOptionLeg Schema
Name: Type Occurs Size Description
productType
1..1 50 Indicates the type of product
string
buyerPartyReference
1..1
fpmlPartyReference
sellerPartyReference
1..1
fpmlPartyReference
expiryDateTimeExpiryDate
1..1
date
expiryDateTimeExpiryTime
1..1
time
expiryDateTimeCutName
0..1
string
exerciseStyle The manner in which the option can be
1..1
string exercised
fpmlFXOptionLeg Schema
Name: Type Occurs Size Description
fxOptionPremium Premium amount or premium installment
0..n
fpmlFXOptionPremium amount for an option.
valueDate The date on which both currencies traded
1..1
date will settle
This optional element is only used if an
option has been specified at execution
cashSettlementTerms
0..1 time to be settled into a single cash
fpmlFXCashSettlement
payment. This would be used for a non-
deliverable option
putCurrencyAmountCurrency The currency in which an amount is
1..1
string denominated
putCurrencyAmountAmount
1..1 The monetary quantity in currency units
decimal
callCurrencyAmountCurrency The currency in which an amount is
1..1
string denominated
callCurrencyAmountAmount
1..1 The monetary quantity in currency units
decimal
fxStrikePriceRate
1..1
decimal
fxStrikePriceStrikeQuoteBasis The method by which the strike rate is
1..1
string quoted
quotedAs
1..1 Describes how the option was quoted
fpmlQuotedAs
<currency>USD</currency>
<amount>550000.000000</amount>
</putCurrencyAmount>
<callCurrencyAmount>
<currency>AUD</currency>
<amount>1000000.000000</amount>
</callCurrencyAmount>
<fxStrikePrice>
<rate>0.550000</rate>
<strikeQuoteBasis>PUTCURRENCYPERCALLCURRENCY</strikeQuoteBasis>
</fxStrikePrice>
</fxSimpleOption>
9.2.3 Pricing
When valuing currency options we will call one currency involved in the option
contract the foreign currency. This currency is the denominator in the quote
convention for the currency pair. The other currency, the numerator in the
currency pair’s quote convention, we will call the domestic currency. Our
valuation will then be pricing in terms of the domestic currency. We are going
to assume that the exchange rate follows a geometric Brownian motion
process.
Let
S = the exchange rate
r = the annualised domestic rate, continuously compounded
r f = the annualised foreign interest rate, continuously compounded
σ = the exchange rate volatility
X = the strike rate
Tx = the time from today to expiry, annualised
Td = the time from spot to delivery, annualised
( r − r f )Td
F0 = S 0 e
N is the cumulative normal distribution function.
F σ Tx F σ Tx
2 2
ln 0 + ln 0 −
d1 = d2 =
X 2 X 2
σ Tx σ Tx
The European call price is given by
c = e − rTd ( F0 N ( d1 ) − XN ( d 2 ))
The European put price is given by
p = e − rTd ( XN (− d 2 ) − F0 N ( − d1 ))
fpmlFXBarrierOption Schema
Name: Type Occurs Size Description
productType
1..1 50 Indicates the type of product
string
buyerPartyReference
1..1
fpmlPartyReference
sellerPartyReference
1..1
fpmlPartyReference
expiryDateTimeExpiryDate
1..1
date
expiryDateTimeExpiryTime
1..1
time
expiryDateTimeCutName
0..1
string
exerciseStyle The manner in which the option can be
1..1
string exercised
fxOptionPremium Premium amount or premium instalment
0..n
fpmlFXOptionPremium amount for an option
valueDate The date on which both currencies traded
1..1
date will settle
This optional element is only used if an
option has been specified at execution
cashSettlementTerms
0..1 time to be settled into a single cash
fpmlFXCashSettlement
payment. This would be used for a non-
deliverable option.
putCurrencyAmountCurrency The currency in which an amount is
1..1
string denominated
putCurrencyAmountAmount
1..1 The monetary quantity in currency units
decimal
callCurrencyAmountCurrency 1..1 The currency in which an amount is
fpmlFXBarrierOption Schema
Name: Type Occurs Size Description
string denominated
callCurrencyAmountAmount
1..1 The monetary quantity in currency units
decimal
fxStrikePriceRate
1..1
decimal
fxStrikePriceStrikeQuoteBasis The method by which the strike rate is
1..1
string quoted
quotedAs
0..1 Describes how the option was quoted
fpmlQuotedAs
An optional element used for FX forwards
and certain types of FX OTC options. For
deals consummated in the FX Forwards
Market, this represents the current
market rate for a particular currency
spotRate
0..1 pair. For barrier and digital/binary
decimal
options, it can be useful to include the
spot rate at the time the option was
executed to make it easier to know
whether the option needs to move ”up”
or ”down” to be triggered.
Information about a barrier rate in a
fxBarrier
0..n Barrier Option - specifying the exact
fpmlFXBarrier
criteria for a trigger event to occur.
The amount of currency which becomes
triggerPayout
0..1 payable if and when a trigger event
fpmlFXOptionPayout
occurs
fpmlFXBarrier Schema
Name: Type Occurs Size Description
This specifies whether the option
fxBarrierType becomes effective (”knock-in”) or is
0..1
string annulled (”knock- out”) when the
respective trigger event occurs.
quotedCurrencyPairCurrency1 The first currency specified when a pair
1..1
string of currencies is to be evaluated
quotedCurrencyPairCurrency2 The second currency specified when a
1..1
string pair of currencies is to be evaluated
quotedCurrencyPairQuoteBasis The method by which the exchange rate
1..1
string is quoted
The market rate is observed relative to
triggerRate
1..1 the trigger rate, and if it is found to be
decimal
on the predefined side of (above or
fpmlFXBarrier Schema
Name: Type Occurs Size Description
below) the trigger rate, a trigger event
is deemed to have occurred
informationSource
0..n
fpmlInformationSource
The start of the period over which
observationStartDate
0..1 observations are made to determine
date
whether a trigger has occurred
The end of the period over which
observationEndDate
0..1 observations are made to determine
date
whether a trigger event has occurred
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>0.650000</triggerRate>
<informationSource>
<rateSource>Reuters</rateSource>
<rateSourcePage>AUD=</rateSourcePage>
</informationSource>
</fxBarrier>
</fxBarrierOption>
9.3.3 Pricing
The equations below are derived from Reiner and Rubinstein [1991a] equations
for pricing standard barrier options. The implementation in RAZOR identifies
two different time periods; the time from the spot date to the delivery date of
the underlying product, which is applied to the exchange and strike rate
components in the pricing model, and the time from the pricing date to option
expiry, which is applied to the volatility components.
Let
ln( S / X ) ln( S / H )
x1 = + (1 + µ )σ T x2 = + (1 + µ )σ T
σ T σ T
ln( H 2 / SX ) ln( H / S )
y1 = + (1 + µ )σ T y2 = + (1 + µ )σ T
σ T σ T
ln( H / S ) b −σ 2 / 2 2r
z= + λσ T µ= λ = µ2 +
σ T σ 2
σ2
A = φSe ( b − r )T N (φx1 ) − φXe − rT N (φx1 − φσ T )
c di ( X < H ) = A − B + D + E ,η = 1, φ = 1
cui ( X > H ) = A + E ,η = −1, φ = 1
cui ( X < H ) = B − C + D + E ,η = −1, φ = 1
p di ( X > H ) = B − C + D + E ,η = 1, φ = −1
p di ( X < H ) = A + E ,η = 1, φ = −1
pui ( X > H ) = A − B + D + E ,η = −1, φ = −1
pui ( X < H ) = C + E ,η = −1, φ = −1
c do ( X > H ) = A − C + F ,η = 1, φ = 1
c do ( X < H ) = B − D + F ,η = 1, φ = 1
cuo ( X > H ) = F ,η = −1, φ = 1
cuo ( X < H ) = A − B + C − D + F ,η = −1, φ = 1
p do ( X > H ) = A − B + C − D + F ,η = 1, φ = −1
p do ( X < H ) = F ,η = 1, φ = −1
p uo ( X > H ) = B − D + F ,η = −1, φ = −1
Rebates
An optional rebate may be paid out the barrier is hit (for a knock-out
option) or not hitting the barrier (for a knock-in option.
Rebates in Razor are cash rebates factored into the intrinsic value of the
option as either a digital no-touch (knock-in) or a digital (binary) one-
touch (knock-out). Rebates are implemented for knock-ins that do not
knock-in at expiry as a digital no-touch paid in units of CCY2. Rebates for
options that knock out prior to expiry are implemented as a digital one-
touch paid in units of CCY2.
If the option had been knocked-out during it’s lifetime a rebate can be
specified which is paid out at hit. The payout term is equivalent to a
single barrier digital one-touch at hit
<expiryDate>2005-03-04</expiryDate>
<hourMinuteTime>10:00</hourMinuteTime>
</expiryDateTime>
<exerciseStyle>EUROPEAN</exerciseStyle>
<fxOptionPremium>
<payerPartyReference href="ITE" />
<receiverPartyReference href="BAN" />
<premiumAmount type="Money">
<currency>USD</currency>
<amount>192765.35</amount>
</premiumAmount>
<premiumSettlementDate>2005-01-07</premiumSettlementDate>
</fxOptionPremium>
<valueDate>2002-03-06</valueDate>
<putCurrencyAmount>
<currency>JPY</currency>
<amount>2500000000</amount>
</putCurrencyAmount>
<callCurrencyAmount>
<currency>USD</currency>
<amount>23798191.34</amount>
</callCurrencyAmount>
<fxStrikePrice>
<rate>105.05</rate>
<strikeQuoteBasis>PUTCURRENCYPERCALLCURRENCY</strikeQuoteBasis>
</fxStrikePrice>
<spotRate>106</spotRate>
<fxBarrier>
<fxBarrierType>KNOCKOUT</fxBarrierType>
<quotedCurrencyPair>
<currency1>USD</currency1>
<currency2>JPY</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>102</triggerRate>
<informationSource>
<rateSource>Reuters</rateSource>
<rateSourcePage>JPY=</rateSourcePage>
</informationSource>
</fxBarrier>
<fxBarrier>
<fxBarrierType>KNOCKOUT</fxBarrierType>
<quotedCurrencyPair>
<currency1>USD</currency1>
<currency2>JPY</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>115</triggerRate>
<informationSource>
<rateSource>Reuters</rateSource>
<rateSourcePage>JPY=</rateSourcePage>
</informationSource>
</fxBarrier>
</fxBarrierOption>
9.4.3 Pricing
The pricing model uses Ikeda and Kunitomo (1992) formula. The value of a call
double barrier can be expressed as follows:
2(b − δ 2 + n(δ1 − δ 2 ))
µ3 = +1
σ2
F = Ueδ1T
∞ Un L Ln+1
c = Se(b − r )T ∑ n=−∞ ( n ) µ1 ( ) µ2 ( N ( d1 ) − N ( d 2 )) − ( n ) µ3 ( N (d3 ) − N ( d 4 )) −
L S U S
n +1
U µ1 − 2 L µ2
n
L µ −2
∞ ( n ) ( ) ( N ( d1 − σ T ) − N (d 2 − σ T )) − ( n ) 3
Xe ∑ n =−∞ L
− rT
S U S
( N ( d − σ T ) − N (d − σ T ))
3 4
The value of a double barrier put option can be expressed as follows:
Notation:
Case 1:
(L − K )
1. C '( K , L,U ) = C ( L, L,U ) + ( C ( L, L,U ) + P(U , L,U ) )
(U − L)
(K − U )
2. P '( K , L,U ) = P(U , L,U ) + ( C ( L, L,U ) + P(U , L,U ) )
(U − L)
where K > U. If K < L then value is zero.
Case 2:
Where the prices are expressed in units of foreign currency per domestic
currency,
e.g. 106.92 JPY per USD,
option will have an exposure that changes with the exchange rate between the
payoff currency and the valuation currency.
fpmlFXDigitalOption Schema
Name: Type Occurs Size Description
productType
1..1 50 Indicates the type of product
string
buyerPartyReference
1..1
fpmlPartyReference
sellerPartyReference
1..1
fpmlPartyReference
expiryDateTimeExpiryDate
1..1
date
expiryDateTimeExpiryTime
1..1
time
expiryDateTimeCutName
0..1
string
fxOptionPremium Premium amount or premium instalment
0..n
fpmlFXOptionPremium amount for an option
valueDate The date on which both currencies
1..1
date traded will settle
quotedCurrencyPairCurrency1 The first currency specified when a pair
1..1
string of currencies is to be evaluated
quotedCurrencyPairCurrency2 The second currency specified when a
1..1
string pair of currencies is to be evaluated
quotedCurrencyPairQuoteBasis The method by which the exchange rate
1..1
string is quoted
An optional element used for FX
forwards and certain types of FX OTC
options. For deals consummated in the
FX Forwards Market, this represents the
current market rate for a particular
spotRate
0..1 currency pair. For barrier and
decimal
digital/binary options, it can be useful
to include the spot rate at the time the
option was executed to make it easier
to know whether the option needs to
move ”up” or ”down” to be triggered.
A European trigger occurs if the trigger
fxEuropeanTrigger criteria are met, but these are valid
0..n
fpmlFXEuropeanTrigger (and an observation is made) only at the
maturity of the option
fpmlFXDigitalOption Schema
Name: Type Occurs Size Description
An American trigger occurs if the trigger
fxAmericanTrigger
0..n criteria are met at any time from the
fpmlFXAmericanTrigger
initiation to the maturity of the option
The amount of currency which becomes
triggerPayout
1..1 payable if and when a trigger event
fpmlFXOptionPayout
occurs
<amount>10000</amount>
<payoutStyle>IMMEDIATE</payoutStyle>
</triggerPayout>
</fxDigitalOption>
9.5.3 Pricing
Let
S = the exchange rate
r = the annualised domestic interest rate, continuously compounded
r f = the annualised foreign interest rate, continuously compounded
σ = the exchange rate volatility
X = the strike rate
Tx = the time from today to expiry, annualised
F σ Tx F σ Tx
2 2
ln 0 + ln 0 _
d1 = d2 =
X 2 X 2
σ Tx σ Tx
The European digital asset price is given by:
d asset = e − rTd F0 N ( d1 )
The European digital cash price is given by:
d cash = e − rTd XN (d 2 )
<expiryDate>2004-01-22</expiryDate>
<expiryTime>1600</expiryTime>
<cutName>AUSY</cutName>
</expiryDateTime>
<valueDate>2004-01-24</valueDate>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<spotRate>0.5500</spotRate>
<fxAmericanTrigger>
<touchCondition>Touch</touchCondition>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>0.7500</triggerRate>
<informationSource>
<rateSource>REUTERS</rateSource>
<rateSourcePage>AUD=</rateSourcePage>
</informationSource>
<observationStartDate>2001-09-14</observationStartDate>
<observationEndDate>2004-01-22</observationEndDate>
</fxAmericanTrigger>
<triggerPayout>
<currency>AUD</currency>
<amount>100000000</amount>
<payoutStyle>DEFERRED</payoutStyle>
</triggerPayout>
</fxDigitalOption>
<currency1>AUD</currency1>
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>0.6000</triggerRate>
<informationSource>
<rateSource>REUTERS</rateSource>
<rateSourcePage>AUD=</rateSourcePage>
</informationSource>
<observationStartDate>2001-09-14</observationStartDate>
<observationEndDate>2004-01-22</observationEndDate>
</fxAmericanTrigger>
<triggerPayout>
<currency>AUD</currency>
<amount>100000000</amount>
<payoutStyle>DEFERRED</payoutStyle>
</triggerPayout>
</fxDigitalOption>
9.6.3 Pricing
Riener and Rubinstein present a set of formulas that can be used to price the
different types of digital barrier options.
ln( S / X ) ln( S / H )
x1 = + ( µ + 1)σ T x2 = + ( µ + 1)σ T
σ T σ T
ln( H 2 / SX ) ln( H / S )
y1 = + ( µ + 1)σ T y2 = + ( µ + 1)σ T
σ T σ T
ln( H / S ) b −σ 2 / 2 2r
z= + λσ T µ= λ = µ2 +
σ T σ2 σ2
A1 = Se (b − r )T N (φx1 )
B1 = Ke − rT N (φx1 − φσ T )
A2 = Se (b − r )T N (φx2 )
B2 = Ke − rT N (φx2 − φσ T )
A3 = Se ( b − r )T ( H / S ) 2 ( µ +1) N (ηy1 )
B3 = Ke − rT ( H / S ) 2 µ N (ηy1 −ησ T )
B4 = K e− rT ( H / S ) 2 µ N (ηy2 − ησ T )
fpmlFXDigitalOption schema
Name: Type Occurs Size Description
productType
1..1 50 Indicates the type of product
string
buyerPartyReference
1..1
fpmlPartyReference
sellerPartyReference
1..1
fpmlPartyReference
fpmlFXDigitalOption schema
Name: Type Occurs Size Description
expiryDateTimeExpiryDate
1..1
date
expiryDateTimeExpiryTime
1..1
time
expiryDateTimeCutName
0..1
string
fxOptionPremium Premium amount or premium instalment
0..n
fpmlFXOptionPremium amount for an option
valueDate The date on which both currencies
1..1
date traded will settle
quotedCurrencyPairCurrency1 The first currency specified when a pair
1..1
string of currencies is to be evaluated
quotedCurrencyPairCurrency2 The second currency specified when a
1..1
string pair of currencies is to be evaluated
quotedCurrencyPairQuoteBasis The method by which the exchange rate
1..1
string is quoted
An optional element used for FX
forwards and certain types of FX OTC
options. For deals consummated in the
FX Forwards Market, this represents the
current market rate for a particular
spotRate
0..1 currency pair. For barrier and
decimal
digital/binary options, it can be useful
to include the spot rate at the time the
option was executed to make it easier
to know whether the option needs to
move ”up” or ”down” to be triggered.
A European trigger occurs if the trigger
fxEuropeanTrigger criteria are met, but these are valid
0..n
fpmlFXEuropeanTrigger (and an observation is made) only at the
maturity of the option
An American trigger occurs if the trigger
fxAmericanTrigger
0..n criteria are met at any time from the
fpmlFXAmericanTrigger
initiation to the maturity of the option
The amount of currency which becomes
triggerPayout
1..1 payable if and when a trigger event
fpmlFXOptionPayout
occurs
<expiryDate>2004-11-26</expiryDate>
<hourMinuteTime>1400</hourMinuteTime>
<businessCenter>AUSY</businessCenter>
<cutName>SYDNEY</cutName>
</expiryDateTime>
<fxOptionPremium>
<payerPartyReference href="ITE"/>
<receiverPartyReference href="BAN"/>
<premiumAmount type="Money">
<currency>AUD</currency>
<amount>78000</amount>
</premiumAmount>
<premiumSettlementDate>2001-11-14</premiumSettlementDate>
</fxOptionPremium>
<valueDate>2004-11-28</valueDate>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<spotRate>0.5580</spotRate>
<fxAmericanTrigger>
<touchCondition>Touch</touchCondition>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>0.5800</triggerRate>
<informationSource>
<rateSource>REUTERS</rateSource>
<rateSourcePage>AUD=</rateSourcePage>
</informationSource>
<observationStartDate>2001-11-12</observationStartDate>
<observationEndDate>2004-11-26</observationEndDate>
</fxAmericanTrigger>
<fxAmericanTrigger>
<touchCondition>Touch</touchCondition>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>USD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>0.5400</triggerRate>
<informationSource>
<rateSource>REUTERS</rateSource>
<rateSourcePage>AUD=</rateSourcePage>
</informationSource>
<observationStartDate>2001-11-12</observationStartDate>
<observationEndDate>2004-11-26</observationEndDate>
</fxAmericanTrigger>
<triggerPayout>
<currency>AUD</currency>
<amount>2000000</amount>
©2009 Razor Risk Technologies Page 125 of 373
Razor Financial Principals
<payoutStyle>IMMEDIATE</payoutStyle>
</triggerPayout>
</fxDigitalOption>
<triggerRate>0.5400</triggerRate>
<informationSource>
<rateSource>REUTERS</rateSource>
<rateSourcePage>AUD=</rateSourcePage>
</informationSource>
<observationStartDate>2001-11-12</observationStartDate>
<observationEndDate>2004-11-26</observationEndDate>
</fxAmericanTrigger>
<triggerPayout>
<currency>AUD</currency>
<amount>2000000</amount>
<payoutStyle>IMMEDIATE</payoutStyle>
</triggerPayout>
</fxDigitalOption>
9.7.3 Pricing
Razor uses the Hui (1996) closed form approximation with 5 terms.
knock-out:
2
H 1 2b 1 2b r
L = ln 2 α = − 2 − 1 β = − 2 − 1 − 2 2
H1 2 σ 4 σ σ
S α i S
α
− ( −1) 1 iπ
2
2π iK H iπ S 2 L
∞ − − β σ 2T
= ∑ 2 1 H2
cknock − out sin L ln H e
iπ
2
L 1
i =1
α2 +
L
knock-in:
2 − 1 iπ − β σ 2T
2
iπ S
β − 2 L ln
α
S ∞ 2 e iπ S
L H1
cknock − out = R ∑ sin ln + 1 −
H1 i =1 iπ iπ
2
L H1 L
−β
L
fpmlFXAverageRateOption Schema
Name: Type Occurs Size Description
productType
1..1 50 Indicates the type of product
string
buyerPartyReference
1..1
fpmlPartyReference
sellerPartyReference
1..1
fpmlPartyReference
expiryDateTimeExpiryDate
1..1
date
expiryDateTimeExpiryTime
1..1
time
expiryDateTimeCutName
0..1
string
exerciseStyle The manner in which the
1..1
string option can be exercised
Premium amount or premium
fxOptionPremium
0..n instalment amount for an
fpmlFXOptionPremium
option
valueDate The date on which both
1..1
date currencies traded will settle
putCurrencyAmountCurrency The currency in which an
1..1
string amount is denominated
putCurrencyAmountAmount The monetary quantity in
1..1
decimal currency units
callCurrencyAmountCurrency The currency in which an
1..1
string amount is denominated
callCurrencyAmountAmount The monetary quantity in
1..1
decimal currency units
fxStrikePriceRate 1..1
fpmlFXAverageRateOption Schema
Name: Type Occurs Size Description
decimal
fxStrikePriceStrikeQuoteBasis The method by which the
1..1
string strike rate is quoted
An optional element used for
FX forwards and certain types
of FX OTC options. For deals
consummated in the FX
Forwards Market, this
represents the current market
rate for a particular currency
spotRate
0..1 pair. For barrier and
decimal
digital/binary options, it can
be useful to include the spot
rate at the time the option was
executed to make it easier to
know whether the option needs
to move ”up” or ”down” to be
triggered.
The ISO code of the currency in
payoutCurrency which a payout (if any) is to be
1..1
string made when a trigger is hit on a
digital or barrier option
The method by which the
averageRateQuoteBasis
1..1 average rate that is being
string
observed is quoted
Specifies the rounding
precision in terms of a number
of decimal places. Note how a
percentage rate rounding of 5
roundingPrecision
0..1 decimal places is expressed as
int
a rounding precision of 7 in the
FpML document since the
percentage is expressed as a
decimal, e.g. 9.876543.
The description of the
payoutFormula
0..1 mathematical computation for
string
how the payout is computed
The primary source for where
the rate observation will occur.
primaryRateSource
1..1 Will typically be either a page
fpmlInformationSource
or a reference bank published
rate.
An alternative, or secondary,
secondaryRateSource source for where the rate
0..1
fpmlInformationSource observation will occur. Will
typically be either a page or a
fpmlFXAverageRateOption Schema
Name: Type Occurs Size Description
reference bank published rate.
The time at which the spot
currency exchange rate will be
fixingTime observed. It is specified as a
1..1
fpmlBusinessCenterTime time in a specific business
centre, e.g. 11:00am London
time.
averageRateObservationSchedule Parametric schedule of rate
1..1
fpmlFXAverageRateObservationSchedule observations
averageRateObservationDate One of more specific rate
0..n
fpmlFXAverageRateObservationDate observation dates
Describes prior rate
observations within average
rate options. Periodically, an
average rate option agreement
will be struck whereby some
rates have already been
observedRates
0..n observed in the past but will
fpmlObservedRates
become part of computation of
the average rate of the option.
This structure provides for
these previously observed rates
to be included in the
description of the trade.
</putCurrencyAmount>
<callCurrencyAmount>
<currency>USD</currency>
<amount>5855000</amount>
</callCurrencyAmount>
<fxStrikePrice>
<rate>0.5855</rate>
<strikeQuoteBasis>CALLCURRENCYPERPUTCURRENCY</strikeQuoteBasis>
</fxStrikePrice>
<payoutCurrency>USD</payoutCurrency>
<averageRateQuoteBasis>CALLCURRENCYPERPUTCURRENCY</averageRateQuote
Basis>
<primaryRateSource>
<rateSource>AUUS</rateSource>
</primaryRateSource>
<fixingTime>
<hourMinuteTime>18:00</hourMinuteTime>
<businessCenter>AUSY</businessCenter>
</fixingTime>
<averageRateObservationDate>
<observationDate>2003-11-01</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-02</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-05</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-06</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-07</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-08</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-09</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-13</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-14</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
©2009 Razor Risk Technologies Page 131 of 373
Razor Financial Principals
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-15</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-16</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-19</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-20</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-21</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-23</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-26</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-27</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-28</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-29</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
<averageRateObservationDate>
<observationDate>2003-11-30</observationDate>
<averageRateWeightingFactor>1</averageRateWeightingFactor>
</averageRateObservationDate>
</fxAverageRateOption>
9.8.3 Pricing
RAZOR uses the Turnbull and Wakeman approximation to price arithmetic
average rate options.
Note that the formula doesn’t work when the cost of carry is zero.
ln(M 2 )
σA = − 2bA
T
ln( M 1 )
bA =
T
ln(S / X ) + (bA + σ A2 / 2)T2
d1 =
σ A T2
d 2 = d1 − σ A T2
ebT − ebτ
M1 =
b(T − τ )
2e ( 2b +σ )T 2e ( 2b +σ )τ 1 e b (T −τ )
2 2
M2 = +
2
−
(b + σ )(2b + σ )(T − τ ) b(T − τ ) 2b + σ
2 2 2 2
b + σ 2
Up-and-in
If the underlying asset value is above the barrier value on the
predetermined future date, then the option turns to the plain-vanilla
option. Otherwise, the option expires without value at maturity.
Up-and-Out
If the underlying asset value is above the barrier value on the
predetermined future date, then the option expires immediately without
any value. Otherwise, the option pays off like a plain-vanilla option at
maturity.
Down-and-in
If the underlying asset value is below the barrier value on the
predetermined future date, then the option turns to the plain-vanilla
option. Otherwise, the option expires without value at maturity.
Down-and-out
If the underlying asset value is below the barrier value on the
predetermined future date, then the option expires immediately without
any value. Otherwise, the option pays off like a plain-vanilla option at
maturity.
Define
Option Payoff
We define:
δ = ±1 for up and down options respectively.
η = ±1 for in and out options respectively.
f (S (T1 ); δ ,η , h ) = η if δ ⋅ S (T1 ) ≥ δ ⋅ h
f (S (T1 ); δ ,η , h ) = 1 − η otherwise.
where
β = ±1 for call and put respectively.
1 + δ
Vt = df (t , T3 ) × − δη ⋅ β ⋅ [F2 Φ (α , γ , Σ1 ) − KΦ(α ' , γ ' , Σ1 )] +
2
1− δ
+ δη ⋅ β ⋅ [F2 Φ (− α , γ , Σ 2 ) − KΦ(− α ' , γ ' , Σ 2 )]
2
where
ln h − m1
α= − v1
v1
ln h − m1
α'=
v1
F v + v2
ln 2 + 1
γ =β⋅
K 2
v1 + v 2
F v + v2
ln 2 − 1
γ '= β ⋅
K 2
v1 + v 2
v1
ρ = −β ⋅
v1 + v 2
v1 = σ 2 (t , T1 )T1
1
m1 = ln F1 − v1
2
v 2 = σ (t , T2 )T2 − v1
2
Σ1
=[1 ρ ; ρ 1] which is a 2 × 2 matrix for the standard 2-D normal
distribution
Σ2
=[1 − ρ ; − ρ 1] which is a 2 × 2 matrix for the standard 2-D normal
distribution.
<amount>1852</amount>
</paymentAmount>
</exchangedCurrency2>
<valueDate>2003-12-21</valueDate>
<exchangeRate>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>XAU</currency2>
<quoteBasis>CURRENCY1PERCURRENCY2</quoteBasis>
</quotedCurrencyPair>
<rate>539.9568</rate>
</exchangeRate>
</fxleg>
10.1.3 Pricing
Let
C ccy = the cash flow denominated in currency ccy
<expiryTime>1200</expiryTime>
</expiryDateTime>
<exerciseStyle>European</exerciseStyle>
<fxOptionPremium>
<payerPartyReference href="ITE"/>
<receiverPartyReference href="BAN"/>
<premiumAmount>
<currency>AUD</currency>
<amount>50000</amount>
</premiumAmount>
<premiumSettlementDate>2003-06-02</premiumSettlementDate>
</fxOptionPremium>
<valueDate>2004-06-02</valueDate>
<putCurrencyAmount>
<currency>AUD</currency>
<amount>1000000</amount>
</putCurrencyAmount>
<callCurrencyAmount>
<currency>XAU</currency>
<amount>1852</amount>
</callCurrencyAmount>
<fxStrikePrice>
<rate>539.9568</rate>
<strikeQuoteBasis>PUTCURRENCYPERCALLCURRENCY</strikeQuoteBasis>
</fxStrikePrice>
</fxSimpleOption>
10.2.3 Pricing
Let
S = the current spot price of the metal
r = the continuously compounded interest rate
r f = the continuously compounded yield on the metal
σ = the price volatility
X = the strike price
Tx = the time from today to expiry, annualised
F σ Tx
2
ln 0 +
d1 =
X 2
σ Tx
F σ Tx
2
ln 0 −
d2 =
X 2
σ Tx
<spotRate>533.6190</spotRate>
<fxBarrier>
<fxBarrierType>KNOCKIN</fxBarrierType>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>XAU</currency2>
<quoteBasis>CURRENCY1PERCURRENCY2</quoteBasis>
</quotedCurrencyPair>
<triggerRate>542.20</triggerRate>
<informationSource>
<rateSource>Reuters</rateSource>
<rateSourcePage>XAU=</rateSourcePage>
</informationSource>
</fxBarrier>
</fxBarrierOption>
10.3.3 Pricing
Let
ln( S / X ) ln( S / H )
x1 = + ( µ + 1)σ T x2 = + ( µ + 1)σ T
σ T σ T
ln( H 2 / SX ) ln( H / S )
y1 = + ( µ + 1)σ T y2 = + ( µ + 1)σ T
σ T σ T
ln( H / S ) b −σ 2 / 2 2r
z= + λσ T µ= λ = µ2 +
σ T σ 2
σ2
A = φSe ( b − r )T N (φx1 ) − φXe − rT N (φx1 − φσ T )
c di ( X < H ) = A − B + D + E ,η = 1, φ = 1
cui ( X > H ) = A + E ,η = −1, φ = 1
p di ( X > H ) = B − C + D + E ,η = 1, φ = −1
p di ( X < H ) = A + E ,η = 1, φ = −1
p do ( X > H ) = A − B + C − D + F ,η = 1, φ = −1
p do ( X < H ) = F ,η = 1, φ = −1
puo ( X > H ) = B − D + F ,η = −1, φ = −1
<valueDate>2002-03-06</valueDate>
<putCurrencyAmount>
<currency>AUD</currency>
<amount>1000000</amount>
</putCurrencyAmount>
<callCurrencyAmount>
<currency>XAU</currency>
<amount>1852</amount>
</callCurrencyAmount>
<fxStrikePrice>
<rate>539.9568</rate>
<strikeQuoteBasis>PUTCURRENCYPERCALLCURRENCY</strikeQuoteBasis>
</fxStrikePrice>
<spotRate>538.9789</spotRate>
<fxBarrier>
<fxBarrierType>KNOCKOUT</fxBarrierType>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>XAU</currency2>
<quoteBasis>CURRENCY1PERCURRENCY2</quoteBasis>
</quotedCurrencyPair>
<triggerRate>541.354</triggerRate>
<informationSource>
<rateSource>Reuters</rateSource>
<rateSourcePage>XAU=</rateSourcePage>
</informationSource>
</fxBarrier>
<fxBarrier>
<fxBarrierType>KNOCKOUT</fxBarrierType>
<quotedCurrencyPair>
<currency1>AUD</currency1>
<currency2>XAU</currency2>
<quoteBasis>CURRENCY1PERCURRENCY2</quoteBasis>
</quotedCurrencyPair>
<triggerRate>534.55</triggerRate>
<informationSource>
<rateSource>Reuters</rateSource>
<rateSourcePage>XAU=</rateSourcePage>
</informationSource>
</fxBarrier>
</fxBarrierOption>
10.4.3 Pricing
The value of a call double barrier can be expressed as follows:
11.1.3 Pricing
The value of a Commodity Forward is calculated as follows:
V = DT N (F − X )
where:
V - commodity payer swap price
F − the projected forward commodity value derived from the underlying
commodity index forward curve.
X − commodity forward contract price.
DT - discount factor to the payment date of contract
N - contract notional.
11.2.2 Definition
ft ( T ) = futures price at time t that matures at time T .
K = contract price.
df ( t1 , t2 ) = discount factor for the period ( t1 , t2 ) .
11.2.3 Valuation
The value of the electricity futures vt at time t is computed as
vt = df ( t , T ) × ( ft (T ) − K ) .
11.3.3 Pricing
Vanilla Put and Call commodity options are priced using the standard Black-
Scholes formula
Let
if the future price F0 of the commodity is provided, then the cost of carry is
zero.
F σ Tx
2
ln 0 +
d1 =
X 2
σ Tx
F σ Tx
2
ln 0 −
d2 =
X 2
σ Tx
The European call price is given by
c = e − rTd ( F0 N ( d1 ) − XN ( d 2 ))
The European put price is given by
p = e − rTd ( XN (− d 2 ) − F0 N (− d1 ))
11.4.3 Pricing
Using the Reiner and Rubinstein Single Barrier Model
Let
ln( S / X ) ln( S / H )
x1 = + ( µ + 1)σ T x2 = + ( µ + 1)σ T
σ T σ T
ln( H 2 / SX ) ln( H / S )
y1 = + ( µ + 1)σ T y2 = + ( µ + 1)σ T
σ T σ T
ln( H / S ) b −σ 2 / 2 2r
z= + λσ T µ= λ = µ2 +
σ T σ 2
σ2
A = φSe ( b − r )T N (φx1 ) − φXe − rT N (φx1 − φσ T )
c di ( X < H ) = A − B + D + E ,η = 1, φ = 1
p di ( X > H ) = B − C + D + E ,η = 1, φ = −1
p di ( X < H ) = A + E ,η = 1, φ = −1
pui ( X > H ) = A − B + D + E ,η = −1, φ = −1
c do ( X > H ) = A − C + F ,η = 1, φ = 1
c do ( X < H ) = B − D + F ,η = 1, φ = 1
p do ( X < H ) = F ,η = 1, φ = −1
</quotedCurrencyPair>
<triggerRate>34</triggerRate>
</fxBarrier>
<fxBarrier>
<fxBarrierType>KNOCKOUT</fxBarrierType>
<quotedCurrencyPair>
<currency1>OILBRENT</currency1>
<currency2>AUD</currency2>
<quoteBasis>CURRENCY2PERCURRENCY1</quoteBasis>
</quotedCurrencyPair>
<triggerRate>27</triggerRate>
</fxBarrier>
</fxBarrierOption>
11.5.3 Pricing
The value of a call double barrier can be expressed as follows:
<commoditySwap>
<productType>Commodity</productType>
<commodityForward>
<commodityPhysicalSettlement>
<firmness>firm</firmness>
</commodityPhysicalSettlement>
<buyerParty href='EUROPE' />
<sellerParty href='DKW' />
<commodityBuyerPrice>
<formulaPrice>
<fixedPrice>
<precision>0</precision>
<currency>USD</currency>
<amount></amount>
<perUom></perUom>
</fixedPrice>
<indexPrice>
<margin>1.00</margin>
©2009 Razor Risk Technologies Page 152 of 373
Razor Financial Principals
<index>WTI</index>
<indexPct>1.0</indexPct>
<indexTenor>
<period>W</period>
<periodMultiplier>1</periodMultiplier>
</indexTenor>
<fixingDateOffset>
<period>M</period>
<periodMultiplier>-2</periodMultiplier>
<businessDayConvention>FOLLOWING</businessDayConvention>
<dayType>Business</dayType>
</fixingDateOffset>
</indexPrice>
<averagingTerms>
<averagingMethod>Unweighted</averagingMethod>
<averagingStartDate opt='y'>
<anchor>FixingDate</anchor>
<adjustment>optional not used</adjustment>
<offset>
<periodMultiplier>-2</periodMultiplier>
<period>D</period>
<businessDayConvention>FOLLOWING</businessDayConvention>
<dayType>Business</dayType>
</offset>
</averagingStartDate>
<averagingEndDate opt='y'>
<anchor>FixingDate</anchor>
<adjustment>optional not used</adjustment>
<offset>
<periodMultiplier>2</periodMultiplier>
<period>D</period>
<businessDayConvention>FOLLOWING</businessDayConvention>
<dayType>Business</dayType>
</offset>
</averagingEndDate>
</averagingTerms>
</formulaPrice>
</commodityBuyerPrice>
<commodityUnits>
<commodity>WTI</commodity>
<totalVolume>60000</totalVolume>
<totalUom>BBL</totalUom>
<volumeAmount>0</volumeAmount>
<volumeUom>X</volumeUom>
<volumePerFreq>TERM</volumePerFreq>
</commodityUnits>
<commodityDeliveryPeriod>
<startDate>2006-07-01</startDate>
<endDate>2006-08-01</endDate>
</commodityDeliveryPeriod>
©2009 Razor Risk Technologies Page 153 of 373
Razor Financial Principals
</commodityForward>
<commodityForward>
<commodityPhysicalSettlement>
<firmness>firm</firmness>
</commodityPhysicalSettlement>
<buyerParty href='DKW' />
<sellerParty href='EUROPE' />
<commodityBuyerPrice>
<formulaPrice>
<fixedPrice>
<precision>0</precision>
<currency>USD</currency>
<amount></amount>
<perUom></perUom>
</fixedPrice>
<indexPrice>
<margin>1.00</margin>
<index>WTI</index>
<indexPct>1.0</indexPct>
<indexTenor>
<period>M</period>
<periodMultiplier>1</periodMultiplier>
</indexTenor>
<fixingDateOffset>
<period>M</period>
<periodMultiplier>-2</periodMultiplier>
<businessDayConvention>FOLLOWING</businessDayConvention>
<dayType>Business</dayType>
</fixingDateOffset>
</indexPrice>
<averagingTerms>
<averagingMethod>Unweighted</averagingMethod>
<averagingStartDate opt='y'>
<anchor>FixingDate</anchor>
<adjustment>optional not used</adjustment>
<offset>
<periodMultiplier>-2</periodMultiplier>
<period>D</period>
<businessDayConvention>FOLLOWING</businessDayConvention>
<dayType>Business</dayType>
</offset>
</averagingStartDate>
<averagingEndDate opt='y'>
<anchor>FixingDate</anchor>
<adjustment>optional not used</adjustment>
<offset>
<periodMultiplier>2</periodMultiplier>
<period>D</period>
<businessDayConvention>FOLLOWING</businessDayConvention>
<dayType>Business</dayType>
©2009 Razor Risk Technologies Page 154 of 373
Razor Financial Principals
</offset>
</averagingEndDate>
</averagingTerms>
</formulaPrice>
</commodityBuyerPrice>
<commodityUnits>
<commodity>WTI</commodity>
<totalVolume>60000</totalVolume>
<totalUom>BBL</totalUom>
<volumeAmount>0</volumeAmount>
<volumeUom>X</volumeUom>
<volumePerFreq>TERM</volumePerFreq>
</commodityUnits>
<commodityDeliveryPeriod>
<startDate>2006-07-01</startDate>
<endDate>2006-08-01</endDate>
</commodityDeliveryPeriod>
</commodityForward>
</commoditySwap>
11.6.3 Pricing
The value of commodity swap contract can be calculated as the sum of
rolling commodity forward contracts values:
N M
V swap = ∑V
i =1
i = ∑ (F
i =1
i − X i )D T i N i ,
where:
Vswap - commodity payer swap price
M - number of legs in commodity swap
Vi - i’th leg commodity forward contract value
Fi − the projected forward commodity value derived from the underlying
commodity index forward curve.
X i − i’th leg commodity forward contract price. This can be the same for
all N legs of commodity swap.
DTi - discount factor to the payment date of i’th contract
N i - i’th contract notional.
Average price commodity swaps also referred to as Asian type contracts
are settled against the average of prices for an underlying commodity
over a period of time.
The value of the average rate commodity swap contract is represented
by:
N M
V swap = ∑
i =1
Vi = ∑ (A
i =1
i − X i )D T i
Ni
Ai =
Ki
∑
j =1
F ti
Ai =
m + Ki
where A is current accumulated average and m is the number of
past observations.
The XML presentation of commodity swaps and forwards allows definition
of the averaging period schedule of each leg.
Average price options, also referred to as Asian options or average rate
options, are settled against the average of prices for an underlying
commodity over a period of time.
Average price options are financially settled upon expiration and cannot
be exercised into the underlying futures contract.
Average price options are financially settled upon expiration and cannot
be exercised into the underlying futures contract.
<commodityOption>
<commodityUnderlying>
<commodityPhysicalSettlement>
<firmness>firm</firmness>
</commodityPhysicalSettlement>
<buyerParty href='NTHAMERICA' />
<sellerParty href='BARCAP' />
<commodityBuyerPrice>
<formulaPrice>
<indexPrice>
<index>BCO</index>
<indexPct>1</indexPct>
<margin>0</margin>
<indexMethod>Defined by delivery</indexMethod>
<fixingDateOffset>
<dayType>Business</dayType>
<periodMultiplier>-1</periodMultiplier>
<period>M</period>
<businessDayConvention>Business</businessDayConvention>
</fixingDateOffset>
</indexPrice>
<fixedPrice>
<precision>0</precision>
<currency>USD</currency>
<amount>0</amount>
<perUom>BBL</perUom>
</fixedPrice>
<averagingTerms>
<averagingMethod>Arithmetic</averagingMethod>
<averagingStartDate>
<offset>
<dayType>Business</dayType>
<periodMultiplier>-2</periodMultiplier>
<period>D</period>
<businessDayConvention>Business</businessDayConvention>
</offset>
<anchor>FixingDate</anchor>
</averagingStartDate>
<averagingEndDate>
<offset>
<dayType>Business</dayType>
<periodMultiplier>2</periodMultiplier>
<period>D</period>
<businessDayConvention>Business</businessDayConvention>
</offset>
<anchor>FixingDate</anchor>
</averagingEndDate>
</averagingTerms>
</formulaPrice>
</commodityBuyerPrice>
©2009 Razor Risk Technologies Page 157 of 373
Razor Financial Principals
<commodityUnits>
<commodity>BCO</commodity>
<totalVolume>100000</totalVolume>
<totalUom>BBL</totalUom>
<volumeAmount>0</volumeAmount>
<volumeUom>X</volumeUom>
<volumePerFreq>TERM</volumePerFreq>
</commodityUnits>
<commodityDeliveryPeriod>
<startDate>2006-06-11</startDate>
<endDate>2006-07-11</endDate>
</commodityDeliveryPeriod>
</commodityUnderlying>
<productType>Commodity</productType>
<buyerParty href='NTHAMERICA' />
<sellerParty href='BARCAP' />
<payoutFormula>AverageRate</payoutFormula>
<optionType>CALL</optionType>
<strike>
<strikePrice>70</strikePrice>
<buyer>NTHAMERICA</buyer>
<seller>BARCAP</seller>
</strike>
</commodityOption>
11.7.3 Pricing
The Levy Approximation formula is used for pricing arithmetic average-
rate commodity option.
C asian ≈ S A N ( d1 ) − Xe − rT2 N ( d 2 )
where
C asian - average-rate commodity call option
X – is the commodity option strike price,
S A - arithmetic average of the known commodity price fixing and
SA =
S
T *b
( )
e ( b − r )T2 − e − rT2 ,
S − representing commodity spot price, r - risk free interest rate, b –
commodity cost of carry rate, T2 -remaining time to option maturity from
valuation date and T – original time to option maturity.
Other components of Levy approximation formula calculated according
to:
1 ln( D)
d1 = − ln( X * ) and d 2 = d 1 − V
V 2
The last expressions use following notations:
T − T2
D = 2 , V = ln(D) − 2[rT2 + ln(S A )] and X * = X −
M
SA .
T T
2 S 2 e ( 2b +σ )T2 − 1 e bT2 − 1
2
M = − .
b + σ 2 2b + σ 2 b
fpmlFRA Schema
Name: Type Occurs Size Description
adjustedEffectiveDate
1..1 The start date of the FRA
fpmlAdjustedDate
adjustedTerminationDate
0..1 The end date of the FRA
fpmlAdjustedDate
paymentDate The date the payment occurs on the
1..1
fpmlUnadjustedDate FRA
fixingDateOffset The date offset that the floating
1..1
fpmlRelativeDateOffset rate is fixed
dayCountFraction The day count fraction used to
0..1 10
string calculate the payment amount
calculationPeriodNumberOfDays 0..1 The number of days in the
int calculation period
notional
1..1 The notional face value of the FRA
fpmlAmount
fixedRate
1..1 The fixed rate of the FRA
double
floatingRateIndex The floating rate index to use as a
0..1 50
string reference rate
indexTenor
1..1 The tenor of the FRA
fpmlTenor
fraDiscounting Whether discounting is applied to
1..1
boolean the FRA
12.1.3 Pricing
There are essentially two formulas for pricing FRAs depending on the market in
which the FRA is traded — the BBA formula which is typically used for FRAs
traded outside of Australia, and the AFMA formula.
Razor Financial Principals
rm = The market benchmark rate, the forward rate derived from the index
curve
rzero = the zero coupon rate from pricing date to settlement
V fra =
1 + rzero d fwd / D
The BBA formula for pricing FRAs is:
( F fra r fra d fra / D ) − ( F fra rm d fra / D )
V fra =
1 + rmat d fra / D
fpmlSwap Schema
fpmlSwap Schema
The fpmlInterestRateStream
swapStream
structure that defines the interest
fpmlInterestRateStream
rate flows for the swap
<swap>
<swapStream>
<payerPartyReference href="ITE" />
<receiverPartyReference href="BAN" />
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate id="">i
<unadjustedDate>2003-05-29</unadjustedDate>
</effectiveDate>
<terminationDate id="">
<unadjustedDate>2004-05-31</unadjustedDate>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</calculationPeriodDatesAdjustments>
<calculationPeriodFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
<rollConvention>IMM</rollConvention>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<paymentFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</paymentFrequency>
<payRelativeTo id="">CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</paymentDatesAdjustments>
</paymentDates>
<resetDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<resetRelativeTo id="">CalculationPeriodStartDate</resetRelativeTo>
<fixingDates>
<periodMultiplier>-2</periodMultiplier>
<period>D</period>
<businessDayConvention>NONE</businessDayConvention>
<dateRelativeTo id="#resetDates0">ResetDate</dateRelativeTo>
</fixingDates>
<resetFrequency>
©2009 Razor Risk Technologies Page 162 of 373
Razor Financial Principals
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</resetFrequency>
<resetDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</resetDatesAdjustments>
</resetDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<initialValue>1000000.000000</initialValue>
<currency>AUD</currency>
</notionalStepSchedule>
</notionalSchedule>
<fixedRateSchedule>
<initialValue>0.000500</initialValue>
</fixedRateSchedule>
<dayCountFraction>ACT/365</dayCountFraction>
</calculation>
</calculationPeriodAmount>
<principalExchanges>
<initialExchange>false</initialExchange>
<finalExchange>false</finalExchange>
<intermediateExchange>false</intermediateExchange>
</principalExchanges>
</swapStream>
<swapStream>
<payerPartyReference href="BAN" />
<receiverPartyReference href="ITE" />
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate id="">
<unadjustedDate>2003-05-29</unadjustedDate>
</effectiveDate>
<terminationDate id="">
<unadjustedDate>2004-05-31</unadjustedDate>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</calculationPeriodDatesAdjustments>
<calculationPeriodFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
<rollConvention>IMM</rollConvention>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<paymentFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</paymentFrequency>
<payRelativeTo id="">CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
©2009 Razor Risk Technologies Page 163 of 373
Razor Financial Principals
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</paymentDatesAdjustments>
</paymentDates>
<resetDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<resetRelativeTo id="">CalculationPeriodStartDate</resetRelativeTo>
<fixingDates>
<periodMultiplier>-2</periodMultiplier>
<period>D</period>
<businessDayConvention>NONE</businessDayConvention>
<dateRelativeTo id="#resetDates0">ResetDate</dateRelativeTo>
</fixingDates>
<resetFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</resetFrequency>
<resetDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</resetDatesAdjustments>
</resetDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<initialValue>1000000.000000</initialValue>
<currency>AUD</currency>
</notionalStepSchedule>
</notionalSchedule>
<floatingRateCalculation>
<floatingRate>
<floatingRateIndex>BBSW</floatingRateIndex>
<indexTenor>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</indexTenor>
<spreadSchedule>
<initialValue>0.000000</initialValue>
</spreadSchedule>
</floatingRate>
<averagingMethod></averagingMethod>
<negativeInterestRateTreatment></negativeInterestRateTreatment>
</floatingRateCalculation>
<dayCountFraction>ACT/365.FI</dayCountFraction>
</calculation>
</calculationPeriodAmount>
<principalExchanges>
<initialExchange>false</initialExchange>
<finalExchange>false</finalExchange>
<intermediateExchange>false</intermediateExchange>
</principalExchanges>
</swapStream>
</swap>
12.2.3 Pricing
Pricing interest rate swaps is a matter of present-valuing both legs of the
swap. The formula presented below gives an example of pricing a vanilla fixed-
floating swap. The pricing model is very general however and will price
floating-floating and cross currency swaps.
Let
F float = the face value of the floating leg of the swap
Pricing
The pricing of these variations of swaps are the same as the conventional
interest rate swaps, i.e. the present value of the difference between the
floating leg cashflow value and fixed leg cashflow value. The required unknown
floating rates used to determine the floating leg cashflows can always be
obtained from the forward rate curve as in the conventional swap case.
<extension>
<value>true</value>
<name>DiscountFuturesValueToValueDate</name>
</extension>
</extensions>
<product>
<irFuture>
<productType>BankBillFuture</productType>
<instrumentId>SFBAB</instrumentId>
<settlementDate>
<unadjustedDate>2007-12-13</unadjustedDate>
</settlementDate>
<currency>AUD</currency>
<exchangeCode>SFE</exchangeCode>
<numberContracts>500</numberContracts>
<tradedPrice>93.27</tradedPrice>
<priceQuote>FuturesPrice</priceQuote>
<bond>
<bondStream>
<payerPartyReference href="83976" />
<receiverPartyReference href="GTY" />
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate>
<unadjustedDate>2007-12-13</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</effectiveDate>
<terminationDate>
<unadjustedDate>2008-03-12</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</calculationPeriodDatesAdjustments>
<firstPeriodStartDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
<unadjustedDate>2007-12-13</unadjustedDate>
</firstPeriodStartDate>
<calculationPeriodFrequency>
<rollConvention>NONE</rollConvention>
<periodMultiplier>90</periodMultiplier>
©2009 Razor Risk Technologies Page 167 of 373
Razor Financial Principals
<period>D</period>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="CalcPeriodDates0" />
<paymentFrequency>
<period>D</period>
<periodMultiplier>90</periodMultiplier>
</paymentFrequency>
<payRelativeTo>CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</paymentDatesAdjustments>
</paymentDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<currency>AUD</currency>
<initialValue>1000000</initialValue>
</notionalStepSchedule>
</notionalSchedule>
<fixedRateSchedule>
<initialValue>0</initialValue>
</fixedRateSchedule>
<dayCountFraction>ACT/365</dayCountFraction>
</calculation>
</calculationPeriodAmount>
<principalExchanges>
<intermediateExchange>false</intermediateExchange>
<initialExchange>false</initialExchange>
<finalExchange>true</finalExchange>
</principalExchanges>
</bondStream>
<issuer href="Bank1" />
<securityId>DEC07</securityId>
<position>1</position>
<paymentAmount>
<paymentType>SETTLEMENT</paymentType>
<receiverPartyReference href="GTY" />
<payerPartyReference href="83976" />
<paymentAmount>
<currency>AUD</currency>
<amount>0</amount>
</paymentAmount>
<adjustedPaymentDate>2007-12-13</adjustedPaymentDate>
©2009 Razor Risk Technologies Page 168 of 373
Razor Financial Principals
</paymentAmount>
<exInterestDays>0</exInterestDays>
</bond>
</irFuture>
</product>
</trade>
<dealHeader>
<dealId>FUT:10909</dealId>
<dealType>SFBAB</dealType>
<dealDate>2007-09-12</dealDate>
<status>OPEN</status>
</dealHeader>
</deal>
Bond Futures
<deal>
<trade>
<tradeHeader>
<tradeId>FUT:10910</tradeId>
<tradeDate>2007-09-12</tradeDate>
<tradeType>SFYTB</tradeType>
<dealer>84751</dealer>
<counterparty>83976</counterparty>
<internalUnit>CFXA</internalUnit>
<buySell>BUY</buySell>
<status>OPEN</status>
<location>Bank1</location>
<domicileCountry>154</domicileCountry>
</tradeHeader>
<extensions>
<extension>
<value>ValueByMTMYieldCurve</value>
<name>FuturesValueStyle</name>
</extension>
<extension>
<value>true</value>
<name>DiscountFuturesValueToValueDate</name>
</extension>
</extensions>
<product>
<irFuture>
<productType>BondFuture</productType>
<instrumentId>SFYTB</instrumentId>
<settlementDate>
<unadjustedDate>2007-09-15</unadjustedDate>
</settlementDate>
<currency>AUD</currency>
<exchangeCode>SFE</exchangeCode>
<numberContracts>500</numberContracts>
<tradedPrice>93.61</tradedPrice>
<priceQuote>FuturesPrice</priceQuote>
<bond>
<bondStream>
<payerPartyReference href="83976" />
<receiverPartyReference href="CFX" />
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate>
<unadjustedDate>2007-09-15</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</effectiveDate>
<terminationDate>
<unadjustedDate>2010-09-15</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</calculationPeriodDatesAdjustments>
<firstPeriodStartDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
<unadjustedDate>2007-09-15</unadjustedDate>
</firstPeriodStartDate>
<calculationPeriodFrequency>
<rollConvention>NONE</rollConvention>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="CalcPeriodDates0" />
<paymentFrequency>
<period>M</period>
<periodMultiplier>6</periodMultiplier>
</paymentFrequency>
<payRelativeTo>CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
©2009 Razor Risk Technologies Page 170 of 373
Razor Financial Principals
</paymentDatesAdjustments>
</paymentDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<currency>AUD</currency>
<initialValue>100000</initialValue>
</notionalStepSchedule>
</notionalSchedule>
<fixedRateSchedule>
<initialValue>0.06</initialValue>
</fixedRateSchedule>
<dayCountFraction>ACT/360</dayCountFraction>
</calculation>
</calculationPeriodAmount>
<principalExchanges>
<intermediateExchange>false</intermediateExchange>
<initialExchange>false</initialExchange>
<finalExchange>true</finalExchange>
</principalExchanges>
</bondStream>
<issuer href="66096" />
<securityId>FUT-3YR-SEP7</securityId>
<position>1</position>
<paymentAmount>
<paymentType>SETTLEMENT</paymentType>
<receiverPartyReference href="CFX" />
<payerPartyReference href="83976" />
<paymentAmount>
<currency>AUD</currency>
<amount>0</amount>
</paymentAmount>
<adjustedPaymentDate>2007-09-15</adjustedPaymentDate>
</paymentAmount>
<exInterestDays>0</exInterestDays>
</bond>
</irFuture>
</product>
</trade>
<dealHeader>
<dealId>FUT:10910</dealId>
<dealType>SFYTB</dealType>
<dealDate>2007-09-12</dealDate>
<status>OPEN</status>
</dealHeader>
©2009 Razor Risk Technologies Page 171 of 373
Razor Financial Principals
</deal>
<tradedPrice>93.67</tradedPrice>
<priceQuote>FuturesPrice</priceQuote>
<fixedTickValue>24.66</fixedTickValue>
<fixedTickUnit>1</fixedTickUnit>
<bond>
<bondStream>
<payerPartyReference href="83976" />
<receiverPartyReference href="GTY" />
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate>
<unadjustedDate>2007-10-01</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</effectiveDate>
<terminationDate>
<unadjustedDate>2007-10-31</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</calculationPeriodDatesAdjustments>
<firstPeriodStartDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
<unadjustedDate>2007-10-01</unadjustedDate>
</firstPeriodStartDate>
<calculationPeriodFrequency>
<rollConvention>NONE</rollConvention>
<periodMultiplier>30</periodMultiplier>
<period>D</period>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="CalcPeriodDates0" />
<paymentFrequency>
<period>D</period>
<periodMultiplier>30</periodMultiplier>
</paymentFrequency>
<payRelativeTo>CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</paymentDatesAdjustments>
©2009 Razor Risk Technologies Page 173 of 373
Razor Financial Principals
</paymentDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<currency>AUD</currency>
<initialValue>3000000</initialValue>
</notionalStepSchedule>
</notionalSchedule>
<fixedRateSchedule />
<dayCountFraction>ACT/365</dayCountFraction>
</calculation>
</calculationPeriodAmount>
<principalExchanges>
<intermediateExchange>false</intermediateExchange>
<initialExchange>false</initialExchange>
<finalExchange>true</finalExchange>
</principalExchanges>
</bondStream>
<issuer href="Bank1" />
<securityId>OCT07</securityId>
<position>1</position>
<paymentAmount>
<paymentType>SETTLEMENT</paymentType>
<receiverPartyReference href="GTY" />
<payerPartyReference href="83976" />
<paymentAmount>
<currency>AUD</currency>
<amount>0</amount>
</paymentAmount>
<adjustedPaymentDate>2007-09-15</adjustedPaymentDate>
</paymentAmount>
<exInterestDays>0</exInterestDays>
</bond>
</irFuture>
</product>
</trade>
<dealHeader>
<dealId>FUT:10912</dealId>
<dealType>SFIBC</dealType>
<dealDate>2007-09-12</dealDate>
<status>OPEN</status>
</dealHeader>
</deal>
12.3.3 Pricing
We define some notations before moving to pricing of each type of interest
rate futures:
F = face value.
f0 = futures price at contract initiation.
TV = tick value.
TS = tick size.
P = price of underlying asset, e.g. bank bill if it is a bank bill future.
N = number of futures contracts.
Note:
1. Futures prices are quoted as 1 − yield % .
TV
2. represents the value of 0.01% of premium.
TS
100 − f 0 30
This is equal to N × F × 1 + × .
100 365
(b) The Futures Price Amount
100 − ft 30
This is equal to N × F × 1 + ×
100 365
(c) The Net Settlement Amount
TV
This is equal to N × F × ( f t − f 0 ) × .
TS
(d) The present values of (a), (b) and (c) are also supported.
It should be noted that for 30 day interbank cash rate futures, because the
contracts always have a face value with fixed value F = 3, 000, 000 at
contract initiation rather than expiry with a fixed term to maturity of 30
TV 30
days, the 0.01% premium is always = 3000000 × 0.0001× = 24.66 .
TS 365
2. 90 Day Bank Bill Futures
Again, the four types of values Razor can return for the bond futures are:
(a) The Trade Price Amount
N × F × 365
This is equal to .
(100 − f 0 ) × 90
365 +
100
(b) The Futures Price Amount
N × F × 365
This is equal to .
(100 − ft ) × 90
365 +
100
(c) The Net Settlement Amount
This is equal to
N × F × 365 × .
1 1
−
(100 − f t ) × 90 (100 − f0 ) × 90
365 + 365 +
100 100
(d) The present values of (a), (b) and (c) are also supported.
c (1 − v nf )
P = N ×F× + v nf ,
i f
where
100 − f 1
if = × .
100 2
v f = (1 + i f )
−1
.
6 if 3 year bond
n= .
20 if 10 year bond
CouponRate% 1
c= × .
100 2
The values can be returned by Razor are:
(a) The Trade Price Amount
This is equal to N × F ×
(
c 1 − v nf
0
) +v n
.
f0
i f0
This is equal to N × F ×
(
c 1 − v nf
t
) +v n
.
ft
i ft
N × F ×
(
c 1 − v nf
t
)
+ v nft
c 1 − v nf
− 0
( )
+ v nf0 .
i ft i f0
(d) The present values of (a), (b) and (c) are also supported.
<dealer>84793</dealer>
<counterparty>78907</counterparty>
<internalUnit>TDXA</internalUnit>
<buySell>BUY</buySell>
<status>OPEN</status>
<location>Bank1</location>
<domicileCountry>154</domicileCountry>
</tradeHeader>
<product>
<bondOption>
<underlyingType>Future</underlyingType>
<optionType>CALL</optionType>
<cashSettlement />
<strike>
<strikePrice>93</strikePrice>
<priceQuote>FuturesPrice</priceQuote>
<buyer>78907</buyer>
<seller>TDX</seller>
</strike>
<numberOfOptions>100</numberOfOptions>
<premium>
<pricePerOption>1629.679</pricePerOption>
<payerPartyReference />
<receiverPartyReference />
<paymentDate>
<unadjustedDate>2007-09-07</unadjustedDate>
</paymentDate>
</premium>
<europeanExercise>
<expirationDate>
<adjustableDate>
<unadjustedDate>2007-12-15</unadjustedDate>
</adjustableDate>
</expirationDate>
</europeanExercise>
<bond>
<bondStream>
<payerPartyReference href="78907" />
<receiverPartyReference href="TDX" />
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate>
<unadjustedDate>2007-12-17</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</effectiveDate>
©2009 Razor Risk Technologies Page 178 of 373
Razor Financial Principals
<terminationDate>
<unadjustedDate>2010-12-17</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</calculationPeriodDatesAdjustments>
<firstPeriodStartDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
<unadjustedDate>2007-12-15</unadjustedDate>
</firstPeriodStartDate>
<calculationPeriodFrequency>
<rollConvention>NONE</rollConvention>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="CalcPeriodDates0" />
<paymentFrequency>
<period>M</period>
<periodMultiplier>6</periodMultiplier>
</paymentFrequency>
<payRelativeTo>CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</paymentDatesAdjustments>
</paymentDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<currency>AUD</currency>
<initialValue>100000</initialValue>
</notionalStepSchedule>
</notionalSchedule>
<fixedRateSchedule>
<initialValue>0.06</initialValue>
</fixedRateSchedule>
<dayCountFraction>ACT/ACT</dayCountFraction>
</calculation>
</calculationPeriodAmount>
©2009 Razor Risk Technologies Page 179 of 373
Razor Financial Principals
<principalExchanges>
<intermediateExchange>false</intermediateExchange>
<initialExchange>false</initialExchange>
<finalExchange>true</finalExchange>
</principalExchanges>
</bondStream>
<issuer href="66096" />
<securityId>FUT-3YR-DEC</securityId>
<position>1</position>
<paymentAmount>
<paymentType>SETTLEMENT</paymentType>
<receiverPartyReference href="TDX" />
<payerPartyReference href="78907" />
<paymentAmount>
<currency>AUD</currency>
<amount>0</amount>
</paymentAmount>
<adjustedPaymentDate>2007-09-10</adjustedPaymentDate>
</paymentAmount>
<exInterestDays>0</exInterestDays>
</bond>
<optionWriterReference href="0" />
<optionHolderReference href="78907" />
</bondOption>
</product>
</trade>
<dealHeader>
<dealId>OPT:1289</dealId>
<dealType>SFYTO</dealType>
<dealDate>2007-09-07</dealDate>
<status>OPEN</status>
</dealHeader>
</deal>
σ Tx
d 2 = d1 − σ Tx
σ P = price volatility
σ Y = yield volatility
y = forward yield (continuous)
D = MacCaulay Duration
refer to Binomial Model on page 264. Pricing uses the same model as an equity
option, with coupons instead of discrete dividends. Due to the recursive
binomial calls, performance with many coupons can be an issue. This can be
avoided by using no more steps than coupons. Volatility is assumed to be yield
vol, and is converted into price vol by multiplying by MacCaulay duration and
YTM.
capFloorStream
fpmlInterestRateStream
fpmlInterestRateStream Schema
Name: Type Occurs Size Description
payerPartyReference
1..1 The identifier of the paying party
fpmlPartyReference
receiverPartyReference
1..1 The identifier of the receiving party
fpmlPartyReference
calculationPeriodDates Indicates the schedule that the
1..1
fpmlCalculationPeriodDates floating rate calculations occurs
paymentDates Indicates the schedule that the date
1..1
fpmlPaymentDates payments occur
resetDates This structure indicates when
1..1
fpmlResetDates floating rate resets occur
calculationPeriodAmount This structure indicates how the
1..1
fpmlCalculationPeriodAmount amounts to be paid is determined
This structure indicates how the
stubCalculationPeriodAmount
0..1 stub period amounts to be paid are
fpmlStubCalculationPeriodAmount
determined
fpmlInterestRateStream Schema
Name: Type Occurs Size Description
principalExchanges Determines if and when the
0..1
fpmlPrincipalExchanges exchange
cashflows This type gives us the fixed cash
0..1
fpmlCashflows flows represented by the product
12.5.3 Pricing
Each cap or floor is considered to be made up of “caplets” or “floorlets”, that
limit the liability or exposure for each floating rate payment. The caplets or
floorlets are valued separately as options and then summed to produce the
overall value for the cap or floor.
We can use the Black model to allow us to price caps by inputting rf as the
current forward price, and rx as the strike price. The output of the Black
model is in terms of a yield percentage per anum. To convert this into a dollar
amount, we need to multiply the yield by the interest sensitivity of the option.
This interest sensitivity will be determined by the principal amount of the
option and the term of the underlying interest period.
Let
S = the forward market rate
X = the cap/floor rate
σ = the yield volatility
F = the implied forward rate at each caplet maturity as the underlying asset.
τ = number of days in the forward rate period.
basis = number of days per year used in the market.
T = the time until expiry, annualised
ln( XS ) + σ 2T
2
d1 =
σ T
ln( XS ) − σ 2T
2
d2 =
σ T
τ
Notional ×
V floorlet = basis e− rT ( XN ( −d ) − SN ( −d ) )
τ 2 1
1+ F
basis
n
V floor = ∑ V floorlet
i =1
τ
Notional ×
Vcaplet = basis e− rT ( SN ( d ) − XN ( d ) )
τ 1 2
1+ F
basis
n
Vcap = ∑ Vcaplet
i =1
12.6 Collars
12.6.1 Description of Instrument
A collar is like an agregation of a cap and floor, in that the interest rate
exposure is limited to a certain range, with both a cap and a floor.
12.6.3 Pricing
Let
S = the underlying market par rate
X cap = the cap rate
d1 =
σ T
ln( XS ) − σ 2T
2
d2 =
σ T
The collar premium is given by:
τi
Notional ×
( i 1 cap ,i 2 )
n
Vcollar = ∑ basis e − rTi S N ( d ) − X N ( d )
τi
i =1
1 + Fi
basis
τi
Notional ×
( floor ,i N ( −d2 ) − Si N ( −d1 ) ) .
n
−∑ basis e − rTi X
τi
i =1
1 + Fi
basis
Note that a collar can be structured as buying a cap and selling a floor
simultaneously with the same underlying details and expiry.
12.7 Swaption
12.7.1 Description of Instrument
A swaption is an agreement between two counterparties to enter into a
currency or interest rate swap at an agreed fixed rate at a date in the future.
<swaption>
<europeanExercise>
<commencementDate id="" >
<unadjustedDate>2001-05-31</unadjustedDate>
</commencementDate>
<expirationDate id="">
<unadjustedDate>2003-05-29</unadjustedDate>
</expirationDate>
</europeanExercise>
<swap>
<swapStream>
<payerPartyReference href="ITE" />
<receiverPartyReference href="BAN" />
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate id="">
<unadjustedDate>2003-05-29</unadjustedDate>
</effectiveDate>
<terminationDate id="">
<unadjustedDate>2004-05-31</unadjustedDate>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</calculationPeriodDatesAdjustments>
<calculationPeriodFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
<rollConvention>IMM</rollConvention>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<paymentFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</paymentFrequency>
<payRelativeTo id="">CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</paymentDatesAdjustments>
</paymentDates>
<resetDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<resetRelativeTo id="">CalculationPeriodStartDate</resetRelativeTo>
<fixingDates>
<periodMultiplier>-2</periodMultiplier>
<period>D</period>
<businessDayConvention>NONE</businessDayConvention>
<dateRelativeTo id="#resetDates0">ResetDate</dateRelativeTo>
</fixingDates>
<resetFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</resetFrequency>
<resetDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</resetDatesAdjustments>
</resetDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<initialValue>1000000.000000</initialValue>
<currency>AUD</currency>
</notionalStepSchedule>
</notionalSchedule>
<fixedRateSchedule>
<initialValue>0.000500</initialValue>
</fixedRateSchedule>
<dayCountFraction>ACT/365</dayCountFraction>
</calculation>
</calculationPeriodAmount>
<principalExchanges>
<initialExchange>false</initialExchange>
<finalExchange>false</finalExchange>
<intermediateExchange>false</intermediateExchange>
</principalExchanges>
</swapStream>
<swapStream>
<payerPartyReference href="BAN" />
<receiverPartyReference href="ITE" />
©2009 Razor Risk Technologies Page 186 of 373
Razor Financial Principals
<calculationPeriodDates id="CalcPeriodDates0">
<effectiveDate id="">
<unadjustedDate>2003-05-29</unadjustedDate>
</effectiveDate>
<terminationDate id="">
<unadjustedDate>2004-05-31</unadjustedDate>
</terminationDate>
<calculationPeriodDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</calculationPeriodDatesAdjustments>
<calculationPeriodFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
<rollConvention>IMM</rollConvention>
</calculationPeriodFrequency>
</calculationPeriodDates>
<paymentDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<paymentFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</paymentFrequency>
<payRelativeTo id="">CalculationPeriodEndDate</payRelativeTo>
<paymentDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</paymentDatesAdjustments>
</paymentDates>
<resetDates>
<calculationPeriodDatesReference href="#CalcPeriodDates0" />
<resetRelativeTo id="">CalculationPeriodStartDate</resetRelativeTo>
<fixingDates>
<periodMultiplier>-2</periodMultiplier>
<period>D</period>
<businessDayConvention>NONE</businessDayConvention>
<dateRelativeTo id="#resetDates0">ResetDate</dateRelativeTo>
</fixingDates>
<resetFrequency>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</resetFrequency>
<resetDatesAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</resetDatesAdjustments>
</resetDates>
<calculationPeriodAmount>
<calculation>
<notionalSchedule>
<notionalStepSchedule>
<initialValue>1000000.000000</initialValue>
<currency>AUD</currency>
</notionalStepSchedule>
</notionalSchedule>
<floatingRateCalculation>
<floatingRate>
©2009 Razor Risk Technologies Page 187 of 373
Razor Financial Principals
<floatingRateIndex>BBSW</floatingRateIndex>
<indexTenor>
<periodMultiplier>6</periodMultiplier>
<period>M</period>
</indexTenor>
<spreadSchedule>
<initialValue>0.000000</initialValue>
</spreadSchedule>
</floatingRate>
<averagingMethod></averagingMethod>
<negativeInterestRateTreatment></negativeInterestRateTreatment>
</floatingRateCalculation>
<dayCountFraction>ACT/365.FI</dayCountFraction>
</calculation>
</calculationPeriodAmount>
<principalExchanges>
<initialExchange>false</initialExchange>
<finalExchange>false</finalExchange>
<intermediateExchange>false</intermediateExchange>
</principalExchanges>
</swapStream>
</swap>
</swaption>
12.7.3 Pricing
European swaptions are priced using the Black-76 model. The Black-76 value is
multiplied by a factor adjusting for the tenor of the swaptions as shown by
Smith (1991). American and Bermudan swaptions can be priced either using the
Black model or using a numerical approximation (such as HGM/J). Most
numerical approximations for Bermudan swaptions will have a large
detrimental impact on the simulation process, so directing these trades to the
PELookup Server is recommended unless a fast analytical solution is used.
1
1 − t1 × m
1 + F
− rT
c=
m
F e [FN (d1 ) − XN (d 2 )]
Price of receiver swap is:
1
1 − t1 × m
1 + F
− rT
p=
m
F e [XN (− d 2 ) − FN (− d1)] ,
where
F σ
2
ln + T
X 2
d1 =
σ T
d 2 = d1 − σ T .
Delta
Delta is defined as the difference in value of the swaption by perturbing
the forward swap rate F by ±1bp where all other parameters remain
constant.
Let
f = a function defined as the value of the payer or receiver
swaption
F = Forward rate of underlying swap
1bp = 1 basis point or 0.0001
∂V f ( F + 1bp) − f ( F − 1bp )
∆= ≈
∂F 2bp
Gamma
Gamma is defined as the difference in delta by perturbing the forward
swap rate F by ±1bp where all other parameters remain constant. In Razor
we approximate gamma by using the second order finite central
difference.
Let
f = a function defined as the price of the payer or receiver
swaption
F = Forward rate of underlying swap
1bp = 1 basis point or 0.0001
∂∆ ∂ 2V f ( F + 1bp) + f ( F − 1bp) − 2 f ( F )
Γ= = 2≈
∂F ∂F 1bp 2
Vega
Vega is defined as the difference in value of the swaption by perturbing
the forward swap volatility σ by ±1% where all other parameters remain
constant.
Let
f = a function defined as the price of the payer or receiver
swaption
σ = Volatility of the forward-starting swap rate.
1% = 1 percent as a decimal or 0.01
∂V f (σ + 1%) − f (σ − 1%)
Λ= ≈
∂σ 2%
Rho
Rho is defined as the change in value of the swaption by perturbing the
risk free rate r by ±1bp where all other parameters remain constant.
Let
f = a function defined as the price of the payer or receiver
swaption
df = a continuously compounded discount factor of r in terms of T
ln a + ln b = ln(ab)
ln a − ln b = ln(a / b)
∂V f (df × dfs ) − f ( df / dfs )
ρ= ≈
∂r 2bp
Theta
Theta is defined as the difference in value by shifting the value date
forward by one day where all other parameters remain constant. Since
time moves in a forward direction, for theta we use the backward finite
difference which is defined as:
∂ f ( x ) − f ( x − h)
≈ h > 0
∂x h
Let
f = a function defined as the price of the payer or receiver
swaption
T = Time to expiration in years.
T −1 = Time to expiration minus 1 day in years.
df = a continuously compounded discount factor of r in terms of T
Where
©2009 Razor Risk Technologies Page 191 of 373
Razor Financial Principals
T −1
dfT−1 = df T
∂V f (T−1 , dfT−1 ) − f (T )
Θ=− ≈
∂T 1dy
Define
β = 1 for payer swaption; -1 for receiver swaption.
N = notional amount.
t= valuation date.
T = maturity date of the option.
T0 = the underlying swap start date, T0 ≥ t .
Tn = the underlying swap end date.
Ti float
= i = 1,..., n float , the floating side payment dates of the underlying
swap.
Ti fix = i = 1,..., n fix , the fixed side payment dates of the underlying
swap.
Ti = i = 0,..., n float − 1 , the forward period start dates of the swap’s
reference index.
κ = the strike rate.
δ i float = the day count fraction between Ti −float 1 and Ti float .
δ i fix = the day count fraction between Ti −fix1 and Ti fix .
B (t,T )
= the price of zero-coupon bond at time t paying $1 at time T .
δ tenor = the tenor of the reference index of the underlying swap.
L ( t , Ti , Ti + δ tenor )
= the simple-compounded forward interest rate prevailing at time t ,
starting at time Ti and ending at time Ti + δ tenor .
1 df ( t , Ti )
= − 1 + rspread
δ tenor df ( t , Ti + δ tenor )
rspread = the spread added to the reference index of the underlying
swap.
df ( t , t j )
Swaption Payoff
The swaption payoff at maturity time T is:
n
float
n fix
N ⋅ β ∑ B (T , Ti float ) ⋅ δ i float ⋅ L (T ; Ti −1 , Ti −1 + δ tenor ) − ∑ B (T , Ti fix ) ⋅ δ i fixκ .
i =1 i =1
Tn − T0 .
n fix
G ( t ) = ∑ δ i fix df ( t , Ti fix ) .
i =1
∑ L (t, T i −1 (
, Ti −1 + τ tenor ) df t , Ti float )
κ (t, T ) = i =1
.
G (t )
Define
{l1 , l 2 ,..., l n−1 , l n } = the vector of time nodes at the swap reset dates.
{c1 , c2 ..., cn−1 , cn } = the vector of time nodes at the exercise dates.
t k = the actual time at time node k .
Bi, j (q ) = zero-coupon bond price at node (i, j ) valued with maturity at
time node q .
©2009 Razor Risk Technologies Page 193 of 373
Razor Financial Principals
Note that the actual time of time node l1 ( t l1 ) is Tl and the actual time of
time node l n ( t ln ) is Tn since Tl and Tn are the first swap reset time and
last swap reset time respectively by definition. Also the actual time of
time node c1 ( t c1 ) is Tl since the swap payments start at the first exercise
date.
12.9.2 Pricing
Bermudan swaption has an early exercise feature. Unlike American-style
options, Bermudan swaption only allows early exercises at some discrete
point time, i.e. on the swap reset dates. Representing Bermudan
swaption price in closed-form solutions is very difficult. However, it can
be priced numerically using the interest rate tree approach through
backward induction.
Step 1:
Construct an interest-rate tree starting today to the last swap reset date
with interest rate nodes covering all interim swap reset dates.
Step 2:
Introduce a vector of bond prices Bln , j (l n ) = 1 for all the nodes at time
node l n , i.e. at time Tn .
Step 3:
Calculate the vector of bond prices Bln −1 , j (l n ) for all the nodes at time
node l n −1 using backward induction:
Bln −1 , j (l n ) = e
(
− rl n −1 , j tl n − tl n −1 )
(p B
u l n , j +1 (l n ) + p m Bl , j (l n ) + p d Bl , j −1 (l n ))
n n
Introduce a new vector of bond prices Bln −1 , j (l n −1 ) = 1 for all the nodes at
time node l n −1 .
Step 4:
Calculate both bond vector prices Bln − 2 , j (l n ) and Bln − 2 , j (l n −1 ) from the bond
vector prices Bln −1 , j (l n ) and Bln −1 , j (l n −1 ) respectively using the backward
induction similar to the above step.
Introduce a new vector of bond prices Bln − 2 , j (l n − 2 ) = 1 for all the nodes at
time node l n − 2 .
Step 5:
Such backward induction and new vector bond prices introduction will
continue until the first swap reset date at time node l1 , i.e. at time Tl .
Step 6:
During the rolling back process, if the nodes hit the last exercise date at
time node cn , we calculate the interest rate swap (IRS) value:
ln
IRS cn , j = 1 − Bcn , j (l n ) − ∑ fKB (k ) . cn , j
k = cn +1
Note that Bi, j (q ) can be obtained from the rolling back bond vector
prices.
We also define:
CC cn , j = IRS cn , j .
Step 7:
We calculate CC cn −1, j for all nodes at time node c n − 1 using backward
induction:
CC cn −1, j = e
(
− rc n −1, j t c n − t c n −1 )
( p CC
u cn , j +1 )
+ p m CC cn , j + p d CC cn , j −1 .
Step 8:
Note that Bi, j (q ) can be obtained from the rolling back bond vector
prices.
Step 9:
The rolling back CC 0 , 0 is the Bermudan swaption price.
12.10.3 Pricing
[ ]
− 0.5 f 2σ 2T B '' ( f ) / B ' ( f )
Where
f = forward CMS/CMT rate
σ = volatility
T = time to maturity of the forward
B( f ) = the price at time t of a security that provides
coupons equal to the
forward CMS/CMT rate over the life of the bond as a function of yield ( Y )
.
To cater for the convexity effect on the forward rate, the adjusted
forward rate becomes:
[ ]
f − 0.5 f 2σ 2T B '' ( f ) / B ' ( f ) .
This means that to obtain the expected forward rate, the convexity
adjustment should be added to the forward swap rate (for CMS) or bond
yield (for CMT).
Example:
f = 5% pa
Y = 5% pa
σ = 10% pa
The volatility to use for the convexity adjustment for a specific forward
forecast swap rate will be dependent on the swap rate term, and for
which forward start date. Finding a swaption volatility for expiry
matching the forward start date and underlying maturity matching the
swap rate term would be the ideal.
Then:
B (x ) =
c
mn
x
1 +
m
An FX-linked, or PRDC, coupon for the period [Ti −1 , Ti ] , i = 1,.., n , pays the
amount:
(Ti − Ti −1 ) Ci ( ST )
i
at time Ti , where:
( ) ( (
Ci STi = min max w1STi − w2 , bl , bu .) )
In the classical structure, bl = 0 and bu = ∞ (payoff floored at 0 and no
cap) the payoff is simply:
( ) (
Ci STi = h ⋅ max STi − K , 0 )
w2
where the strike price is defined as K = and the payment rate is
w1
h = w1 .
B Ti −1
where
S σ2
ln t + rd − rf + (Ti − t )
K 2
d1 = ,
σ Ti − t
d 2 = d1 − σ Ti − t .
Note that all rd , rf and σ can be obtained from the term structure
curve.
The value of the option leg, VLPj , can be priced as:
Important Assumptions
• Risk-free rates are deterministic.
• w1 and w2 are values generated by some deterministic functions.
If any of the above “deterministic” assumptions does not hold, then this
pricing method does not work.
1
It is not really realistic because the floating interest rate in the floating leg is
stochastic.
©2009 Razor Risk Technologies Page 200 of 373
Razor Financial Principals
N (U (Ti −1 , Ti ) + si ) (Ti −1 , Ti ) Ft
B(t )
VLRJ = E O ∑
i > j B(Ti )
(
= N ∑ B ( t , Ti )(Ti − Ti −1 ) E O U (Ti −1 , Ti ) Ft + si
i> j
Ti
)
Note that E Q (U (Ti −1 , Ti ) ) | Ft can be obtained from section 17.1
Ti
• Leg 1: Rate paid based on the basket of constant maturity treasury (CMT)
rate.
• Leg 2: Fix / Floating rate.
Define:
We know that each individual floating rate under the forward martingale
measure is distributed as:
dU k ( t , Ti )
= µ k ( t , Ti ) dt + σ k ( t , Ti ) dW Q
Ti
,k
.
U k
( t, Ti )
Thus the basket floating rate under QTi is distributed as:
dU b ( t , Ti )
U b ( t , Ti )
∑ w dU ( t , T )
k k
i
= k
∑ w U (t,T )
k
k k
i
∑ w U ( t , T ) µ ( t , T ) ∑ w U ( t , T ) σ ( t , T ) dW
k k
i
k
i
k k
i
k
i t
QTi , k
= k
dt + k
∑ w U (t,T )k
k
∑ w U (t, T )
k
i
k
k k
i
∑ w U (t, T ) µ (t, T )
k k
i
k
i
= k
dt + ∑ λ ( t , T ) σ ( t , T ) dW k k QTi ,k
.
∑ w U (t,T )k
k k
i k
i i t
dU b ( t , Ti )
U b ( t , Ti )
≈ µ b ( t , Ti ) dt + ∑ λ k ( 0, Ti ) σ k ( t , Ti ) dWt Q
Ti
,k
= µ b ( t , Ti ) dt + ∑∑ λ ( 0, T ) λ ( 0, T ) ρ σ ( t , T ) σ ( t , T )dW
∗
k l k l QTi ,b
i i ij i i t
k l
=µ b∗
( t , Ti ) dt + σ ( t , Ti ) dWt Q
Ti
b ,b
.
It is assumed that σ b
(t , T )f
is provided by the user.
Note that µ b ( t , Ti ) represents the basket drift under measure QTi .
∗
µ b ( t , Ti ) is approximated by:
∗
E Q U b (Ti −1 , Ti ) | Ft
Ti
Ti
= E Q ∑ wkU k (Ti −1 , Ti ) | Ft
k
= ∑ wk E Q U k (Ti −1 , Ti ) | Ft .
Ti
= KN ( −d 2 ) − E Q U b (Ti −1 , Ti ) | Ft N ( − d1 ) ,
Ti
where:
b∗
E Q U b (Ti −1 , Ti ) | Ft = U b ( t , Ti ) e ( t ,Ti )(Ti −t )
Ti
µ
,
n
U b ( t , Ti ) = ∑ wkU k ( t , Ti ) ,
k =1
n
µ b∗
( t , Ti ) = ∑ wk E Q U k (Ti −1 , Ti ) | Ft .
Ti
k =1
E Q i U b (Ti , Ti −1 ) | Ft σ b ( t , T )2 (T − t )
T
ln + i i
K 2
d1 = ,
σ ( t , Ti ) Ti − t
b
E Q i U b (Ti −1 , Ti ) | Ft σ b ( t , T )2 (T − t )
T
ln − i i
K 2
d2 = .
σ ( t , Ti ) Ti − t
b
Pricing floating and fix leg can be done using the usual forward
martingale methods.
( )
VLPj = N ⋅ ∑ B ( t , Ti )(Ti − Ti −1 ) E Q (U (Ti −1 , Ti ) ) | Ft + si .
i> j
Ti
(
VLpj = N ⋅ ∑ B ( t , Ti )(Ti − Ti −1 ) fixedTi + si .
i> j
)
The underlying swap is a standard swap (as the equity trigger is only
considered for early termination in simulation, and not for MTM). The two
legs are:
The fixed leg is a stream of fixed rate plus a spread. The value of the
fixed leg is:
(
VLpj = N ⋅ ∑ B ( t , Ti )(Ti − Ti −1 ) fixedTi + si .
i> j
)
©2009 Razor Risk Technologies Page 204 of 373
Razor Financial Principals
( )
VLPj = N ⋅ ∑ B ( t , Ti )(Ti − Ti −1 ) E Q (U (Ti −1 , Ti ) ) | Ft + si .
i> j
Ti
A swap contract type where the rate paid on one side increases as market
floating rates decline and the rate on another side is based on fixed rate.
We write:
fTi = fixed rate at time Ti .
wTi = weight at time Ti .
i> j
(
= N ∑ B ( t , Ti )(Ti − Ti −1 ) fTi − wTi ⋅ E QTi
U (Ti −1 , Ti ) | Ft − sTi . )
Note that E Q (U (Ti −1 , Ti ) ) | Ft can be obtained from section 17.1
Ti
{ (
CFti = B ( t , Ti ) E Q max K − fTi + wTi ⋅ U (Ti −1 , Ti ) − sTi , 0 | Ft
Ti
) }
fT .
K
= wTi E Q max U (Ti −1 , Ti ) − sTi − + i , 0 | Ft
Ti
wTi wTi
The above can be evaluated using Black’s call option pricing formula with
K fT
E Q U (Ti −1 , Ti ) | Ft to replace the current stock price and sTi − + i to
Ti
w w Ti Ti
replace the strike price. Note that E U (Ti −1 , Ti ) | Ft can be evaluated as
QTi
Note that we did not include notional amount to keep the length of the
formula shorter. It can be incorporated by multiplying the notional
amount to the formula as a scalar constant.
The value for floating leg at callable time t j evaluated at time t is:
VLPj = ∑ CFti .
i> j
(
VLPj = N ⋅ ∑ B ( t , Ti )(Ti − Ti −1 ) E Q (U (Ti −1 , Ti ) ) | Ft + si .
i> j
Ti
)
Note that E Q (U (Ti −1 , Ti ) ) | Ft can be obtained from section 17.1
Ti
(
VLpj = N ⋅ ∑ B ( t , Ti )(Ti − Ti −1 ) fTi + si .
i> j
)
The payoff of interest rate cliquet for the tenor period (Ti −1 , Ti ) paid on
payment date Ti is:
B (t )
(Ti − Ti −1 ) max (U (Ti −1 , Ti ) − U (Ti− 2 , Ti −1 ) , 0 )
.
B (Ti )
The above is only the payoff for a single period. The whole interest rate
cliquet payoff is the sum of each individual payoff (Ti −1 , Ti ) for i = 1, 2,..., n ,
assuming there are n tenor dates in total.
12.15.2 Pricing
We first focus on the pricing of the claim for the tenor period (Ti −1 , Ti ) .
The price of the claim, fTi evaluated on the valuation date t is:
B (Ti )
fTi = E Q0 (Ti − Ti −1 ) max (U (Ti −1 , Ti ) − U (Ti − 2 , Ti −1 ) , 0 ) | Ft
B ( t )
(
= (Ti − Ti −1 ) B ( t , Ti ) E Q max (U (Ti −1 , Ti ) − U (Ti − 2 , Ti −1 ) , 0 ) | Ft )
i T
(
E Q max (U (Ti −1 , Ti ) − U (Ti −2 , Ti −1 ) ,0 ) | Ft )
iT
= B ( t , Ti ) E ( QTi
)
U (Ti −1 , Ti ) | Ft N ( d1 ) − E Q U (Ti −2 , Ti −1 ) | Ft N ( d 2 ) ,
Ti
where
E Q U (Ti −1 , Ti ) | Ft can be obtained from section 17.1,
Ti
E Q0 U (Ti − 2 , Ti −1 ) | Ft can be obtained from section 17.1 (we can do this
Ti
E Q i U (Ti −1 , Ti ) | Ft
T
ln QTi
E U (Ti − 2 , Ti −1 ) | Ft 1
d1 = + σ i2 ⋅ (Ti − t ) − σ i2−1 ⋅ (Ti −1 − t ) ,
σ i ⋅ (Ti − t ) − σ i −1 ⋅ (Ti −1 − t )
2 2 2
σ i and σ i −1 can be calibrated from market data and the values of σ i and
σ i −1 provided by the user.
Define:
aj = the accrual factor for the period t j −1 and t j .
Bmax = the upper bound of reference rate range for coupon
payment.
Bmin = the lower bound of reference rate range for coupon
payment.
D(t , T , K ) =
the price of digital floorlet on the reference rate at time t
maturing at time T with strike rate K .
tj = time for the j th coupon.
t = the valuation date.
Step 1
We first consider the coupon contribution to the j th coupon by a single
day say at time ti where t < ti < t j .
Step 2:
The payoff of a digital floorlet D ( t , ti , K ) is:
U ( ti −1 , ti ) if U ( ti −1 , ti ) ≤ K
.
0 otherwise
This completely replicates the range accrual notes except that the timing
of this payoff for range accrual note is at time t j while the structured
payoff is at time ti . Time correction is required for an exact replication.
We now look at the present values of these two payoffs:
= B (t, t j ) a j
1 Qti
E U ( ti −1 , ti )1{Bmin ≤U ( ti−1 ,ti )≤ Bmax } | Ft .
365
The expected present value for the structured digital floorlets is:
1 Q B (t )
aj E U ( ti −1 , ti )1{B ≤U ( t ,t )≤ B } | Ft
365 B ( ti ) min i −1 i max
= B (t, t j ) a j
1 Qti
E U ( ti −1 , ti )1{Bmin ≤U ( ti−1 ,ti )≤ Bmax } | Ft .
365
1 B (t, t j )
Thus by holding a notional of aj for the digital floorlets, we
B ( t , ti ) 365
can fix the time mismatch problem and completely replicate the range
accrual note claim.
Step 3
We need to know the price of digital floorlet. The payoff of digital
floorlet is:
U ( ti −1 , ti ) if U ( ti −1 , ti ) ≤ K
.
0 otherwise
It is known that U ( ti −1 , ti ) is lognormally distributed under Q ti , the price
of the floorlet can be evaluated using the normal asset-or-nothing digital
floorlet, i.e.:
D ( t , ti , K ) = B ( t , ti ) E Q U ( ti −1 , ti ) | Ft N ( −d ) with
ti
E Q i U ( ti −1 , ti ) | Ft σ 2 ⋅ ( t − t )
t
ln + e i
K 2
d= .
σ e ti − t
Note that σ e here is the volatility of the LIBOR rate and can be obtained
from the term structure curve.
Step 4
The above two steps demonstrated the replication of range accrual note
for a single day contribution by time ti using floorlets maturing at time ti .
To replicate the whole range accrual, we simply use a series of long and
short floorlets maturing for each of the time t ≤ ti ≤ t j , where
j = 1, 2,3,..., n with n denoting the number of coupon payments.
Step 5
We need to evaluate the digital floorlets. If the reference rate is LIBOR
rate, we can construct a measure such that the forward LIBOR rate is a
geometric Brownian distributed martingale. If the reference rate is not
LIBOR rate then one way we can do is to make an assumption that the
reference rate is geometric Brownian distributed. In either way, the
digital floorlets can be evaluated using Black’s formula.
Note that if the coupon payment is based on fixed rate rather than
floating rate, then we have cash-or-nothing digital floorlet formula
instead of asset-or-nothing digital floorlet formula.
Pricing floating and fix leg can be done using the usual forward
martingale methods.
( )
VLPj = N ⋅ ∑ B ( t , Ti )(Ti − Ti −1 ) E Q (U (Ti −1 , Ti ) ) | Ft + si .
i> j
Ti
The forward LIBOR rates U ( t , Ti ) can be obtained from the LIBOR term
structure curve.
12.17.1 Pricing
Step 1
For any interest rate swap product, there is a payer leg and a receiver
leg. The payer leg generates a series of cash flows and the receiver leg
generates a different set of cash flows. We treat each leg separately and
the value of the swap is simply the difference between the values of the
two legs.
Step 2
We need to determine the value of each leg. To calculate the value of
the payer leg, we find a market proxy such that the proxy generates
similar cash flows as the payer leg. The value of the payer leg is
approximated by the price of the proxy. The same procedure is used to
calculate the value of the receiver leg. The value of the interest rate
swap is difference between the values of the two legs.
Step 3
The cash flows of longing the interest rate swap with early exercise
features can be structured as longing a Bermudan swaption on the
interest rate swap (with pay and receive legs reversed) with the
corresponding early exercise dates and longing the interest rate swap
without the early exercise features. The value on the valuation date for
the interest rate swap with early exercise features is the sum of the value
of the Bermudan swaption and the value of the interest rate swap without
early exercise features on the valuation date. The value of Bermudan
swaption can be approximated using Geske’s approximation and the value
of interest rate swap without early exercise features can be calculated as
described in Step 2.
Note that if the other party also has the right to early exercise, then this
early exercise right can be structured as shorting the Bermudan swaption.
If both parties have callable rights on an underlying swap, then there will
be both a long and a short Bermudan swaption with explicit exercise
dates specific to each party.
V j Φ ( d 2, j )
( )∑
V = V j max + 1 − Φ ( d 2, j max ) ⋅
j ≠ j max
Φ ( d 2, j )
,
∑ j ≠ j max
where
VLR 1 2 c
ln Pj
VL j + σ j T j
d1, j = 2 ,
σ j T jc
d 2, j = d1, j − σ j T jc ,
2
Callable feature in Triple-A program, Christophe Michel, Oct. 23, 2007
©2009 Razor Risk Technologies Page 213 of 373
Razor Financial Principals
j max is the index for which V j max is the maximum (is the maximum European
price). The volatility σ , used to compute the probabilities to be ITM and OTM
in d1, j and d 2, j , is assumed ex ante (given as a term structure).
Define:
rt = the short rate at time t .
B(t , T ) = the zero-coupon bond price at time t that matures at time T .
Bt = the savings account at time t .
Wt = the Weiner Process at time t .
Bt = e ∫u = 0
r j du
B(t , T ) = Bt E P∗ (BT−1 | Ft )
where
P ∗ is a probability measure such that the discounted bond price is a
martingale under this measure (called the spot-martingale measure) and
Ft is the filtration to time t .
12.20.1 Hull-White One Factor Interest Rate Tree Model (Equal Time
Step)
Hull and White (1990) proposed a model that used the following
stochastic differential equation to model the short rate process:
The Hull-White model has a mean reversion feature and the speed of
mean reversion of the short rate is determined by the parameter a . The
time-dependent deterministic function θ (t ) is a free function allowing us
to fit our interest rate model to the initial term-structure curve (i.e. it is
an arbitrage-free model).
Step2:
We set ∆rt∗ = σ 3∆t . This choice of ∆rt∗ is good for error minimisation.
We define node (i, j ) as the node where t = i∆t and rt∗ = j∆rt∗ ( i implies
the time point and j implies the interest rate state). We can then
construct a tree for the ∆rt∗ process. The following table is a
demonstration:
j=
∗ ∗
3∆rt 3∆rt 3
∗ ∗
2∆rt 2∆rt 2∆rt∗ 2
∆rt∗ ∆rt∗ ∆rt∗ ∆rt∗ 1
0 0 0 0 0 0
− ∆rt∗ − ∆rt∗ − ∆rt∗ − ∆rt∗ -1
− 2∆rt∗ − 2∆rt∗ − 2∆rt∗ -2
∗ ∗
− 3∆rt − 3∆rt -3
i=0 1 2 3 4
Step 3:
Define pu , p m and pd be the probabilities that the interest rates move
up one state, remain stable at the current state and drop down one state
respectively. Note that if we are at the upper bound rate, i.e. at j = j max ,
then pu , p m and pd become the probabilities that the interest rates
remain stable at the current state, drop down one state and drop down
two states respectively. Similar adjustments but in different directions
can be followed when we are at the lower bound, i.e. at j = j min .
At normal state:
1 a 2 j 2 ∆t 2 − aj ∆t 2 1 a 2 j 2 ∆t 2 + aj∆t
pu = + pm = − a 2 j 2 ∆t 2 pd = +
6 2 3 6 2
1
p m = − − a 2 j 2 ∆t 2 + 2aj∆t
3
1 a 2 j 2 ∆t 2 − aj∆t
pd = +
6 2
At lower bound state:
1 a 2 j 2 ∆t 2 + aj∆t
pu = +
6 2
1
p m = − − a 2 j 2 ∆t 2 − 2aj∆t
3
7 a 2 j 2 ∆t 2 + 3aj∆t
pd = + .
6 2
Step 4:
We now need to choose the free deterministic function θ (t ) in the Hull-
White Model to make sure that our interest rate model is consistent with
the initial term structure curve (i.e. to ensure the model is arbitrage-
free).
Define:
α t = rt − rt∗ .
where
F (0, t ) = the forward rate implied at time t from time 0.
Step 5:
Hull and White proposed the following formulas to calculate α t . In the
discrete time setting, α t is a step function.
nm
∑Q e − j∆rt ∆t − ln B(0, m + 1)
∗
ln m, j
j = − nm
αm =
∆t
Qm +1, j = ∑ Qm, k p (k , j ) exp[− (α m + k∆R )∆t ]
k
where
p(k , j ) is the probability of moving from node (m, k ) to node (m + 1, j ) and
the summation is taken over all values of k for which this is nonzero.
Note that both α 0 and B(0, m + 1) are immediately available from the
initial term structure. α 0 is simply the continuous rate of the zero-
coupon bond B(0, ∆t ) .
12.20.2 Hull-White One Factor Interest Rate Tree Model and Calibration
Method (Unequal Time Step)
Summary
This document specifies the procedures on generalising the equal time
step Hull-White tree to the unequal time step cases. This generalised
version of Hull-White tree is important for pricing financial products with
early exercise features because exercise dates do not usually fall on equal
time step nodes. The tree construction method is based on the book by
Brigo and Mercurio. Calibration of model is also mentioned in this section.
Assumption
∆xi is assumed to be constant across time ti .
Methodology
The Hull-White one factor model is by definition:
dr = (θ ( t ) − ar ) dt + σ dWt ∗ .
In the equal time step case, we start by constructing the tree for the
process dx = − axdt + σdWt ∗ and then determine θ (t ) by fitting the initial
term structure curve. For unequal time step case, we use the same
approach. This document only discusses on how to construct
dx = − axdt + σdWt ∗ since the fitting of initial term structure is the same as
equal time step case.
Note that xi +1, j +1 = xi +1, j + ∆xi+1 and xi+1, j −1 = xi+1, j − ∆xi+1 as in the equal time
step case. However, in the equal time step case, the following also hold:
xi+1, j +1 = xi , j + ∆xi +1 .
xi+1, j = xi , j .
xi+1, j −1 = xi , j − ∆xi+1 .
The three equations above are no longer true for the unequal time step
case, thus the formula for pu , pm and pd are also different. By setting
∆xi+1 = Vi 3 (this minimises the variability of the tree, please refer to Hull
and White 1994), we can find the following formula for unequal time step
cases:
1 η η
2
pu = + j ,k2 + j ,k .
6 6Vi 2 3Vi
2 η j ,k
2
pm = − .
3 3Vi 2
1 η j ,k η j ,k
2
pd = + 2
− .
6 6Vi 2 3Vi
η j ,k = M i , j − xi +1,k by definition.
It can be shown for the Hull-White model, the following are true:
M i , j = xi , j − axi , j ∆ti .
Vi , j = σ ∆t i .
Note that in the above formulas, we did not specify what is k . We now
explain the meaning of k and how to determine the value of k .
As we have mentioned before, for equal time step case, xi+1, j = xi , j , i.e., if
we branch to the next time period through the middle path, the vertical
node in the next time period we have branched to is still j and the rate
stays the same as the previous time period. However, it is not true for
the unequal time step case. Although we branch to the next node at time
ti +1 from time ti through the middle path, the vertical node at time ti +1
does not have to be j but can be some other number k . k is chosen in a
way such that the central node we branch to at time ti+1 , i.e., xi+1,k , is
closest to M i , j . It is now obvious that
M
k = round i , j .
∆xi+1
We then have the full specification of the model.
where
P ( 0, ti +1 )
= the initial bond price at time 0 maturing at time ti +1 and can be
observed from the initial term structure curve.
ph , j = probability moving from state h to j .
The final fitted interest rate tree can be calculated as:
ri , j = xi , j + α i .
Thus we can construct the whole tree for ri , j of the process
dr = (θ ( t ) − ar ) dt + σ dWt ∗ .
Calibration
We have assumed the parameters a and σ are known in the interest tree
model. However, in practice, we do not know these two values. We
should find a way to determine these parameters or in another words, to
calibrate the model. The usual way to calibrate the model is to use the
market instruments to find the market implied values for the parameters.
Step One:
Find a set of ‘calibrating instruments’, i.e. the instruments that are used
to estimate the parameter values. These calibrating instruments must be
instruments that the prices can be calculated from the calibrated model,
i.e. the Hull-White unequal time step tree in this case. For example, we
can choose European swaptions as our calibrating instruments. The
number of calibrating instruments must be no less than the number of
parameters to be estimated. The calibrating instruments chosen should
be as similar as possible to the instrument being valued. For example, if
we want to calculate the value for a Bermudan swaption, we then should
use say European swaptions as the calibrating instruments.
Step Two:
We calculate the calibrating instruments values using the calibrated
model and we denote Vi to be the model value of the i th calibrating
instrument. Note that Vi is a function of a and σ .
Step Three:
We can observe the actual market values for the calibrating instruments
and we denote U i to be the observed market value of the i th calibrating
instrument. Assuming there are n calibrating instruments, we calculate
the sum of least squares between the observed market values and model
values of the calibrating instruments using the formula:
n
SSE = ∑ (U i − Vi ) .
2
i =1
Step Four:
We choose a and σ such that the SSE is minimised. It can be done using
constrained non-linear optimisation algorithm (Box Constrained
Levenberg-Marquardt algorithm).
13.1 Collateral
Collateral refers to the practice of providing assets to secure an obligation.
Collateral can take many forms: property, inventory, equipment, receivables,
oil reserves, etc.
Collateralisation agreements are often used to secure repo, securities lending
and derivatives transactions. Under this agreement, a party who owes an
obligation to another party posts collateral, usually cash or securities, to
secure the obligation. In the event that the party defaults on the obligation,
the secured party may seize the collateral.
The arrangement can be unilateral where only one party is obliged to post
collateral, or bilateral where both parties may be obliged to post collateral.
Alternatively, the net obligation may be collateralised, in which case the party
who is the net obligator posts collateral for the value of the net obligation.
Periodically, the secured obligation is revalued and the collateral is adjusted
to reflect changes in value. The securing party adjusts the collateral holdings
depending on the current revaluation of the security.
XML Schema
CreditLine Schema
Name: Type Occurs Size Description
currency
1..1 3
string
drawnAmount
1..1
decimal
startDate 1..1
date
Razor Financial Principals
CreditLine Schema
Name: Type Occurs Size Description
periods 1..1
CreditLinePeriods
floatingRateDefinition
0..1
fpmlFloatingRateDefinition
calculationPeriodFrequency 0..1
fpmlCalculationPeriodFrequency
fixedRate
0..1
double
CreditLinePeriod Schema
lineAmount
decimal
maturityDate
date
committed
boolean
capitaliseInterest
boolean
</period>
</periods>
<calculationPeriodFrequency>
<periodMultiplier>3</periodMultiplier>
<period>M</period>
<rollConvention>MF</rollConvention>
</calculationPeriodFrequency>
<fixedRate>0.050000</fixedRate>
</creditLine>
referenceParty
fpmlPartyReference
interestRateStream
fpmlInterestRateStream
14.2.3 Pricing
Let
F pn = the face value of the bill
14.3.3 Pricing
Let
F pn = the face value of the bill
The company has the obligation to repay the face value of the paper to the
bearer at maturity.
14.4.4 Pricing
The value of the Commercial Paper is the present value of the face value of
the paper held.
Let
Pcp = the face value of the commercial paper
14.5.3 Pricing
The value of the bank accepted bill is the present value of the face value of
the bank bill.
Let
Pbab = the face value of the bank accepted bill
14.6 Bonds
14.6.1 Description of Instrument
Bonds are secured loans that investors make to corporations and governments.
Corporations and governments issue bonds when they want to raise capital.
Bonds typically pay out a stream of cash-flows to the bearer (the coupon
payments), including repayment of the face value at maturity.
A bond can be described by the following attributes:
The issue date is the day on which the life of a bond starts. The term to
maturity defines the period of time, or the life of the bond. The bond’s
maturity date is the date on which the last payment is due.
The face value (also called par value or principal sum) of a bond represents the
amount that will be repaid to the bondholder at maturity.
The coupon is the nominal annual rate of interest that is paid to the
bondholder on a regular basis. It is usually expressed as a percentage of the
face value (coupon rate). The coupon rate is either fixed or variable. The
coupon rate is given as an annualised percentage of the face value. For
example, a 7% semi-annual bond pays 3.5% of the face value twice a year.
The purchase price is the price the investor pays to buy the bond, i.e., to
receive this series of cash flows (coupon and face value).
The coupon period is not necessarily the same for all bonds. The coupon
payments are made semi-annually, which is common in the USA, or annually,
which is more common in Europe. The coupon payment dates are fixed.
There are many different types of bonds being traded in the market. Bonds can
pay interest that can be fixed (Coupon Bond), floating (Floating Rate Bond) or
payable at maturity (Zero Coupon Bond). Other types of bonds can be
converted into stock at maturity rather than paid interest (Convertible Bond).
Still other bonds can be called back by the issuing company before maturity
(Callable Bond).
fpmlBond Schema
Name: Type Occurs Size Description
fpmlPartyReference 1..1
calculationPeriodDates
1..1
fpmlCalculationPeriodDates
fpmlBond Schema
Name: Type Occurs Size Description
paymentDates
1..1
fpmlPaymentDates
calculationPeriodAmount
1..1
fpmlCalculationPeriodAmount
paymentAmount
0..1
fpmlAmount
14.6.4 Pricing
The value of a bond is equal to the present value of the expected cash flows.
The interest rate or discount rate used to compute the present value depends
on the yield offered on comparable securities in the market. The term
structure used to present value the bond’s cash flows is assumed to be
bootstrapped from comparable securities.
The first step in determining the value of a bond is to work out what it’s cash
flows are. The cash flows of a non-callable fixed rate coupon bond consist of
periodic coupon payments to the maturity date and the payment of the face
value at maturity. Determining the number and timing of cash flows that a
bond has is based on the roll convention and date basis convention of the
bond.
We can now calculate the bond price when we have the cash amounts to be
paid and the dates when they are to be paid. Each cashflow is valued to today
using our bootstrapped yield curve (the yield curves in RAZOR store spot
discount factors to enable faster cash flow discounting).
In RAZOR we take the pessimistic view with callable bonds, assuming that they
will not be called.
Let
Ci = the cashflow at time i
P = the bond’s principal
r = the coupon rate of the bond
d i = the number of days in the coupon period i
D = the number of days in the year
n = the number of coupon payments
Vbond = the value of the bond
di
Ci = Pr
D
Then
n
Vbond = Pdf n + ∑ Ci df i
i=0
Define:
Pc = clean price of a bond given explicitly from the market
P ( y ) = market bond price based on yield curve
ai = accrued interest per $1 notional or face value
s = spread
N = accrued interest per $1 notional or face value
Method:
From the yield curve, the market value of the bond price is: NP ( y ) . The
value of the given bond with accrued interest is: N ( P c + ai ) . To calculate
the spread, we solve for s iteratively using a bisection method such that:
NP ( y + s ) = NP ( P c + ai ) .
14.7.4 Pricing
The indexation factor is determined by the percentage change of the CPI from
the date of issue of the security to the settlement date.
K t = K t −1 (1 + P ) K is the indexation factor at next interest payment date.
P is the average percentage change in the Consumer Price Index over the two
quarters ending in the quarter which is two quarters prior to that in which the
next interest payment falls (for example, if the next interest payment is in
November, p is based on the average movement in the Consumer Price Index
over the two quarters ending the preceding June quarter)
CPI t
− 1
CPI t − 2 where CPI is the Consumer Price Index for the second
t
2
quarter of the relevant two quarter period, and CPI t − 2 is the Consumer
Price Index two quarters previously.
If the settlement date occurs between two payment dates then the indexation
factor is discounted back from the next payment date.
i.e. = K t (1 + P )
f
−
where f is number of days from next payment date and d is
d
the number of days between next payment date and previous payment date.
Pricing Formula:
The Market Value of a CIB is calculated according to the formula:
f /d
MV =
v
p
[ ]
∗ g ( x + a n ) + 100v n ∗
K t FV
∗
100 100
1 +
100
where
v = 1 / (1 + i )
p = Average percentage change in CPI over the two quarters ending in the
quarter two quarters before that in which the next interest payment occurs =
[CPI t / CPI t −2 − 1] ∗100 / 2 . For example: if next coupon payment is in August
2004, CPI t will be the 2004 March quarter CPI and CPI t − 2 will be the 2003
September quarter CPI .
an = (1 − v )/ i
n
FV = Face Value
14.8.4 Pricing
CPI t
The indexation factor is IF = . If the settlement date occurs
CPI t −1
between two payment dates then the indexation factor is discounted
back from the next payment date.
f
−
CPI t d
i.e. = where f is number of days from next payment date and d is
CPI t −1
the number of days between next payment date and previous payment date.
Pricing Formula:
The Market Value of an IAB is calculated according to the formulae:
f /d
v
∗ (Z + a n ) ∗ Bt −1 ∗ q ∗
FV
MV = if the CPI value for the next coupon
q 100
payment is not yet known.
f /d
v
∗ (Z + a n ) ∗ Bt ∗
FV
MV = if the CPI value for the next coupon
q 100
payment is known
where
v = 1 / (1 + i )
an = (1− v )/ i
n
FV = Face Value
Valuation Method
a) The MTM calculation is similar to a regular coupon paying bond with the
difference being that the coupon and principal repayments are scaled by
an “Indexation Coefficient” based on the UK Retail Price Index (RPI).
b) In order to calculate the Indexation Coefficient, the following are
required:
i. The RPI applicable when the bond was originally issued, the “Base
RPI”. This will be sourced from bond static data.
ii. The RPI applicable for the coupon payment concerned. Note the
8-month lag means that the RPI quote is taken for the month 8-
months prior to the coupon payment. RPI quotes will be sourced
from market data.
c) For the current coupon period the RPI is known. For future coupons and
the principal repayment, the RPI is forecast using an assumed annual
rate of inflation. This is the parameter value to be modelled, for
example, the forecast inflation rate is assumed to be 3% pa.
d) The NPV for an ILG with Eight-Month Indexation Lag is calculated as
follows:
n
Trade NPVILG8 = ∑ I i .Ci .Fi .DFi + P.Fn .DFn
i =1
where,
Fi = Indexation Coefficient for ith coupon (rounded to
5 decimal places)
RI imi − 8
=
RI Base
RI imi −8 = Reference Index Value for ith coupon, being 8
months prior to mi (if quote is not available, then
value is approximated as described below)
mi = month/year in which the ith coupon payment
falls
RIBase = Reference Index Value applicable at bond issue
date
n = number of future coupon payments
Ci = ith coupon payment based on appropriate
accrual basis
Ii = ex-interest indicator for ith coupon payment; Ii=0
for ex-interest, Ii=1 for cum-interest.
P = bond par amount
DFi = bond curve discount factor from valuation date
to ith coupon date
mi − 8− M
RI imi −8 = RI M (1 + z ) 12
where,
RIM = most recently published RPI quote
mi = month/year in which the ith coupon payment
falls
M = month/year of the most recently published RPI
z = assumed index annualized growth rate (3%)
AccInt ILB 8 = Real Accrued Interest x Index Coeff for next coupon
No. of actual accrued days up to settlement date
C1 . * F1
= No. of actual days in coupon period
where,
C1 = next coupon payment (ie. coupon rate / coupon
frequency x notional)
F1 = Indexation Coefficient for the next coupon
h) UK ILGs issued prior to 1 July 2005 (ie. 8 month index lag) trade on an
inflation-adjusted basis. Accordingly, the price of such gilts reflects
inflation since it was originally issued, eg. most of these ILGs trade at a
price well in excess of £100 per £100 nominal.
i) The following examples describe the application of the rules for
determining the appropriate Indexation Coefficient:
i. Given a Valuation Date of 10 April 2009, a Base RPI of 102, the
most recent RPI published for index month Feb-09 of 125, and a
next coupon payment date of 1 September 2009 (or any other day
in Sep-09):
mi = Sep-09
mi-8 = Jan-09
RI imi −8 = RPI for index month Jan-09 (published during Feb-
09), eg. 120
M = Feb-09
Fi = 120 / 102 = 1.176471
ii. Given a Valuation Date of 10 April 2009, a Base RPI of 102, the
most recent RPI published for index month Feb-09 of 125, and an
ith coupon payment date of 1 March 2012 (or any other day in
Mar-12):
mi = Mar-12
mi -8 = Jul-11
M = Feb-09
RIM = 125
z = 0.03
RI imi −8 = 125 * ( 1 + 0.03 ) ^ ( 29 / 12 )
= 134.255877
Fi = 134.255877 / 102 = 1.316234
Valuation Method
a) The valuation method for ILBs with three-month indexation follows the
de facto industry standard and is commonly referred to as the “Canadian
Model”.
b) The Indexation Coefficient under the Canadian Model:
(i) is based on index quotes 3-months and 2-months prior to the
coupon payment,
(ii) is calculated using linear interpolation.
c) The NPV for an ILB with Three-Month Indexation Lag is calculated as
follows:
n
Trade NPVILB3 = ∑ I i .C i .Fi .DFi + P.Fn .DFn
i =1
where,
Fi = Indexation Coefficient for ith coupon (rounded to
5 decimal places)
RI iinterp
=
RI Base
RI iinterp = Reference Index Value for ith coupon based on
linear interpolation as described below
RIBase = Reference Index Value applicable at bond issue
date
n = number of future coupon payments
Ci = ith coupon payment based on appropriate
accrual basis
Ii = ex-interest indicator for ith coupon payment; I=0
for ex-interest, I=1 for cum-interest.
P = bond par amount
DFi = bond curve discount factor from valuation date
to ith coupon date
interp
d) The interpolated Reference Index Value for the ith coupon, RI i , is
determined using the following rules:
1. The Reference Index Value applicable to the first day of the month
in which the coupon falls, mi, is the index value for month mi -3.
For example, the Reference Index Value applicable to June 1 is the
index value for March.
2. The Reference Index Value for any other day in month mi is
calculated by linear interpolation between the index values for
month mi -3 and month mi -2, according to the following formula:
d −1
( )
RI iinterp = i m RI imi − 2 − RI imi −3 + RI imi −3
NDi
i
where,
where,
=
ND
(
d RS − 1 mRS − 2
)m RS − 3
RI RS − RI RS
m RS
m RS − 3
+ RI RS
RS
f) ILBs based on the Canadian Model trade on a real price basis. That is,
the impact of inflation since the bond was first issued is effectively
stripped out from the price for trading purposes, and hence will
typically have a quoted price around par. However, settlement prices
will be on the basis of the inflation-adjusted price. The relationship
between traded real price and settlement inflation-adjusted prices is as
follows:
Inflation-Adjusted Dirty Price = (Real Clean Price + Real Acc Int) x FRS
where,
FRS = Indexation Coefficient as at Regular Settlement
date, calculated as per (e) above
ii. Given a Valuation Date of 25 March 2009, a Base RPI of 102, the
most recent RPI published for index month Feb-09 of 125, and a
next coupon payment date of 20 April 2009:
mi = Apr-09
mi -3 = Jan-09
mi -2 = Feb-09
RI imi −3 = RPI for index month Jan-09, eg. 120
RI imi − 2 = RPI for index month Feb-09, eg. 125
di = 20
ND imi = 30
RI iinterp = ( 20 -1 ) / 30 * ( 125 – 120 ) + 120
= 123.166667
Fi = 123.166667 / 102 = 1.207516
iii. Given a Valuation Date of 25 March 2009, a Base RPI of 102, the
most recent RPI published for index month Feb-09 of 125, and a
next coupon payment date of 21 July 2009:
mi = Jul-09
mi -3 = Apr-09
mi -2 = May-09
M = Feb-09
RPIM = 125
z = 0.03
RI imi −3 = 125 * ( 1 + 0.03 ) ^ ( 2 / 12 ) = 125.617328
RI imi − 2 = 125 * ( 1 + 0.03 ) ^ ( 3 / 12 ) = 125.927134
di = 21
ND imi = 31
RI iinterp = ( 21 -1 ) / 31 * (125.927134 – 125.617328 ) +
125.617328
= 125.817203
Fi = 125.817203 / 102 = 1.233502
Valuation Method
a) Future cashflows up to the last discount curve point will be discounted
directly using curve DFs.
b) Coupons beyond the last curve point will be valued using a yield-to-
perpetuity calculation.
c) The NPV for a perpetuity is calculated as follows:
n
Cn
Trade NPVPerp = ∑ Ci DFi + .DFn
i =1 r
where,
Ci = ith next coupon payment based on appropriate accrual basis.
n = number of coupon payments up to last bond discount curve point.
DFi = bond curve discount factor from valuation date to ith coupon date.
r = DFLast −
1
YFLast . f − 1 (using DF) or
r = (1 + z Last ) f − 1 (using annualized zero rate).
1
YFLast = year fraction between valuation date and last date on bond discount
curve.
DFLast = bond curve discount factor from valuation date to last date on bond
discount curve.
zLast = annual compounding zero rate at last date on bond zero curve.
f = coupon frequency, ie. Number of coupons per year.
Terminology - Dates
TD = Trade Date
V = Valuation Date
TS = Trade Settlement Date
RS = Regular Settlement Date
CD j = Exdividend or coupon date if exdivided date equals coupon date
Terminology – Accruals
LDFV 1
LiborV ,TS = Libor Curve Derived Rate from V to TS = − 1
LDFTS α V ,TS
LDFV 1
LiborV , RS = Libor Curve Derived Rate from V to RS = − 1
LDFRS α V , RS
RIFRS 1
R RS ,TS = Repo Curve Derived ForwardRate from RS to TS = − 1
RIFTS α RS ,TS
RIFCD 1
RCD ,TS = Repo Curve Derived Forward Rate from CD to TS = − 1
RIFTS α CD ,TS
Terminology - Cashflows
C j = Cashflow j
[ ]
n
FC = Sum of Forward Values of Interim Coupons, at TS = ∑ C j 1 + RCD j ,TS α CD j ,TS
j
For clarity purposes: if RS < exDivDate < TS then FC <>0 otherwise FC=0
Cash Bond
This is a separate valuation methodology for forward settling bonds. Cash bonds
settled on or after the ex-dividend, or coupon date if no ex-dividend date exists,
will be deemed to be ex-coupon. Therefore, if the ex-divided/coupon date
occurs between RS and TS , then FC will have some value otherwise FC = 0 . If
both the ex-dividend date and the coupon date occur between RS and TS then
the coupon must obviously only accrue interest from the coupon date to TS
rather than from the ex-dividend date. However if the ex-divided date falls
before TS while the coupon date falls after TS then the coupon will need to be
discounted back to TS .
1 1 1
Trade NPV = B − FC − FCV
1 + LiborV ,TS αV ,TS 1 + LiborV ,TS αV ,TS 1 + LiborV ,TS αV ,TS
where:
PV in DRS = PVBid = Bond Clean Bid Price at the Valuation Date
Formatted: Body Text 2, Line
spacing: Multiple 1.1 li
NPV for the seller of the cash bond trade is:
1 1 1
Trade NPV = FCV − B − FC
1 + LiborV ,TS α V ,TS 1 + LiborV ,TS αV ,TS 1 + LiborV ,TS αV ,TS
where:
PV in DRS = PVAsk = Bond Clean Ask Price at the Valuation Date
14.12.3 Pricing
In the case of a bond, valuation consists of present valuing a series of known
cash flows. With an FRN, the only cash flows we know are the coupon interest
payment at the end of the current interest payment period and the repayment
of the principal at maturity — all of the intermediate coupon payments are
unknown.
There are two methods to evaluate the price of floating rate notes. The first
method is to use the discounting of cash flows similar to the floating side of an
interest rate swap and another method is to use a closed form pricing formula.
Note that MBS has the same payment structure as FRN except that MBS has a
chance of early repayment. Due to the similarity in the payment structure of
these two types of contracts, the pricing methodologies are similar. We shall
discuss the pricing of both FRN and MBS in the following.
1. Discounting Cash Flows
For FRN, the valuation is the same as floating leg of an interest rate swap.
The intermediate coupon payments can be calculated from the forward
curve. For MBS, it is the same as FRN except that we do not know the
length of the contract. We can simply use the weighted average life ( WAL
) as a proxy for the length of MBS. The maturity date used for the MBS is
the WAL if it falls on a coupon date, otherwise it will be set to the coupon
date following the WAL . The valuation is then carried out the same way as
the FRN. The only difference is that we multiply the final discounted value
of the MBS by the bond factor ( BF ) to obtain the final price.
2. Closed Form Pricng Formula
We first define some notations:
FV = Face value.
IM d
C = Next coupon amount per $100 FV , BBSW + × .
100 365
IM = Issue margin.
TM = Trading margin.
f = Number of days from settlement to next coupon date.
1 − (1 + i )
−n
a = Annuity factor .
i
TM
s+
i = 100 .
freq ×100
s = Swap rate.
r = Discount rate.
n =
Number of coupon periods between the next coupon date and the WAL date
WAL − NCD
with the appropriate n rounding convention = × Frequency .
365.25
IM − TM
100 + C + × a
100 × freq × FV × BF .
TM f 100
1+ r + ×
100 36500
The value of a FRN is by substituting time to maturity for WAL and 1 for
BF .
Razor values the following Eligible Securities for specific or general collateral:
a) Bonds
i. Fixed rate.
ii. Zero Coupon.
iii. Perpetual.
b) Strips.
c) Bills
i. Discount yield-quoted.
ii. Money market yield-quoted.
d) Inflation -Linked Bonds
i. UK ILG Eight-Month Indexation Lag.
ii. UK ILG Three-Month Indexation Lag (Canadian Model).
iii. EU ILB Three-Month Indexation Lag (Canadian Model).
there is counterparty risk with seller of Repo and an underlying security issuer
risk. Under a classical Repo agreement the borrower of the cash (lender of the
underlying asset) may still receive any cash flows generated by the asset prior
to termination of the deal and that passed on by Repo seller.
14.13.4 Pricing
Define
S1 = Cash payment for the spot leg at t1.
S2 = Cash payment for the forward leg at t1.
B1 = Bond price for the spot leg per 100 at t0.
B2 = Bond price for the forward leg per 100 at t0.
RR = Repo rate from repo curve.
RL = Discount rate from RF curve.
Points to note:
Although the above uses ACT/360 the day count convention should follow trade
and market configuration as usual.
The bond price B is obtained by pricing the bond (discounted cashflows) using
the bond curve and value date t0. It is the dirty price at t0.
Given the selling and purchase prices of the bond are not the same due to bid-
ask spread, the above pricing formula has made spread adjustment to cater for
this mismatch.
rate. If a coupon is paid it will be handed over to the seller on the coupon
payment date.
c) For the short collateral holder of a Euro GC trade, the NPV is calculated
exactly as per a Sterling GC trade, given as follows:
Product Decscription
The Protected Bill Index Deposit (GBID) is similar to the Guaranteed Bill
Index Deposit (GBID) but which also protects the investors capital, by
flooring any return to zero and so protecting the investors from paying for
any negative return on the index .
GBID maturity dates will be the quarter end dates of March, June,
September and December. Interest is calculated by reference to the daily
rate of return of the UBS Australian Bank Bill Index. Interest is paid
quarterly in arrears on the maturity date.
Example
- <deal>
- <trade>
- <tradeHeader>
<tradeDate>2007-09-13</tradeDate>
<tradeType>CDBD</tradeType>
<counterparty>56789</counterparty>
<internalUnit>1234</internalUnit>
<buySell>SELL</buySell>
<status>OPEN</status>
</tradeHeader>
- <extensions>
- <extension>
<value>HISTORICAL</value>
<name>HistoricalRateSet</name>
</extension>
- <extension>
<value>UBSBBI</value>
<name>AUD BBI 1D</name>
</extension>
</extensions>
- <product>
- <bond>
- <bondStream>
<payerPartyReference href="56789" />
<receiverPartyReference href="1234" />
- <calculationPeriodDates id="CalcPeriodDates0">
- <effectiveDate>
<unadjustedDate>2007-08-13</unadjustedDate>
- <dateAdjustments>
<businessDayConvention>MODFOLLOWING</businessDayConvention>
</dateAdjustments>
</effectiveDate>
</calculationPeriodDates>
- <calculationPeriodAmount>
- <calculation>
- <notionalSchedule>
- <notionalStepSchedule>
<currency>AUD</currency>
<initialValue>100000</initialValue>
</notionalStepSchedule>
</notionalSchedule>
- <floatingRateCalculation>
<floatingRateIndex>BillIndex</floatingRateIndex>
</floatingRateCalculation>
<dayCountFraction>ACT/360</dayCountFraction>
</calculation>
</calculationPeriodAmount>
- <principalExchanges>
<intermediateExchange>false</intermediateExchange>
<initialExchange>false</initialExchange>
<finalExchange>false</finalExchange>
</principalExchanges>
</bondStream>
<productType>GBID</productType>
<securityId>GBID</securityId>
</bond>
</product>
</trade>
- <dealHeader>
<dealType>CDBD</dealType>
<dealDate>2009-02-19</dealDate>
<status>OPEN</status>
</dealHeader>
</deal>
The UBS Warburg Bank Bill Index is based on a series of 13 91-day bank
bills that mature at 7 day intervals (every Tuesday). Upon maturity, the
face value of the maturing bill is reinvested in a new 91-day bill at its
discounted price.
The Index is calculated daily by valuing these 13 bank bills. The yield for
each bill is determined by interpolation between the 10:15 am cash rate,
1-month BBSW and 3-month BBSW rates, as shown in the table below. The
Index is calculated by summing the discounted values of the 13 bills and
dividing by 10000.
R1 = cash rate.
R2 = 1 month BBSW rate.
R3 = 3 month BBSW rate.
Example
Cash Rate = 6.5%.
1 Month BBSW Rate = 7.07%.
3 Month BBSW Rate = 7.0983%.
Current Date = 2007-9-13.
Yield Rate = Simple Interest.
Day Convention = ACT/365.
Valuation
There are 4 methods (parameter “MTMMethod”) for modeling GBID/PBID
products.
For the get MTM function – the value returned for MTMMETHOD of …
MTM – cashflow based, notional and interest – overnight or at maturity - pv’d to value date
of flows
FACE – cashflow based, notional and interest – overnight or at maturity - sum of face value
of flows
STEP – step schedule – returns current balance (notional outstanding)
BBI – method calculates return on BBI Index
Interest Calculation
The GBID/PBID net interest calculation is the sum of the historic accrued
interest and forecast interest calculation.
The balance at time t will be calculated from the original deposit and any
notional adjustments which have occurred before time t
Daily return
InterestT = BalanceT ×
100
BBI T
Daily GBID return = − 1 × 100, Daily PBID return = max(Daily GBID return, 0 )
BBI T −1
Where
BBI T = UBS Australian Bank Index for Day T
BBI T −1 = UBS Australian Bank Index for Day T − 1
The BBI Index is only calculated and provided by TCV for business days.
Interest is calculated daily for each day of the month including non-
business days. For non business days the interest is calculated from the
last known daily return.
All previous daily interest amounts are calculated from the historical
observations for the BBI. If the BBI Index History is not provided then
accrued interest will be set to zero.
For historic interest to be calculated for time t – the rate of return currently is BBI(t)/BBI(t-1)
BUT should be BBI(t-1)/BBI(t-2) – so interest is P(t-1)*( BBI(t-1)/BBI(t-2) – 1)
No interest is calculated for start date – ie on day of initial deposit the user does not earn
interest.
On start date the first days interest can only be forecast.
On first days interest day – the interest is calculated from BBIs observed at COB on start date
ie t-1 and previous day ie t-2
Forecast accrued interest is implemented in the setting up of the transition cache – so there
is no impact from forecast accrued interest for VaR or stress/sensitivity – ie its not
dependent on the current scenario and only the base scenario – needs to be fixed – but
lower priority
Forecast and Historic daily interest mostly caters for changing notional correctly – except on
the days of notional change – interest should be calculated on previous notional
Weekend handling for historic interest calculation – if observation for t-1 is not known due
to being a weekend the previous return is applied for interest at time t
Calculation of Interest
, – forward discount factor from time to time from the BBI
curve
NOTE: ,
1
, 1!
Net Interest: is the sum of daily interest already accrued plus sum of the
forecast daily interest
$ '
" # # ,
% & %$&
Annex:
In case of interest to anyone, justification for this calculation for forward
forecast daily interest is …
For , …
,
1
, -
(1 , ,
365
Hence …
1
-
(1 , ,
365
And …
365
, ( 1,
The calculated interest for a forward daily period from time 1 to time
is then found by setting 1
, ( 1,
Transaction Details:
Principal = $15,000,000.
Interest = $1,869.81.
Closing Balance = $15,001,869.81.
Equity Example
<equity>
<instrumentId>ITE</instrumentId>
<description>ITE Ordinary</description>
<effectiveDate>
<unadjustedDate>2003-12-12</unadjustedDate>
</effectiveDate>
<numberShares>100000</numberShares>
<exchangeCode>ASX</exchangeCode>
<currency>AUD</currency>
</equity>
15.1.4 Pricing
Let
Pccy = price per share in currency ccy
XML Representation
<equity>
<instrumentId>Basket</instrumentId>
<forwardType>Vanilla</forwardType>
<basket>
<basketAsset>
<id>ANZ</id>
<weightingFactor>0.3</weightingFactor>
</basketAsset>
<basketAsset>
<id>TEL</id>
<weightingFactor>0.2</weightingFactor>
</basketAsset>
<basketAsset>
<id>BHP</id>
<weightingFactor>0.5</weightingFactor>
</basketAsset>
</basket>
<numberShares>100000</numberShares>
<exchangeCode>ASX</exchangeCode>
<currency />
<paymentAmount>
<paymentType>SETTLEMENT</paymentType>
<paymentAmount>
<currency>AUD</currency>
<amount>1666000</amount>
</paymentAmount>
<adjustedPaymentDate>2005-12-09</adjustedPaymentDate>
</paymentAmount>
</equity>
Pricing
The Razor pricing adapter for Equity Forwards currently supports the
following methods of pricing for a single share:
Please Note that the Forward Equity Price on the Trade is expected to be
specified as an average equity price across the basket, which is multiplied
by the number of shares to get the total basket value.
b ( t j )(t j − t )
F (t j ) = S (t )e
In order to cater for Basket Equity Forwards, the Future Equity Price is
now a Future Equity Basket Price and is required to take all equity shares
that make up the basket into account, hence the Future Equity Basket
Price Calculation becomes:
N
Fb (t j ) = ∑ wi Fi (t j )
i
XML Schema
The Current Equity Schema (used for Equity Forwards) does not support
basket definitions. An additional tag is required in the Equity schema to
enable the basket definition as shown below, where subsequent
underlying equities and their respective weights toward the basket can be
defined.
Please Note: The weights should be normalized and the number of shares
specified on the trade is required to be equal to the total number of
shares that make up the basket across all underlying equities. Note this is
the same implementation as for Equity Basket Asian Options.
fpmlEquity Schema
Name: Type Occurs Size Description
fpmlEquity Schema
Name: Type Occurs Size Description
instrumentId
1..1 Equity Id or “Basket”
string
description
0..1 The long name of the security
string
basket
0..1 Basket, grouping of assets and weightings
rzmlBasket
forwardType
0..1 The type of the equity forward
string
settlementDays The number of settlement days for this
0..1
positiveInteger equity
numberShares
1..1 Number of shares
double
exchangeCode
1..1 Stock Exchange Code eg:ASX
ExchangeCode
currency
1..1 Currency
fpmlCurrency
paymentAmount
0..1 Payment amount
fpmlPayment
Quanto
In quanto equity forward, the exchange rate is fixed.
XML Representation
<equity>
<instrumentId>Basket</instrumentId>
<forwardType>Quanto</forwardType>
<basket>
<basketAsset>
<id>ANZ</id>
<weightingFactor>0.3</weightingFactor>
<guaranteedFXRate>1.2</guaranteedFXRate>
</basketAsset>
<basketAsset>
<id>TEL</id>
<weightingFactor>0.2</weightingFactor>
<guaranteedFXRate>1.4</guaranteedFXRate>
</basketAsset>
<basketAsset>
<id>BHP</id>
<weightingFactor>0.5</weightingFactor>
<guaranteedFXRate>1</guaranteedFXRate>
</basketAsset>
</basket>
<numberShares>100000</numberShares>
<exchangeCode>ASX</exchangeCode>
<currency/>
<paymentAmount>
<paymentType>SETTLEMENT</paymentType>
<paymentAmount>
<currency>USD</currency>
<amount>1666000</amount>
</paymentAmount>
<adjustedPaymentDate>2005-12-09</adjustedPaymentDate>
</paymentAmount>
<settlementDays>4</settlementDays>
</equity>
Define
t= maturity date of the contract.
ρ = the correlation between the underlying stock and FX rate.
σS = the equity price volatility coming from the volatility matrix
and is a
deal specified quantity.
σX = the volatility of FX rate.
X GER = the guaranteed exchange rate.
Q (t ) = the continuous dividend yield of foreign equity.
zcdf f ( 0, t )
= discount factor on time period ( 0, t ) from the foreign zero curve.
zcdf d ( 0, t )
= discount factor on time period ( 0, t ) from the domestic zero curve
(USD).
MSD = the market settlement date.
zcdf f ( t , t + MSD )
= forward discount factor on time period ( t , t + MSD ) from the foreign zero
curve which is defined as:
zcdf f ( 0, t + MSD )
zcdf f ( t , t + MSD ) = .
zcdf f ( 0, t )
S = spot price denominated in specified foreign currency.
− Q t + ρσ σ ⋅t zcdf f ( t , t + MSD )
FGER ( t ) = X GER Se ( ( ) S X ) .
zcdf f ( 0, t + MSD )
Discrete Dividends
Define
di = represent decalred and projected discrete dividends going ex-
dividend
on or before t .
B (t ) = the basis function to time t .
ρ = the correlation between the foreign equity and the exchange
rate
(domestic/foreign).
σX = the volatility of the exchange rate (domestic/foreign).
FX S / D = the spot FX rate used to convert discounted dividends from
their
currency to that of the underlier.
q ( tN , t )
= forward dividend yield in time period ( t N , t ) which is defined as:
q ( ti −1 , ti ) =
(Q (t ) ⋅ t ) − (Q (t ) ⋅ t ) .
i i i −1 i −1
ti − ti −1
zcdf D ( 0, Di )
= the discount factors on time period ( 0, Ti ) from the zero curve of
the
currency of each discrete cash dividend.
N = index reference for the last discrete dividend which will go
ex-dividend
on or before time t .
S ⋅ zcdf f ( t , t + MSD ) S /D ∑ D (
− FX zcdf 0, PDi) ⋅ d i ⋅ .
i =1 zcdf f ( 0, t + MSD )
©2009 Razor Risk Technologies Page 259 of 373
Razor Financial Principals
XML Representation
<equity>
<instrumentId>Basket</instrumentId>
<forwardType>DVFEF</forwardType>
<basket>
<basketAsset>
<id>ANZ</id>
<weightingFactor>0.3</weightingFactor>
</basketAsset>
<basketAsset>
<id>TEL</id>
<weightingFactor>0.2</weightingFactor>
</basketAsset>
<basketAsset>
<id>BHP</id>
<weightingFactor>0.5</weightingFactor>
</basketAsset>
</basket>
<numberShares>100000</numberShares>
<exchangeCode>ASX</exchangeCode>
<currency/>
<paymentAmount>
<paymentType>SETTLEMENT</paymentType>
<paymentAmount>
<currency>USD</currency>
<amount>1666000</amount>
</paymentAmount>
<adjustedPaymentDate>2005-12-09</adjustedPaymentDate>
</paymentAmount>
<settlementDays>4</settlementDays>
</equity>
Define
X = the spot exchange rate (domestic/foreign).
f = foreign currency.
d = domestic currency.
D = dividends.
S ⋅ − FX S / D ⋅ ∑ zcdf D ( 0, PDi ) ⋅ di ⋅ .
zcdf d ( 0, t )
i =1 zcdf d ( 0, t + MSD )
Define
n = number of forward contracts in the basket.
fpmlEquityOption Schema
Name: Type Occurs Size Description
fpmlStrike
numberOfOptions
1..1 The number of options traded
Int
optionEntitlement
1..1 The entitlement per option
Double
equityExercise
1..1 The option details
fpmlEquityExercise
equityOptionFeatures
0..1 The index option features
fpmlEquityOptionFeatures
equityPremium
1..1 The option premium
fpmlPremium
15.3.3 Pricing
European Style
Vanilla Call and Put options are priced using the standard Black-Scholes
formula
C = Se − qT N (d 1 ) − Xe − rT N ( d 2 ) ,
P = Xe − rT N ( −d 2 ) − Se − qT N ( −d1 )
S σ2 S σ2
ln( ) + (r − q + )T ln( ) + (r − q − )T
d1 = X 2 d2 = X 2 = d1 − σ T
σ T and σ T .
S=S−
∑D ei
i
− rt i
where
t i < T - is time in years to i’th dividend payout
American Style
American options on stock can be priced in various ways, using either closed-
form approximations or numerical solutions – binomial tree model or finite
differences method. All of which are implemented in Razor.
α = (I − X )I −β
2
1 b b 1 r
β = − 2
+ 2 − +2 2
2 σ σ 2 σ
I 2 ln( I / S )
φ ( S , T , λ , γ , H , I ) = e λ S γ ( N (d ) − ( ) k N ( d − ))
S σ T
1
λ = ( −r + γb + γ (γ − 1)σ 2 )T
2
ln(S / H ) + (b + (γ − 12 )σ 2 )T
d =−
σ T
2b
κ = 2 + ( 2γ − 1)
σ
I = B0 + ( B∞ − B0 )(1 − e h (T ) )
B0
h(T ) = −(bT + 2σ T )
B∞ − B0
β
B∞ = X
β −1
r
B0 = max( X , ( )X )
r −b
C = αS β − αφ ( S , T , β , I , I ) + φ ( S , T ,1, I , I ) − φ ( S , T ,1, X , I ) −
Xφ ( S , T ,0, I , I ) + Xφ ( S , T ,0, X , I )
P( S , X , T , r , b,σ ) = C ( X , S , T , r − b,−b,σ )
Black Scholes
The generic Black-Scholes model can be extended to cover options on a cash
SPI. The major difference is that we must now incorporate an asset income in
the form of dividends. We will assume the underlying index is broad-based and
thus the payment of dividends is approximately continuous.
For a background to the binomial model see Options, Futures, and Other
Derivatives (fifth International edition) by John C. Hull pages 392 to 403,
Chapter 12 Paul Wilmott on Quantitative Finance, or alternatively pages 123-
140 of Modelling Derivatives in C++ by Justin London.
Vij = the price of the option at the i’th step and the j’th node
d = 1/ u
R = e rδt
R−d
pUp =
u−d
S ij = S 00 u j d i − j
Vnj = max(0, S 00 u j d i − j − X )
Vnj = max(0, X − S 00 u j d i − j )
Vij = the price of the option at the i’th step and the j’th node
q = the dividend yield
For a put:
Vij = the price of the option at the i’th step and the j’th node
d = 1/ u
R = e rδt
R−d
pUp =
u−d
S nj = S 00 u j d n − j
For a put:
With the discrete dividend model, the binomial tree does not linkup and jumps
are required from the last node prior to an ex-dividend date to the ex-dividend
date. From the ex-dividend date a new tree is created with the following
parameters as before with the exception that now:
T − tk
δt =
n−i
The new tree then continues as per normal until the next ex-dividend date
where a new jump and tree needs to be created.
S t j = S ij − Dk
k
Imposing the no-arbitrage constraint that the option value is either the option
value with the dividend, or the payoff:
For a call:
For a put:
Since the binomial tree does not recombine, and a new tree has to be started
for each ex-dividend date, recursion is used to simplify the implementation.
Considering the vast number of extra nodes that this non recombining model
generates a significant impact on performance will occur, particularly for
frequent dividends on a long dated expiry option.
For further reading on this discrete dividend payment model see pages 129-131
and 146 to 147 of Paul Wilmott on Quantitative Finance. For an
implementation visit Financial Principle’s Discrete Dividend model by Bernt
Arne Odegaard.
Delta
Delta is defined as the difference in value of the option by perturbing the
underlying equity price S by ±1bp where all other parameters remain
constant.
Let
f = a function defined as the price of the option
S = Underlying equity spot price
1bp = 1 basis point or 0.0001
∂P f ( S + 1bp) − f ( S − 1bp )
∆= ≈
∂S 2bp
Gamma
Gamma is defined as the difference in delta by perturbing the underlying
equity spot price S by ±1bp where all other parameters remain constant.
In Razor we approximate gamma by using the second order finite central
difference.
Let
Vega
Vega is defined as the difference in value of the option by perturbing the
equity volatility σ by ±1% where all other parameters remain constant.
Let
f = a function defined as the price of the option
σ = Implied volatility of the underlying equity
1% = 1 percent as a decimal or 0.01
∂P f (σ + 1%) − f (σ − 1%)
Λ= ≈
∂σ 2%
Theta
Theta is defined as the difference in value by shifting the value date
forward by one day where all other parameters remain constant. Since
time moves in a forward direction, for theta we use the backward finite
difference which is defined as:
∂ f ( x ) − f ( x − h)
≈ h > 0
∂x h
Let
f = a function defined as the price of the option
T = Time to expiration in years.
T−1 = Time to expiration minus 1 day in years.
Where
T−1
dfT−1 = df T
∂P f (T−1 , dfT−1 ) − f (T )
Θ=− ≈
∂T 1dy
15.4.3 Pricing
The index Option is priced exactly the same as the equity option above. The
only factor that needs to considered is in the amount or position of the trade
where the Tick Value needs to be factored in.
EquityIndexOptionPosition = EquityOption Pr ice * numberOfOptions * optionEntitlement * TickUnit
15.5.2 Valuation 1
The basket option price in Razor is approximated using single-equity
Black-Scholes formula with adjustments to the input variables. The spot
rate, cost of carry and volatility in the single-equity Black-Scholes
©2009 Razor Risk Technologies Page 271 of 373
Razor Financial Principals
formula are replaced by basket spot rate, basket cost of carry and basket
volatility.
Define:
t = the valuation date.
T = the option expiration date.
i
St = the price of asset i in the basket at time t .
bti,T = the cost of carry of asset i in the basket for time T implied
at time t .
σ ti,T = volatility of asset i in the basket for time T implied at time
t.
K = the strike price.
Stb = the basket price at time t .
btb,T = the basket cost of carry for time T implied at time t .
σ b
t ,T = the basket volatility for time T implied at time t .
rt ,T = the risk-free rate for time T implied at time t .
wi = weighting of asset i in the basket.
ρij = correlation coefficient between asset i and asset j .
n = number of assets in the basket.
n
Stb = ∑ wi Sti .
i =1
n
b b
t ,T = ∑ wi bti,T .
i =1
2 i −1
∑ w (σ )
n n
σ tb,T = i
2 i
t ,T + 2∑∑ wi w j ρijσ ti,T σ t j,T .
i =1 i =1 j =1
Note that bti,T , rt ,T and σ ti,T can be obtained from the term-structure curve
for each individual asset i .
Pricing Formulas:
(b ) N d − Ke − r T N d .
( 1) ( 2)
b
− rt ,T T
c = Stb e t ,T t ,T
( )
2
Sb
b σ tb,T
+
ln t + T
b
t ,T
K 2
d1 = .
σ T
d 2 = d1 − σ t ,T T .
b
This valuation method only supports single currency. All assets must be
denominated in the same currency as the strike price. It also supports
continuous dividend yield but not discrete dividend payout.
15.5.3 Valuation 2
Razor also supports another method of calculating equity basket option.
We can use the Asian quanto basket formula to calculate the equity
basket option price. This valuation method has the advantage that it
supports cross currencies for the asset basket. We first recall the formula
for Asian quanto basket.
Define:
t = the valuation date.
T = the option expiration date.
na = number of underlying assets.
nf = number of fixings.
m = number of observed fixings.
C = payoff currency.
Si ( t ) = i by 1 array of asset prices i at time t .
Ci = currency i for asset i .
σ S (t j )
i
= i by j matrix of volatilities of asset i at time t j .
Xi
= i by 1 array of exchange rate quoted as payoff currency per
currency i ,i.e. C / Ci .
σ X (t j ) i
= i by j matrix of volatilities X i at time t j .
We further define:
S (t n ) = ∑∑ wij S i (t j ) .
na nf
i =1 j =1
Option Payoff:
Call: (( ) )
max S t n f − K ,0
Put: max(K − S (t ),0) . nf
Pricing Formulas:
( )
dS i (t ) = bi (t ) − ρ i ⋅ σ Si (t ) ⋅ σ X i (t ) ⋅ S i (t ) ⋅ dt + σ Si (t ) ⋅ S i (t ) ⋅ dWi C (t ) , ∀i = 1,2,..., n a
.
Regardless all the technical terms, the important thing is that the
underlying asset price still has the form of geometric Brownian motion
with different drift and diffusion term. It means that we can use similar
approaches in Asian non-quanto options for Asian quanto options.
S (t n ) = ∑∑ wij S i (t j ) = S (t m ) + ∑ ∑ w S (t ) = S (t ) + M
na n na nf
ij i j m t
i =1 j =1 i =1 j = m +1
where
∑ w S (t ) .
na nf
Mt = ∑ ij i j
i =1 j = m +1
We denote bi∗ (t j ) = bi (t j ) − ρ i ⋅ σ Si (t j ) ⋅ σ X i (t j )
and define:
Fi (t j ) = S i (t )e i j j
b ∗ (t )(t −t )
∑ w F (t ) .
na nf
E ∗ (M t ) = ∑ ij i j
i =1 j = m +1
( ) ∑ ∑ ∑ w w F (t )F (t ) ×
na nf na nf
E ∗ M t2 = ∑ ij kl i j k l
i =1 j = m +1 k =1 l = m +1
( )
exp ρ ik σ Si (min (t j , t l ))σ Sk (min(t j , t l ))min (t j − t , t l − t ) .
m
We can then use the fixed strike formulas with all K − ∑ α i S ti replaced
i =1
To find the price for equity basket option, we simply assume there is only
one fixing date, i.e. n f = 1 , on the option expiration date and the
correlation between the underlying asset and its denominated currency to
be zero, i.e. ρi = 0 .
This valuation method supports continuous dividend yield but not discrete
dividend payout.
15.5.5 Summary
In summary, we have two different valuation methods to calculate the
equity basket price for non-quanto case and one method (the Asian
quanto basket option formula) for the quanto case. Currently, both
valuation methods support for continuous dividend yield but not discrete
dividend payout.
<equityFuture>
<instrumentId>XJO7U</instrumentId>
<currency>AUD</currency>
<numberShares>1</numberShares>
<exchangeCode>ASX</exchangeCode>
<numberContracts>2</numberContracts>
<futurePrice>58050.00</futurePrice>
<indexTickUnit>10</indexTickUnit>
<settlementDate id="">
<unadjustedDate>2007-09-20</unadjustedDate>
</settlementDate>
</equityFuture>
15.6.3 Pricing
The individual equity, basket, or equity index are all similarly priced. It’s in
the input values in the 3 above fields, numberShares, numberContracts and
indexTickUnit where their values vary from the default of 1.0.
Equity Future:
Let
Vccy = value of equity future in currency ccy
Fccy = the projected forward price derived from the underlying stock/index
forward curve in currency ccy.
X = equity future contract price.
df = discount factor to the payment date of contract
N = number of shares
Then:
Vccy = df * N * ( Fccy − X )
Fccy = the projected forward price derived from the underlying stock/index
forward curve in currency ccy.
X = equity future contract price.
df = discount factor to the payment date of contract
C = number of contracts
k = index tick unit
Then:
Vccy = df * C * ( Fccy − X ) / k
This document specifies the various pricing models used for valuation of a
subset of Asian options. The first section will focus on Asian options with
geometric average features. The second section will concentrate on Asian
options with continuous arithmetic average features. The third section
will also be on Asian options with discrete arithmetic average features
but with equal fixing length and weights and the final section will be on
Asian options with discrete arithmetic average features with unequal
fixing length, weights and time-dependent underlying parameters.
Define:
S t = the current underlying asset price at time t .
S = the average price of the underlying asset during some part of the
life of the
option.
K = the strike price of the option.
T = the original maturity time of the option.
τ= T − t is the remaining time to maturity.
r = the risk-free rate.
σ = the volatility of the underlying asset.
b = the cost of carry
N (⋅) = the cumulative normal distribution function.
Unless otherwise stated, the above definitions will be assumed for all the
formulae.
Geometric Average
Arithmetic Average
Types of Fixing
Fixings are stock prices used in averaging. In discrete arithmetic average,
S + S 2 + ... + S n
S = 1
fixings can be assumed to have equal weights, i.e. n or
n
S = ∑ wi S i
unequal weight, i.e. i =1 where wi is the normalised weight for
th
the i fixing. Fixings can also be equally spaced (e.g monthly) or they
can be unequally spaced in an average period.
Define:
S t = the current underlying asset price at time t .
S = the continuous geometric average price of the underlying asset
during some part of the life of the option.
K = the strike price of the option.
T = the original maturity time of the option.
τ = T − t is the remaining time to maturity.
r = the risk-free rate.
σ = the volatility of the underlying asset.
b = the cost of carry.
N (⋅) = the cumulative normal distribution function.
Option Payoff:
Call: max(S − K ,0)
Put: max(K − S ,0)
Pricing Model:
Kemma Vorst (1990) derived the following formulae for pricing fixed
strike Asian options:
c fix (t ) = S 0 e (bA −r )τ N (d1 ) − Ke − rτ N (d 2 )
p fix (t ) = Ke − rτ N (− d 2 ) − S 0 e (bA −r )τ N (− d1 )
where
S 1
ln 0 + b A + σ A2 τ
d1 =
K 2
σA τ
d 2 = d1 − σ A τ
σ
σA =
3
1 σ2
b A = b −
2 6 .
We further define:
Pricing Model:
c fix (t ) = S q N (d1 ) − Ke − rτ N (d 2 )
p fix (t ) = Ke − rτ N (− d 2 ) − S q N (− d1 )
where
Sq 1
ln + r + σ A2 τ
K 2
d1 =
σA τ
d 2 = d1 − σ A τ
t
G T − q (t ,T )τ
S q = S t t e
St
σ τ
σA = ⋅
3 T
1 1 τ 1 τ2
q (t , T ) = r − b − σ 2 ⋅ − σ 2 2
2 2 T 6 T .
Define:
S t = the current underlying asset price at time t .
S = the discrete geometric average price of the underlying asset during
some part of the life of the option.
K = the strike price of the option.
T = the original maturity time of the option.
τ = T − t is the remaining time to maturity.
r = the risk-free rate.
σ = the volatility of the underlying asset.
b = the cost of carry.
t i = time to the i th fixing.
σ i = the implied global volatility for an option expiring at time t i .
vi = the local volatility between each time fixing.
n= total number of fixings.
N (⋅) = the cumulative normal distribution function.
Option Payoff:
Call: max(S − K ,0)
Pricing Model:
where
S σ2
ln 0 + bG + G T
K 2
d1 =
σG T
d 2 = d1 − σ G T
σ G2 1 n
σ i2
bG =
2
+
nT
∑
i =1
b −
2
t i
From Levy (1997), the σ G is calculated using the Levy Approach which
uses global volatility as an input.
n −1
1 n
σ G2 = 2 ∑ σ i2 t i + 2∑ (n − i )σ i2 t i
n T i =1 i =1
Define:
S t = the current underlying asset price at time t .
S = the continuous arithmetic average price of the underlying asset
during some part of the life of the option.
K = the strike price of the option.
T = the original maturity time of the option.
τ = T − t is the remaining time to maturity.
r = the risk-free rate.
σ = the volatility of the underlying asset.
b = the cost of carry.
N (⋅) = the cumulative normal distribution function.
©2009 Razor Risk Technologies Page 281 of 373
Razor Financial Principals
Option Payoff:
Call: max(S − K ,0)
Put: max(K − S ,0)
Pricing Models:
Define:
TA = the length of the total average period.
t1 = time to the beginning of the average period from current time t .
τ A = TA − τ .
Pricing Formulas:
σ A2
ln(S t / K ) + (b A + )τ
d1 = 2
σA τ
d 2 = d1 − σ A τ
ln(M 2 )
σA = − 2b A
τ
ln(M 1 )
bA =
τ
The exact first and second moments of the arithmetic average are:
e bτ − e bt1
M1 =
b(τ − t1 )
2e ( 2b +σ )τ 2e ( 2b +σ )t1 e b (τ −t1 )
2 2
1
M2 = + −
(b + σ )(2b + σ )(τ − t1 )
2 2 2
b(τ − t1 ) 2 2b + σ
2
b +σ 2
M2 =
2 2
[
2eσ τ − 2eσ t1 1 + σ 2 (τ − t1 ) ]
σ (τ − t1 )
4 2
.
It is clear from the above formula that it does not handle the situation
when we need to calculate option price at times when the average period
already began. However, this problem can be solved by a slight
modification of the above formula.
We denote S A to be the average asset price realised or observed. To
adjust the formula for the in progress case (i.e. τ A > 0 ), we simply
replace the strike price K by K̂ and the option value must be multiplied
TA
by τ , where
T τ
Kˆ = A K − A S A
τ τ .
Also we set 1 to be zero for all cases when τ A > 0 .
t
TA τA
K− S <0
If we are inside the average period (i.e. τ A > 0 ), and τ τ A ,
then a call option is for certain to be in-the-money and the put option is
for certain to be out-of-the-money at the maturity. This leads to the
following results:
([ ]
c fix (t ) = e − rτ E S A∗ − K )
p fix (t ) = 0
where
TA − τ τ
[ ]
E S A∗ = S A
TA
+ SM 1
TA
t1 is zero for this case because τ A > 0 .
Levy Approximation
Define:
S A = the arithmetic average of the known asset price fixings.
Pricing Formulas:
c fix (t ) ≈ S E N (d1 ) − K ∗ e − rτ N (d 2 )
p fix (t ) ≈ c fix − S E + K ∗ e − rτ
1 ln( D )
d1 = − ln( K ∗ )
V 2
d 2 = d1 − V
SE =
St
T *b
(
e (b − r )τ − e − rτ )
T −τ
K* = K − SA
T
V = ln( D) − 2[rτ + ln(S E )]
M
D= 2
T
e ( 2b +σ )τ − 1 e bτ − 1
2
2 S t2
M = −
b +σ 2 2b + σ
2
b
Define:
S t = the current underlying asset price at time t .
S = the continuous arithmetic average price of the underlying asset
during some part of the life of the option.
K = the strike price of the option.
T = the original maturity time of the option.
τ= T − t is the remaining time to maturity.
r = the risk-free rate.
σ = the volatility of the underlying asset.
b = the cost of carry.
N (⋅) = the cumulative normal distribution function.
Option Payoff:
Pricing Models:
Henderson-Wojakowski Identity
Define:
λ = some constants ∈ ℜ .
p float (S t , λ , r , b, σ , t , T ) = p float = e − r (T −t ) E ∗ (S − λS T )
+
c fix (S t , K , r , b, σ , t , T ) = c fix = e − r (T −t ) E ∗ (S − K )
+
p fix (K , S t , r , b, σ , t , T ) = p fix = e − r (T −t ) E ∗ (K − S )
+
∗
Note that E is the expectation taken under risk-neutral measure.
c fix p
and fix are the prices of fixed strike Asian call and put options
respectively. When λ = 1 , float and float are the prices of floating strike
c p
Asian call and put options respectively.
Pricing Formula:
With the above two identities, we can compute the floating strike options
once we know the fixed strike options.
Define:
TA = the total average time period.
τ A = TA − τ .
Pricing Formulas:
T 3rˆ T A −3 rˆ TA
2
+ σ T A ⋅ e 8σ 2
2
c float (t ) ≈ S t exp(− rT A )rˆ ⋅ A ⋅ N
2 2σ 6π
.
p float ≈
(
1 − e − rTA )
− 1 S t + c float
rT A
where
1
rˆ = r − σ 2
2 .
Set TA = T , then we obtain the case for valuation date on the beginning
of average period.
Define:
t
1
Mt =
TA ∫S u du
T −TA and note that M t is known at time t .
c float ( t )
m − m2
≈ S t exp(− rτ ) mN
v
+ exp
v 2π 2v
where
τ rˆτ 2
m = 1− + rˆτ − − Mt
TA 2T A .
τ3 τ2
v = τ + 2 − σ 2
3T A T A .
Set T = T A leads to the case when averaging was taken from the initiation
of the option contract.
By put-call parity:
1 − e − rτ
p float (t ) ≈ M t e − rτ + S t − 1 + c float
rT A
Define:
S t = the current underlying asset price at time t .
Option Payoff:
1 1
max T − ,0
1 ST
∫ u S du
Call: T 0
1 1
max − T ,0
ST 1
∫
T 0
S u du
Put:
Pricing Model:
We further define:
Γ(⋅) to be the gamma function.
1
v =b− σ2
2 .
t
At( µ ) = ∫ e2 µ s + 2Ws ds
0 , t ≥ 0 , µ ∈ℜ .
Dufresne proved the following expectation:
( )
−k
E 2 At( µ ) = ∫ φµ ( k , t , y )ψ µ ( −1, y ) dy
0 , k = 1, 2,...
µ t y
2 2
− −
2 2t
ye
φµ (1, t , y ) =
2π t 3 .
1 ∂
φµ ( k , t , y ) = φµ ( k − 1, t , y ) + ( k − µ − 1) φ ( k − 1, t , y )
2 (1 − k ) ∂t , k = 2, 3,...
cosh[(µ − 1) y ]
ψ µ (− 1, y ) =
sinh ( y ) .
The no-arbitrage price for the fixed strike reciprocal Asian call option is
equal to:
σ 2T R
e− rT C ( µ,T , x)
2S0 .
where
∞
C R ( µ , t , x ) = c a +1 x b e − cx ∑ an ( t ) Lan ( cx )
n=0 , 0< x<∞,
( )
−( a −b + k + 2 )
E 2 At( )
µ
n !( −c )
k
n
an ( t ) = ∑
k = 0 Γ ( k + a + 1) k !( n − k ) ! ( a − b + k + 1)( a − b + k + 2 )
, n = 0,1,...
σ T
2
t=
4 .
2v
µ=
σ2 .
2S 0
x=
σ 2 KT .
a , b and c are constants and we can set to zero for computational
convenience.
( )
−k
E 2 At( µ ) = ∫ φµ ( k , t , y )ψ µ ( −1, y ) dy
0 .
can be evaluated using numerical integration, for example, Gauss-
Legendre Quadrature.
1 ∂
φµ ( k , t , y ) = φµ ( k − 1, t , y ) + ( k − µ − 1) φ ( k − 1, t , y )
2 (1 − k ) ∂t
can be calculated
using symbolic packages such as Mathematica or it can be done manually.
Usually we require only 10 terms by truncating at the point k = 10 . Thus
φ (1, t , y ), φ µ (2, t , y )..., φ µ (10, t , y )
we only need µ .
Γ ( z ) = z!
if z is an integer ≥ 0.
Generally, if z is a complex number with positive real part, then
©2009 Razor Risk Technologies Page 288 of 373
Razor Financial Principals
∞
Γ ( z ) = ∫ t z −1e − z dt
. This covers the non-integer cases of z and this integral
0
The no-arbitrage price for the fixed strike reciprocal Asian put option is
equal to:
−1
1 1 T
− rT vt +σ Wt
e − E ∫ S0 e dt
K T 0
where
−1
1 T
E ∫ S0evt +σ Wt dt
T 0
σ T2
1
= E
2 S 0 2 At( µ )
− µ 2t
cosh[(µ − 1) y ]
∞ − y2
σ T e
2 2
=
2πt
2S 0 3 ∫ ye 2t
sinh ( y )
dy
0 .
and again
1
v =b− σ2
2 .
σ 2T
t=
4 .
2v
µ=
σ2 .
2S 0
x=
σ 2 KT .
a , b and c are constants and we can set to zero for computational
convenience.
Define:
S t = the current underlying asset price at time t .
S = the discrete arithmetic average price of the underlying asset during
some part of the life of the option.
K = the strike price of the option.
T = the original maturity time of the option.
τ= T − t is the remaining time to maturity.
r = the risk-free rate.
σ = the volatility of the underlying asset.
b = the cost of carry.
N (⋅) = the cumulative normal distribution function.
Option Payoff:
Call: max(S − K ,0)
Put: max(K − S ,0)
Pricing Models:
Turnbull-Wakeman Model
Define:
t1 = time to the beginning of average period from current time t .
n = number of average points.
Pricing Formulas:
The valuation formula (Levy 1997 and Haug, Haug and Margrabe 2003) is:
c fix (t ) ≈ e − rτ [FA N (d1 ) − KN (d 2 )]
p fix (t ) ≈ e − rτ [KN (− d 2 ) − FA N (− d1 )]
where
F σ
2
ln A + A τ
d1 =
K 2
σA τ
d 2 = d1 − σ A τ
τ − t1
h=
n −1
S t bt1 1 − e bhn
FA = E [Aτ ] = e
n 1 − e bh
σA =
[ ]
ln (E Aτ2 ) − 2 ln (E [ Aτ ])
τ
[ ]
E Aτ 2
2
= (2 b +σ 2 )h
+ −
1 − e 1 − e (b +σ )h
1 − e bh 1 − e (2b +σ 2 )h
2 2
n .
In the case when cost of carry b = 0 ,
E [Aτ ] = S t
2 t1
S 2 eσ 1 − eσ 2hn σ hn
[ ] n − 1− e 2
2
2
E Aτ = t 2
2
+
σ 2h
1 − eσ h 1 − eσ h
1 − e
2
n
Define:
m = number of observed average points.
S A = the arithmetic average of the known asset price fixings.
If we are inside the average period, i.e. m > 0 , then the strike price is
replaced by:
©2009 Razor Risk Technologies Page 291 of 373
Razor Financial Principals
nK − mS A m
Kˆ = n−
n−m n−m
Also we set t1 = 0 for all cases m > 0 .
Curran’s Approximation
Define:
t1 = time to the beginning of average period from current time t .
n = number of averaging points.
Pricing Formulas:
c fix (t ) ≈ e ∑ e
− rτ 1 2
N
( )
n µi + σ i µ − ln Kˆ σ xi
2
+ − KN
( )
µ − ln Kˆ
σ
n i =1 σx σx x
where
τ − t1
h=
n −1
σ2
µ i = ln(S t ) + b − t i
2
σ i = σ 2 [t1 + (i − 1)h ]
i (i − 1)
σ xi = σ 2 t1 + h (i − 1) −
2n
µ = ln(S t ) + b −
σ 2
t1 +
(n − 1)h
2 2
h(n − 1)(2n − 1)
σ x = σ 2 t1 +
6n
σ xi2
σ 2
−
σ [ln(K ) − µ ] σ x2
i
1 n
Kˆ = 2 K − ∑ expµ i + xi +
n i =1 σ x2 2
Define:
m = number of observed average points.
S A = the arithmetic average of the known asset price fixings.
If the average already began at the time when we want to find the option
price (i.e. m > 0 ), then the strike price is replaced by:
nK − mS A m
Kˆ = n−
n−m n−m .
Also we set 1t = 0 for all cases m > 0 .
Levy’s Approximation
We will adapt some slightly different notations and conventions for Levy’s
model.
Define:
S t = the current asset price at time t .
We further define:
©2009 Razor Risk Technologies Page 294 of 373
Razor Financial Principals
t n − t0
h= n .
t − tm
ζ = h .
m +1 1 n 1 m m +1 1 n
Mt = S − SA = ∑
n + 1 n + 1 i =0
S ti − ∑
m + 1 i=0
S ti = ∑ St
n + 1 n + 1 i = m +1 i .
S A (m + 1)
K− <0
If n +1 then call will be in-the-money for certain and put
will be out-of-money for certain, thus:
(
c fix (t ) ≈ e − rτ Sˆ − K )
p fix (t ) ≈ 0
where
m +1
Sˆ = S A + E ∗ [M t ]
n +1 .
S t b (1−ζ )h 1 − e b ( n −m )h
E ∗ [M t ] = e
n +1 1− e
bh
.
S A (m + 1)
K− ≥0
If n +1 , then the discrete average version of Levy’s
approximation for the case where t ≥ t 0 is:
S (m + 1)
c fix (t ) ≈ e − rτ E ∗ [M t ]N (d1 ) − K − A N (d 2 )
n +1
S (m + 1)
p fix (t ) ≈ e −rτ E ∗ [M t ] ⋅ [N (d1 ) − 1] − K − A ⋅ [N (d 2 ) − 1]
n +1
where
S (m + 1)
1
[ ]
ln E ∗ M t2 − ln K − A
n + 1
d1 =
2
vt
d 2 = d1 − vt
[ ]
vt = ln E ∗ M t2 − 2 ln E ∗ [M t ]
.
b ( n − m )h
S t b (1−ζ )h 1 − e
E ∗ [M t ] = e
n +1 1− e
bh
1
[ ] S t2 − 2ζ b + σ 2 h
E ∗ M t2 = e 2
( A1 − A2 + A3 − A4 )
(n + 1)2
where
e (2b +σ )h − e (2b +σ )(n − m+1)h
2 2
A1 =
( )(
1 − e bh 1 − e (2b +σ )h
2
)
e [b ( n − m + 2 )+σ ]h − e (2b +σ )(n − m +1)h
2 2
A2 =
(1 − e bh )1 − e (b+σ )h ( 2
)
e (3b +σ )h − e [b (n − m+ 2 )+σ ]h
2 2
A3 =
(1 − e bh )1 − e (b+σ )h ( 2
)
e 2 (2b +σ )h − e (2b +σ )(n − m +1)h
2 2
A4 =
(
1 − e (b +σ )h 1 − e (2b +σ )h
2
)( 2
)
For the case when t < t 0 , we need to modify E [M t ] and E M t .
∗ ∗ 2
[ ]
1 − e b (n +1)h
E ∗ [M t ] = t e b (t0 −t )
S
n +1 1− e
bh
[ ]
E ∗ M t2 =
S t2
e (2b +σ )(t0 −t ) (B1 − B2 + B3 − B4 )
2
(n + 1) 2
B1 =
(1 − e )(1 − e (
bh 2 b +σ 2 h ) )
− e (2b +σ )(n +1)h
b ( n +1)h 2
e
B2 =
(1 − e bh )1 − e (b+σ )h ( 2
)
b ( n +1)h
e −e
bh
B3 =
(1 − e )(1 − e (
bh b +σ 2 h ) )
e (2b+σ )h − e (2b +σ )(n +1)h
2 2
B4 =
(
1 − e (b+σ )h 1 − e (2b +σ )h
2
)( 2
).
Levy’s model covers all plain-vanilla, forward start and in progress cases.
It is also not limited by the case where the last fixing date does not
coincide with the option maturity date.
Define:
S t = the asset price at current time (or valuation date) t .
S ti = th
the asset price of the i fixing.
α i = the normalised weight of the i th fixing.
i
∑α
S ti = u =1 u tu
S
.
n = total number of fixings.
m = number of observed fixings.
K = the strike price.
rti =
the risk-free rate at time t i .
bti =
the cost of carry at time t i .
σ ti = the volatility of the underlying asset at time t i .
T = the original time to maturity.
τ = the remaining time to maturity.
df t ,T =
the discount factor for the period from t to T .
N (⋅) = the cumulative normal distribution function.
E ∗ = the expectation under risk-neutral measure.
Note:
©2009 Razor Risk Technologies Page 297 of 373
Razor Financial Principals
∑α i =1
i =0 .
Option Payoff:
Derivations:
E ∗ [M t ]
n
= E ∗ ∑ α i S ti
i = m +1
∑ α E [S ]
n
∗
= i ti
i = m +1
n
= ∑α F
i = m +1
i ti
E ∗ M t2[ ]
n n
= E ∗ ∑ α i S ti ∑ α j S t j
i = m+1 j = m +1
n n
= E ∗ ∑ ∑ α i α j S ti S t j
i = m +1 j = M =1
[ ]
n n
= ∑ ∑α α
i = m +1 j = m +1
i j E ∗ S ti S t j
(t i , t j ) min (t i −t ,t j −t )
n n
σ min
2
= ∑ ∑α α
i = m +1 j = m +1
i j Fti Ft j e
c fix ( t )
≈ dft ,T E ∗ max Stn − K , 0
( )
©2009 Razor Risk Technologies Page 298 of 373
Razor Financial Principals
n
= dft ,T E ∗ max ∑ α i Sti − K , 0
i =1
m n
= dft ,T E ∗ max ∑ α i Sti + ∑ α i Sti − K , 0
i =1 i = m +1
m
= dft ,T E ∗ max ∑ α i Sti +M t − K , 0
i =1
m
= dft ,T E ∗ max M t − K − ∑ α i Sti , 0 .
i =1
Pricing Formulas:
(
c fix (t ) ≈ df t ,T Sˆ − K )
p fix (t ) ≈ 0
where
m
Sˆ = ∑ α i S ti + E ∗ [M t ] = S tm + E ∗ [M t ]
i =1 .
Case 2: Valuation date before last fixing
m
K − ∑ α i S ti ≥ 0
If i =1 then we assume M t is lognormally distributed like the
equal time interval case, the resulted formulas for variable fixing time
intervals are:
m
c fix (t ) ≈ df t ,T E ∗ [M t ]N (d1 ) − K − ∑ α i S ti N (d 2 )
i =1
∗ m
p fix (t ) ≈ df t ,T E [M t ] ⋅ [N (d1 ) − 1] − K − ∑ α i S ti ⋅ [N (d 2 ) − 1]
i =1
where
[ ]
m
1
ln E ∗ M t2 − ln K − ∑ α i S ti
d1 =
2 i =1
vt
d 2 = d1 − vt
[ ]
vt = ln E ∗ M t2 − 2 ln E ∗ [M t ]
.
n
E ∗ [M t ] = ∑α F i ti
i = m +1
[ ] ∑ ∑α α (t i , t j ) min (t i −t ,t j −t )
n n
σ min
2
E ∗ M t2 = i j Fti Ft j e
i = m +1 j = m +1 .
Define:
S t = the asset price at current time (or valuation date) t .
S ti = th S
the asset price of the i fixing (i.e. t0 is the asset price of the
first fixing).
α i = the normalised weight of the i th .
i
∑α
S ti = u =1 u u
S
.
n = total number of fixings.
m = number of observed fixings.
K = the strike price.
rti =
the risk-free rate at time t i .
bti =
the cost of carry at time t i .
σ ti =
the volatility of the underlying asset at time t i .
T = the original time to maturity.
τ = the remaining time to maturity.
df t ,T =
the discount factor for the period from t to T .
N (⋅) = the cumulative normal distribution function.
E ∗ = the expectation under risk-neutral measure.
∑α i =1
i =1 .
n
M t = S tn − S tm = ∑α S i ti
i = m +1 .
©2009 Razor Risk Technologies Page 300 of 373
Razor Financial Principals
[ ]
Fti = E ∗ S ti = S t e
bt i (ti −t )
.
Assumptions:
1. t 0 = 0 .
2. t n = T .
3.
[ ( )
ln S tn , ln(S T ) ]
follows a bivariate normal distribution.
Option Payoff:
Pricing Formulas:
Case 1: Valuation date before last fixing and last fixing matches the
option expiry date
{ [ ] }
c float (t ) ≈ df t ,T FT N (d1 ) − E ∗ S tn N (d 2 )
p float (t ) ≈ df t ,T {E [S ]N (− d ) − F N (− d )}
∗
tn 2 T 1
where
F
ln ∗ T
E St [ ] 1
d1 = n + σ
σS 2
S
d 2 = d1 − σ S
[ ] [
E ∗ S tn = E ∗ S tm + M t = S tm + E ∗ [M t ]]
n
E ∗ [M t ] = ∑α F i ti
i = m +1
E [M ]
n
( )
∑ wi Fti exp σ t2i ⋅ (t i − t 0 )
× E [M t ]
2
∗ ∗
σ S2 = σ 2 (T ) + σ x2 ∗ t − 2 ln i = m +1
E St
n [ ]
E ∗ [M t ]
[ ]
E ∗ St
n
σ 2 (τ ) = σ T2 (T − t 0 )
σ x2 = v 2 in the fixed strike case.
(
max S T − S tn ) and (
max S tn − S T ).
The option prices can be evaluated using standard Black-Scholes model
S
since t n is known and can be treated as a constant strike.
p ∗float (t )
To find , we set β = 1 w1 = 1 , w2 = 1 , and K = 0 in the DARO
(2 )
model. We also assume there is only one asset fixing for S and the
fixing point is at option maturity.
Define:
wis = weight of asset i in the basket
S i (t ) = price of asset i at time t .
bi (t ) = cost of carry of asset i at time t .
σ i (t ) = volatility of asset i at time t .
ρ ij =
correlation between asset i and j
S b (t ) = price of the basket at time t .
σ b (t ) = volatility of the basket at time t .
na = number of assets in the basket.
nf =
number of fixings.
Option Payoff:
max(∑∑ S i (t j ) − K ,0)
na nf
Call: i =1 j =1
max K − ∑∑ S i (t j ),0
na n f
Put: i =1 j =1
©2009 Razor Risk Technologies Page 302 of 373
Razor Financial Principals
Pricing Formulas:
na
S b (t ) = ∑ wis S i (t )
i =1 .
na
bb (t ) = ∑ wis bi (t )
i =1 .
∑ (w ) σ (t ) + 2∑∑ w w ρ σ (t )σ (t )
na na i −1
σ b (t ) = i
s 2
i
2
i
s s
j ij i j
i =1 i =1 j =1
Then we can apply the normal fixed strike or floating strike Asian option
formulas to calculate the Asian basket option price.
Define:
na = number of underlying assets.
nf =
number of fixings.
m= number of observed fixings.
C= payoff currency.
S i (t ) = i by 1 array of asset prices i at time t .
Ci = currency i for asset i .
σS i
(t ) =
j i by j matrix of volatilities of asset i at time t j .
Xi = i by 1 array of exchange rate quoted as payoff currency per
currency i ,i.e. C / Ci .
σ X (t j ) =
i i by j matrix of volatilities X i at time t j .
We further define:
S (t n ) = ∑∑ wij S i (t j )
na nf
i =1 j =1 .
Option Payoff:
Call:
(( ) )
max S t n f − K ,0
max(K − S (t ),0)
Put: . nf
Pricing Formulas:
( )
dS i (t ) = bi (t ) − ρ i ⋅ σ Si (t ) ⋅ σ X i (t ) ⋅ S i (t ) ⋅ dt + σ Si (t ) ⋅ S i (t ) ⋅ dWi C (t )
, ∀i = 1,2,..., n a
.
Regardless all the technical terms, the important thing is that the
underlying asset price still has the form of geometric Brownian motion
with different drift and diffusion term. It means that we can use similar
approaches in Asian non-quanto options for Asian quanto options.
S (t n ) = ∑∑ wij S i (t j ) = S (t m ) + ∑ ∑ w S (t ) = S (t ) + M
na n na nf
ij i j m t
i =1 j =1 i =1 j = m +1
where
∑ w S (t )
na nf
Mt = ∑ ij i j
i =1 j = m +1 .
bi∗ (t j ) = bi (t j ) − ρ i ⋅ σ Si (t j ) ⋅ σ X i (t j )
We denote
and define:
Fi (t j ) = S i (t )e
( )(
bi∗ t j t j −t )
∑ w F (t )
na nf
E ∗ (M t ) = ∑ ij i j
i =1 j = m +1 .
E ∗ (M t2 ) = ∑ ∑ ∑ ∑ w w F (t )F (t ) ×
na nf na nf
ij kl i j k l
i =1 j = m +1 k =1 l = m +1
(
exp ρ ik σ Si (min (t , t ))σ (min (t , t ))min (t − t , t
j l Sk j l j l ).
− t)
m
K − ∑ α i S ti
We can then use the fixed strike formulas with all i =1 replaced
by K − S (t )
m . Exercise for certain and out-of-money for certain cases are
m
K − ∑ α i S ti
the same by replacing i =1 with K − S (t m ) .
Define:
S t(1) = the asset price at time t for the first average.
(2 )
St = the asset price at time t for the second average.
(1)
S ti = th
the asset price of the i fixing for the first average.
S t(i2 ) = th
the asset price of the i fixing for the second average.
α i(1) = th
the normalised weight of the i fixing for the first average.
α i(2 ) = th
the normalised weight of the i fixing for the second
average.
i
(1)
S ti = ∑α ( )S ( ) u
1 1
tu
u =1 .
i
S t(i 2 ) = ∑α ( )S ( ) u
2
tu
2
u =1 .
n1 = total number of fixings in the first average.
n2 = total number of fixings in the second average.
m1 = number of observed fixings in the first average.
©2009 Razor Risk Technologies Page 305 of 373
Razor Financial Principals
(1) (2 )
Note S t = S t for single asset case.
Further, we define:
( )
[ ]
b ( i ) ti( i ) −t
Fti(i ) = E ∗ S t(ii ) = S t(i ) e
ti
Note:
n1
∑α ( ) = 1i
1
i =1 .
n2
∑α ( ) = 1i
2
i =1 .
We further define:
{
Τ1 = t1(1) < t 2( 2 ) < ... < t n(11 ) } and Τ = {t ( ) < t ( ) < ... < t ( ) },
2 1
2
2
2 2
n2 Τ1 ∩ Τ2 is a null set,
where
t i(1) ' s , t i( 2 ) ' s are the time to the average points (i.e. fixing points) in the
first and second average respectively.
Also:
t n(1i ) ≤ Tt (2 ) ≤ T
and n2 so that the last fixings of the two averages can be
either before or on the option maturity date.
Option Payoff:
Call:
[ ]
max w1 S n(11) − w2 S n(22 ) − K ,0
max[K + w S ( ) − w S ( ) ,0]
2 1
Put: 2 n2 1 n1
where w1 , w2 > 0 .
Derivations:
X = w1 S n(11) − w2 S n(22 )
To price the DARO, we assume is normally distributed
with mean µ v
and variance . The probability density function of X
( x − µ )2
f X (x ) =
1
exp −
2 πv 2v
becomes .
We need to find the parameters µ and v .
( ) ∑ α ( ) E (S ( ) )
n1
E ∗ S t(n11) = S t(m11) + i
1 ∗
ti
1
i = m1 +1
( ) ∑ α ( ) E (S ( ) )
n2
E ∗ S t(m22) = S t(m22) + i
2 ∗
ti
2
i = m2 +1
(1 ) (
(1 ) )
E (S ( ) S ( ) ) = F ( ) F ( ) e
σ2 (1 ) , t (1 ) min ti −t ,t j −t
min t i
∗ 1 1 1 1 j
ti tj ti tj
(2) (2) ( )
E (S ( ) S ( ) ) = F ( ) F ( ) e
σ2 ( 2 ) , t ( 2 ) min ti −t ,t j −t
min t i
∗ 2 2 2 2 j
ti tj ti tj
(1 ) (
(2 ) )
E (S ( ) S ( ) ) = F ( ) F ( ) e
σ2 (1 ) , t ( 2 ) min ti −t ,t j − t
min t i
∗ 1 2 1 2 j
ti tj ti tj
(1) (2 )
Note S t = S t for single asset case.
( ) α i(1) E ∗ (S t(1) ) + (S ( ) S ( ) )
n1 n1 n1
E ∗ S t(n11) = S t(m11) + 2 S t(m11) ∑ ∑ ∑ α ( )α ( ) E ∗
2 2
1 1 1 1
i i j ti tj
i = m1 +1 i = m1 +1 j = m1 +1
( ) α i(2 ) E ∗ (S t(2 ) ) + (S ( ) S ( ) )
n2 n2 n2
E ∗ S t(n22 ) = S t(m22) + 2 S t(m22) ∑ ∑ ∑ α ( )α ( ) E ∗
2 2
2 2 2 2
i i j ti tj
i = m2 +1 i = m2 +1 j = m2 +1
(
E ∗ S t(n1) S t(n2 )
1 2
)
( ) ∑ α i(1) E ∗ (S t(1) ) + (S ( ) S ( ) )
n2 n1 n1 n2
= S t(m11) S t(m22) + S t(m11) ∑ α (j2 ) E ∗ S t(2 ) + S t(2 ) j m2 i ∑ ∑ α ( )α ( ) E i
1
j
2 ∗
ti
1 2
tj
j = m2 +1 i = m1 +1 i = m1 +1 j = m2 +1
v
( ( ) ( ) )+ w (E (S )− E (S ) )
= w12 E ∗ St(n1) − E ∗ St(n1)
2 2 2
2
∗ (2 )
t n2
2
∗ (2 ) 2
t n2
( ( ) ( ) ( ))
1 1
Pricing Formulas:
Asian options are options where the payoff depends on the average price
of the underlying asset during at least some part of the life of the option.
Reciprocal Asian options are a particular class of Asian options and the
payoff depends on the reciprocal of the average price of the underlying
asset. In this document, we will demonstrate the methods to value fixed
strike European reciprocal Asian call and put options for both discrete and
continuous arithmetic averages.
Define:
S t = the asset price at current time t .
S ti = th
the asset price of the i fixing.
α i = the normalised weight of the i th fixing.
i
∑α
S ti = u =1 u tu
S
.
n = total number of fixings minus one.
m = number of observed fixings minus one.
K = the strike price.
rti =
the risk-free rate at time t i .
bti =
the cost of carry at time t i .
σ ti =
the volatility of the underlying asset at time t i .
T = the original time to maturity.
τ = the remaining time to maturity.
df t ,T =
the discount factor for the period from t to T .
N (⋅) = the cumulative normal distribution function.
E ∗ = the expectation under risk-neutral measure.
Note:
n
∑α i =1
i =1 .
Further, we define:
n
M t = S tn − S tm = ∑α S i ti
i = m +1 .
∗
Fti = E S ti = S t e [ ] bt i (t i −t )
Option Payoff:
1 1
N max − ,0
Call: S tn S T .
1 1
N max − ,0
Put:
S T S tn
.
Derivations:
M t = S tn − S tm = S tn − c
.
c = S tm
We define and it is a known constant.
c fix (t )
1 1
= Ndf t ,T E ∗ max − ,0
S tn K
1 1
= Ndf t ,T E ∗ max − ,0
M t + c K
1 1
> ⇒ Mt < K − c
For the call option to have a non-zero payoff, M t + c K .
We also know that the average of the underlying asset price cannot be
negative. It suggests that the call option has non-zero values when
0 < Mt < K −c.
c fix (t )
1 1
≈ Ndf t ,T E ∗ max − ,0
M t + c K
K −c
1 1
= Ndf t ,T ∫ x + c − K f (x )dx Mt
x=0 .
f M t (x )
is the probability density function of M t .
Pricing Formulas:
K −c
1 1
c fix (t ) ≈ Ndf t ,T ∫ x + c − K f (x )dx Mt
x =0 .
( )
E ∗ ( M t )+10 E ∗ M t2 − E ∗ ( M t )2
1 1
p fix (t ) ≈ Ndf t ,T ∫( − f M t (x )dx.
x = max 0 , K − c ) K x+c
(ln x − α t )2
f M t (x ) =
1
exp −
xvt 2π 2vt2 x > 0
, .
α t = 2 ln E [M t ] − ln E M t
∗ 1
2
∗ 2
[ ]
.
[ ]
vt = ln E ∗ M t2 − 2 ln E ∗ [M t ]
.
n
E ∗ [M t ] = ∑α F i ti
i = m +1
[ ] ∑ ∑α α (t i , t j ) min (t i −t ,t j −t )
n n
σ min
2
E ∗ M t2 = i j Fti Ft j e
i = m +1 j = m +1 .
©2009 Razor Risk Technologies Page 310 of 373
Razor Financial Principals
Note that support is only required for arithmetic averaging, with fixed
strike.
I N ⋅ N + N ⋅ max{0, β ( A − K ) / K } (1)
where
N is the notional principal, I N (= 0 or 1) is the notional payment indicator
function, β is the call-put index, K is the strike, and A is the arithmetic
average of S( t i ), i = 1, L , n , with equal weight.
Call Feature
Let t c be the call date. At time t c , t c < t 1 , if the underlying stock price
S( t c ) is above a barrier, Pc , the deal will be cancelled, either
automatically or optimally by the underwriter, in which case the owner of
the option will receive a call premium, C (automatic cancellation) or the
minimum of C and the value of (1) at time t c (optimal cancellation); if
the deal will not be cancelled, the payoff at the settlement date is (1).
Forward Start Feature
The callable Asian option can also allow a forward start feature. This
t
option specifies that at time f , the strike price of the Asian option, K,
S (t f )
will be set equal to the current spot price, . With the forward start
feature the payoff at the settlement date is
I N ⋅ N + N ⋅ max {0, β ( A − S (t f )) / S (t f )}
(2)
if the deal will not be cancelled. Otherwise, the owner of the option will
receive a call premium, C (automatic cancellation) or the minimum of C
and the value of (2) at time t c (optimal cancellation).
©2009 Razor Risk Technologies Page 311 of 373
Razor Financial Principals
Let t be the current valuation date and assume t < t c . Also denote
Vtc (S (t c ))
to be the value of the option at time t c .
Automatic Cancellation
β ( A − K )
Vtc (S (t c )) = I (S (t c ) < Pc ) × df tc ,T × E tc I N ⋅ N + N × max 0,
K
+ I (S (t c ) ≥ Pc ) × C
β ( A − K )
df tc ,T × Etc I N ⋅ N + N × max 0,
where K is the expression for the
value of a vanilla Asian option which can be approximated with Michael
df
Curran formula and tc ,T is the discount factor for the period from time
t c to T .
β ( A − K )
MC (S (t c )) = df tc ,T × Etc I N ⋅ N + N × max 0,
We denote K where,
MC (S (t c )) is the Michael Curran formula including the notional
adjustments. We can then write:
Vtc (S (t c )) = I (S (t c ) < Pc ) × MC (S (t c )) + I (S (t c ) ≥ Pc ) × C
.
Optimal Cancellation
With optimal cancellation, we can write:
For both cancellation conditions, the value of the option at time t , is:
[ ]
Vt (S (t )) = df t ,tc × E t Vtc (S (t c ))
where
∞
[ ]
Et Vtc (S (t c )) = ∫ Vtc (S (t c )) f (S (t c ))dS (t c )
0 ,
f (S (t c )) is the density function of S (t c ) .
Derivation of f (S (t c )) :
Under risk-neutral world,
µ = ln S (t ) + bt − σ t2 (t c − t )
1
2
c c
v 2 = σ t2c (t c − t )
btc σ t can be obtained from the term structure for cost of carries
and c
Quanto case
Callable Asian option with quanto feature is the same except the cost of
carries needs to be adjusted as in the quanto Asian basket options case,
If the option is forward starting, both the future asset price and strike
price are random variables at the valuation time t . We can write the
Michael Curran formula as:
MC (S (t f ), S (t c )) = MC (K = S (t f ), S (t c ))
.
Vtc (S (t f ), S (t c ))
The value the option, , at time t c , is given by:
Automatic Cancellation
Vtc (S (t f ), S (t c )) = I (S (t c ) < Pc ) × MC (S (t f ), S (t c )) + I (S (t c ) ≥ Pc ) × C
.
Optimal Cancellation
Vtc (S (t f ), S (t c )) = I (S (t c ) < Pc ) × MC (S (t f ), S (t c )) +
I (S (t c ) ≥ Pc ) × min {C , MC (S (t f ), S (t c ))}
.
Vtc (S (t f ), S (t c ))
Therefore, given , the value of the option, Vt (S (t )) , at time
t is given by:
[
Vt (S (t )) = df t ,tc × E t Vtc (S (t f ), S (t c )) ]
where
[
Et Vtc (S (t f ), S (t c )) ]
[ [
= Et Et f Vtc (S (t f ), S (t c )) ]]
∞∞
= ∫ ∫ Vtc (S (t f ), S (t c )) ⋅ f Stc |St f (S (t c )) f St f (S (t f ))dS (t c )dS (t f )
0 0 ,
(S (t c )) S (t f )
is the conditional density function of S (t c ) given
f St | St f
c
, and
f St (S (t f )) S (t f ).
f
is the density function of
(ln S (t c ) − µ )2
f Stc |St f (S (t c )) =
1
exp −
S (t c )v 2π 2v 2 S (t c ) > 0
; ,
where
v 2 = σ t2f ,tc (t c − t f )
σ t − σ t2 t f
2
σ
tc c
2
= f
tc − t f
t f ,t c
σt tf σt
can be obtained from the volatility structure with maturity
f
and c
(ln S (t f ) − µ )2
f (S (t f )) = 1
exp−
S (t f )v 2π 2v 2 ; S (t f ) > 0 ,
where
µ = ln S (t ) + bt − σ t2 (t f − t )
1
2
f f
v = σ t2f (t f − t )
σt tf
f
can be obtained from the volatility structure with maturity .
I= ∫ ∫ f (x , x )dx dx
1 2 1 2
x1 x2 .
ŵ j xˆ 2 , j
where and are Gauss-Legendre weights and points.
where again
ŵi and xˆ1, j are Gauss-Legendre weights and points.
It is obvious that ŵl contain all the combinations of products of ŵi and
ŵ j (xˆ , xˆ )
and x̂l contain all the combinations of the pair i j .
Non-smooth points
It is important to note that Gauss-Legendre Quadrature can only be
applied to smooth functions. It is clearly that for callable payoff, the
integrands are not smooth functions for both call-feature and forward-
start cases. We need to split the integrand into sections so that the
integrand in each section is smooth. We can then integrate each smooth
integrand using Gauss-Legendre Quadrature and then sum each section
together to obtain the final integral result.
Upper bound
Theoretically, we need to integrate the integral to infinity for both call
feature and forward start cases. However, it is unnecessary to integrate
1
µ + v2
E ∗ (S ) = e 2
.
Var (S ) = e (2 µ +v ) e v − 1 .
∗ 2
( 2
)
We can set upper limit to be:
upper = E ∗ (S ) + 15 ⋅ Var ∗ (S ) .
We can apply this idea for both call feature and forward start case with
corresponding µ and v for each integral.
Valuation date on or after the forward start date or the call date
If the valuation date is on or after the forward start date but before the
call date then the strike price is known and the option can be treated as
a non-forward start callable Asian option with the strike price to be set to
the observed spot price on the forward start date. If the valuation date is
after the call date then the callable Asian option becomes a standard
Asian option with price equal to
V (t )
= df t ,T × E ∗ I N ⋅ N + × max{0, β ( A − K )} | Ft
N
K
= df t ,T × I N ⋅ N + × E ∗ [max {0, β ( A − K )} | Ft ]
N
K
= df t ,T × I N ⋅ N + × MichaelCur ranFormula (t )
N
K
{ }
c(t ) ≈ df t ,T S t e rt (T −t ) − K
p(t ) ≈ df t ,T{K − S e }.
( )
t
rt T −t
Forward start Asian option is like a standard Asian option but with the
strike price being determined as a predetermined multiple of the
underlying asset price at some predetermined date (the strike reset
date).
Define:
na = number of underlying assets.
nf =
number of fixings.
m= number of observed fixings.
Option Payoff:
nf f
∑ wi S j (t i )
na
max β ⋅ ∑ w aj i =1 − 1,0
Kj
j =1
.
β = 1 if it is a call and β = −1 if it is a put.
Pricing Formulas:
t0 < t f
Case 1:
Define:
na
W1 = ∑ w aj λ j
j =1 .
wjλ j
wj =
W1 .
S j (t i )
R j (t f , t i ) =
S j (t f )
.
1
K1 =
W1 .
na n f
maxW1 ⋅ β ⋅ ∑∑ w j wia R j (t f , t i ) − K 1 ,0
.
j =1 i =1
R j (t f , t i )
can be expressed as:
ti 1 ti
∫t f b j ( s )− 2σ j ( s ) ds + ∫t f σ j ( s )dW j ( s )
R j (t f , t i ) = e
2
R j (t f , t i )
The relative price can be viewed as the price of an asset with
S (t )
same dynamics as the asset price j but with the price starts from 1 at
tf
time . The above payoff is exactly the same as the Asian basket option
and can be priced using the Asian basket option formula.
t0 ≥ t f
Case 2:
Define:
na
wjλ j
W2 = ∑
j =1 S j (t f ) .
wjλ j
wˆ j =
W2 S j (t f )
1
K2 =
W2 .
na n f
maxW2 ⋅ β ⋅ ∑∑ wˆ j wia S j (t i ) − K 2 ,0
.
j =1 i =1
The payoff is the same as the Asian basket case. The price can be
evaluated using the Asian basket case formula.
Note for Asian forward starting option formula can be applied to the case
with quanto features. Same adjustment for the drift term as in the
quanto case is used to modify the formula.
ti − t f
t f ,t i
Quanto case
Callable Asian option with quanto feature is the same except the cost of
carries needs to be adjusted as in the quanto Asian basket options case,
i.e. bi∗ (t j ) = bi (t j ) − ρ i ⋅ σ Si (t j ) ⋅ σ X i (t j ) . Note that cost of carries should be
adjusted for quanto before converting to forward rates.
The pricing formula is exactly the same as equity Asian options with the
r − rf
cost of carry replaced by d (if there is no dividend payout) where rd
r
is the domestic risk-free rate and f is the foreign risk-free rate.
The first adjustment is that there is an extra term for futures price, i.e.
[ ]
Fti = E ∗ S ti = S t e
(bti )
+σ t2i (ti 0t )
b = rtid − rtif
, where ti for the foreign exchange
d f
case if there is not dividend payout and r and r are domestic and
foreign risk-free rates respectively. We then use the equity reciprocal
formula to calculate the option price with the changes of the above
adjustments.
15.7.6 References
Buchen, P., “Stocks, Derivatives and Exotics”, Lecture Notes for the
School of Mathematics, the University of Sydney.
Castellacci, G., and Siclari, M., “Asian Basket Spreads and Other Exotic
Averaging Options”, OpenLink.
Daniel Dufresne (2000), “Laguerre Series for Asian and Other Options”,
Mathematical Finance 10(4) 407-428.
Datey, J. Y., Gauthier, G., and Simonato, J.G (2003): “The Performance
of Analytical Approximations for the Computation of Asian Quanto-Basket
Option Prices”, Multinational Finance Journal 7(1&2), 55-82.
Levy, E. (1997): “Asian Options”, in Exotic Options: The State of the Art,
ed. L. Clewlow and C.Strickland (Washington, DC: International Thomson
Business Press).
( ) ∑ α ( ) E (S ( ) )
n1
E ∗ S t(n11) = S t(m11) + i
1 ∗
ti
1
i = m1 +1
1.
E (S ( ) )
∗ 1
t n1
n1
= E ∗ ∑ α i S t(i1)
i =1
m1 n1
= E ∗ ∑ α i S t(i1) + ∑ α i S t(i1)
i =1 i = m1 +1
∑ α E (S ( ) )
n1
= S t(m11) + i
∗
ti
1
i = m1 +1
( ) ∑ α ( ) E (S ( ) ) + ∑ ∑ α ( )α ( ) E (S ( ) S ( ) )
n1 n1 n1
E ∗ S t(n11) = S t(m11) + 2 S t(m11) ∗ ∗
2 2
1 1 1 1 1 1
i ti i j t1 t1
i = m1 +1 i = m1 +1 j = m1 +1
2.
E (S )
∗ (1) 2
t n1
m1 n1
2
(1) (1)
= E ∑ α i S ti + ∑ α i S ti
∗ (1) (1)
i =1
i = m1 +1
2
(1) (1)
n1
= E S tm1 + ∑ α i S ti
∗
(1)
i = m1 +1
2 2
(1) (1) (1) (1)
n1 n1
= E S tm1 + 2 S tm1 ∑ α i S ti + ∑ α i S ti
∗(1) (1)
i = m1 +1 i = m1 +1
n1
2
( )
n1
= S t(m11) + 2 S t(m11) ∑ α i(1) E ∗ S t(i1) + E ∗ ∑ α i(1) S t(i1)
2
i = m +1
i = m1 +1
1
∑ α ( ) E (S ( ) ) + E ∑ ∑ α ( )α ( ) S ( ) S ( )
n1 n1 n1
= S t(m11) + 2 S t(m11) ∗ ∗
2
1 1 1 1 1 1
i ti i j ti tj
i = m1 +1 i = m1 +1 j = m1 +1
∑ α ( ) E (S ( ) ) + ∑ ∑ α ( )α ( ) E (S ( ) S ( ) )
n1 n1 n2
= S t(m11) + 2 S t(m11) ∗ ∗
2
1 1 1 1 1 1
i ti i j ti tj
i = m1 +1 i = m1 +1 j = m1 +1
3.
(
E ∗ S t(n1) S t(n2 )
1 2
)
( ) ∑ α ( ) E (S ( ) ) + ∑ ∑ α ( )α ( ) E (S ( ) S ( ) )
n2 n1 n1 n2
= S t(m11) S t(m22) + S t(m11) ∑ α (j2 ) E ∗ S t(2 ) + S t(2 ) j m2 i
1 ∗
ti
1
i
1
j
2 ∗
ti
1 2
tj
j = m2 +1 i = m1 +1 i = m1 +1 j = m2 +1
(
E ∗ S t(n1) S t(n2 )
1 2
)
m1 n1
m2 n2
= E ∗ ∑ α i(1) S t(i1) + ∑ α i(1) S t(i1) ∑ α i(2 ) S t(i2 ) + ∑ α i(2 ) S t(j2 )
i =1
i = m1 +1 i =1 i = m2 +1
m1 m2 m1 n2 n1 m2
= E ∗ ∑ α i(1) S t(i1) ∑ α i(2 ) S t(i2 ) + ∑ α i(1) S t(i1) ∑ α i(2 ) S t(i2 ) + ∑ α i(1) S t(i1) ∑ α i( 2 ) S t(i2 )
i =1 i =1 i =1 i = m2 +1 i = m1 +1 i =1
n1 n2
+ ∑ α ( ) S ( ) ∑ α ( ) S ( )
i
1
ti
1
i
2
ti
1
i = m1 +1
i = m2 +1
n2 n1 n1 n2
= E ∗ S t(m11) S t(m22) + S t(m11) ∑ α i(2 ) S t(i2 ) + S t(m22) ∑ α i(1) S t(i1) + ∑ ∑ α i(1)α i(2 ) S t(i1) S t(i2 )
i = m2 +1 i = m1 +1 i = m1 +1 i = m2 +1
∑ α ( ) E (S ( ) ) + S ( ) ∑ α ( ) E [S ( ) ] + ∑ ∑ α ( )α ( ) E [S ( )S ( ) ]
n2 n1 n1 n2
= S t(m11) S t(m22) + S t(m11) i
2 ∗
ti
2 2
t m2 i
1 ∗
ti
1
i
1
i
2 ∗
ti
1 2
tj
i = m2 +1 i = m1 +1 i = m1 +1 i = m2 +1
4.
( )
µ = w1 E ∗ S t(1) − w2 E ∗ S t( 2 )n1
( ) n2
µ
= E ∗ (X )
©2009 Razor Risk Technologies Page 323 of 373
Razor Financial Principals
( )
= E ∗ w1 S t(n1) − w2 S t(n2 )
= w E (S ) − w E (S ( ) )
1 2
∗ (1) ∗ 2
1 t n1 2 t n2
5.
v
( ( ) ( ) )+ w (E (S )− E (S ) )
= w12 E ∗ St(n1) − E ∗ St(n1)
2 2 2
2
∗ (2 )
t n2
2
∗ (2 ) 2
t n2
( ( ) ( ) ( ))
1 1
v
= var( X )
(
= var w1 S t(n1) − w2 S t(n2 ) )
( )( ) ( )
1 2
= w (E (S ( ) ) − E (S ( ) ) ) + w (E (S ( ) ) − E (S ( ) ) )
1 2 1 2
2 ∗ 1 2
∗ 1 2 2 ∗ 2 2
∗ 2 2
1 t n1 t n1 2 t n2 tn2
( (
− 2w1 w2 E ∗ S t(n1) S t(n2 ) − E ∗ S t(n1) E ∗ S t(n2 )
1 2
) ( ) ( ))1 2
t = valuation date.
St = price of the equity at time t .
Tpm = the payment date associated with the mth reset period.
Tsm = the reset date associated with the m th reset period.
rt →m
= risk-free rate applied for time m based on the simulated term structure
at time t .
qt →m
= dividend yield applied for time m based on the term structure at time
t.
dft ,t j = discount factor from time t to time t j .
©2009 Razor Risk Technologies Page 324 of 373
Razor Financial Principals
15.8.3 Valuation
Equity swaps consist of two streams of cash flows: cash flows from equity
(equity leg) and cash flows from interest rate (interest rate leg). The
parties under the contract receive one stream of cash flows and pay the
other stream of cash flows. Thus the value of the equity swaps at any
valuation date can be calculated as the difference between the values of
the equity leg and interest rate leg at the valuation date. We
demonstrate on how to calculate the values of the two legs in the
following.
Equity Leg
ST m
The return of the equity leg for the m th reset period for is s
−1 .
ST m−1
s
ST m
The value of s
− 1 at the valuation date t is:
ST m−1
s
B ST m
E∗ t s − 1 | Ft
BTpm ST m−1
s
ST m
= dft ,T m E f s − 1| Ft
p
STsm−1
p ((
≈ dft ,T m exp rt →T m − qt →T m
s s
) (T − t ) − ( r
s
m
t →Tsm −1 s
) )
− qt →T m−1 (Tsm −1 − t ) − 1 .
If m = 1 and Ts0 ≤ t < Ts1 then the value for the first reset period of the
equity leg can be derived similarly as:
((
S exp r 1 − q 1 T 1 − t
)( ))
df t ,T 1 − 1 .
t t →Ts t →Ts s
p
S0
To get the value of the whole equity leg, we simply sum each equity
return value for each reset period. We also need to multiply by the
foreign exchange rate if cross currency is present.
Thus, to summarise, the present value of the equity leg at valuation date
t taking the cross currency into consideration is:
((
s s
)( s
) (
× exp rt →T m − qt →T m Tsm − t − rt →T m−1 − qt →T m−1 Tsm−1 − t − 1
s
)( ) )
t ((
S exp r 1 − q 1 T − t
t →Ts t →Ts s
1
)( ))
+ dft ,T 1 × N × − 1 × fxt .
p
S 0
((
× exp rt →T m − qt →T m
s s
) (T − t ) − ( r
s
m
t →Tsm −1 s
)( ) )
− qt →T m−1 Tsm−1 − t − 1 .
The return of the interest rate leg for the mth reset period for is
(rTsm −1 →Tsm )(
+ spread Tms − Tms −1 . )
( )(
The value of the of rT m−1 →T m + spread Tms − Tms −1 at the valuation date t is:
s s
)
B
BTpm s
( s
)
E ∗ t rT m−1 →T m + spread (Tms − Tms −1 ) | Ft
p s (
= dft ,T m E rT m−1 →T m + spread (Ts − Ts ) | Ft
f
s
m m −1
)
(
= dft ,T m f t ,T m−1 →T m + spread Tsm − Tsm−1
p s s
)( )
If m = 1 and Ts0 ≤ t < Ts1 then the value for the first reset period of the
interest rate leg can be modified as:
df t ,T1, p × N × ( r 0 + spread ) × (Ts1 − Ts0 ) × fxt .
To get the value of the whole interest rate leg, we simply sum each
interest rate return value for each reset period. We also need to multiply
by the foreign exchange rate if cross currency is present.
(( f ) )
+ spread × (Tsm − Tsm −1 ) × fxt
n
= ∑ dft ,T m × N × t ,Tsm−1 →Tsm
p
m=2
(( f ) )
+ spread × (Tsm − Tsm −1 ) × fxt .
n
= ∑ df t ,T m × N × t ,Tsm−1 →Tsm
p
m =1
If the interest rate leg pays fixed interest rate, then it is much simpler.
(( f ) )
+ spread × (Tsm − Tsm −1 ) × fxt .
n
= ∑ df t ,T m × N × t ,Tsm−1 →Tsm
p
m =1
pv ( t ) = pvequity ( t ) − pv floating ( t ) .
Within Razor current support for equity swaps, there is consideration for
discrete dividend payments associated with equity leg and similarly no
support for compounding interest rate leg.
Chapter 16
Credit Derivatives
fpmlCreditDefaultSwap Schema
Name: Type Occurs Size Description
productType
0..1 Indicates the type of product
fpmlProductType
generalTerms Defines dates and reference
1..1
fpmlGeneralTerms obligation of the CDS.
feeLeg
1..1 Premium payment definition.
fpmlFeeLeg
This is where the credit events and
protectionTerms obligations that are applicable to
1..1
fpmlProtectionTerms the credit default swap trade are
specified.
cashSettlementTerms
0..1 Cash settlement details.
fpmlCashSettlementTerms
physicalSettlementTerms
0..1 Physical settlement details.
fpmlPhysicalSettlementTerms
Note the fee leg contains the stub position implicitly (as per fpml spec). There
are 5 stub position types: none, ShortFirst, LongFirst, ShortFinal, LongFinal.
ShortFirst and LongFirst require a firstPaymentDate.
ShortFinal and LongFinal require lastRegularPaymentDate.
A sample representation is as follows:
<creditDefaultSwap>
<generalTerms>
<effectiveDate>
<unadjustedDate>2006-10-18</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</effectiveDate>
<scheduledTerminationDate>
<adjustableDate>
<unadjustedDate>2007-01-18</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</adjustableDate>
</scheduledTerminationDate>
<sellerPartyReference href="ECHIDNA" />
<buyerPartyReference href="PLATYPUS" />
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
<referenceInformation>
<referenceObligation>
<primaryObligor id="KANGAROO" />
</referenceObligation>
</referenceInformation>
</generalTerms>
<feeLeg>
<periodicPayment>
<paymentFrequency>
<period>M</period>
<periodMultiplier>3</periodMultiplier>
</paymentFrequency>
<rollConvention>NONE</rollConvention>
<fixedAmount>
<currency>EUR</currency>
<amount>0</amount>
</fixedAmount>
<fixedAmountCalculation>
<dayCountFraction>ACT/360</dayCountFraction>
<calculationAmount>
<currency>EUR</currency>
<amount>0</amount>
</calculationAmount>
<fixedRate>0.017200</fixedRate>
</fixedAmountCalculation>
</periodicPayment>
</feeLeg>
<protectionTerms>
<calculationAmount>
<currency>EUR</currency>
<amount>10000000.00</amount>
</calculationAmount>
</protectionTerms>
</creditDefaultSwap>
Physical delivery
Often there will be physical delivery of the reference security upon default,
and there could be liquidity risk that the writer of the credit default swap
incurs upon trying to purchase the reference security in order to satisfy this
physical delivery requirement.
The cash flow profile of a single name credit defaults swap consists of two
legs:
Premium Leg: the buyer of protection pays periodic payments to the protection
seller until the earlier of a credit event or maturity of the CDS contract.
Protection Leg: the seller of protection pays the difference between par and
the recovery value of the referenced portfolio exposure value should a credit
event occur during the contract.
The value of a CDS protection seller is given as the risk-neutral expected value
of the present value of premium leg less the protection leg.
At the inception of a CDS, the premium is set such that the value of the
Premium Leg must equal the Protection Leg. i.e., on-market CDS must have
zero net present value.
[{ } ]
M
Premium_Le g = ∑ d Ti p (T0 , Ti ) τ i S{N (Ti −1 )α (Ti −1 , Ti )}
i =1
(1)
Where:
T0 - is the date of CDS valuation,
T0 < T1 < … < TM - in arrears premium payment dates,
τi - ith payment period as a fraction of years,
S - per-annum spread for this CDS,
p(T0,Ti) - is the risk-neutral survival probability of the reference
entity from time T0 to Ti,
by convention p(T0,Ti) = p(Ti) if T0 is the valuation date.
N(Ti) - Notional value of the CDS at time Ti,
α(Ti-1,Ti) - is the accrual factor from Ti-1 to Ti,
dT - risk free discount factor from time T0 to T
[ ]
D
Protection_Leg = ∑ d ti {( p (T0 , t i −1 ) − p (T0 , t i )}Loss (VR(t i ))
i =1
(2)
Where:
T0 < t1 < ..... < t D - credit event dates and their modeled periodicity can be
different from the premium payment dates.
Loss (VR(t i )) - the amount of loss occurring on reference credit value at
time t i .
The value of CDS for protection seller is then the difference between a
premium (fee) leg and protection (loss) leg:
The price of a credit default swap will reflect several factors. The key inputs
would include the following:
The risk-neutral probability of default of the reference asset or alternatively
its survival probabilities p(T0,Ti) should be provided as an input term structure.
In practice these probabilities are derived from the CDS premium spread values
S(Ti ) - constant or time dependent and known for existing CDS contracts.
Risk free discount rates determined from the appropriate curve.
Calibration.
Parametric Bootstrapping
where
t1 , t 2 ,..., t N - tenors of observed CDS spreads quotes,
N – number of quotes,
ξ1 ,..., ς N - weights that are used to control a degree of confidence in
the accuracy to target CDS spread observations.
The direct substitution of (4) into equations (1)-(3) leads to a system of linear
algebraic equations that can be easily solved against unknown parameters
α 1 ,..., α N using standard methods of linear algebra.
Such a representation allows for the exact fitting of the term structure to the
underlying CDS spread quotes, delivers a smooth solution even for a limited
number of market observations and allows for the avoidance of kinks especially
at the short and long ends of credit curve where market observations are often
unavailable.
As an example, the following survival probability curve is built from three CDS
spreads of 3, 5 and 7 years maturity:
S 3 = 34.76,
S 5 = 57.27,
S 7 = 82.42
The hazard rate is assumed piece-wise constant and starting from the shortest
maturity is ‘bootstrapped’ similarly to the bootstrapping procedure for the
interest rate term structure.
The iterative algorithm can be described by the following procedure:
- Assume a constant hazard rates λ (t ) for all time intervals t i − t i −1 with
t i , i = 1,..., M
representing intermediate payment dates and maturity dates of all CDS quotes.
Assume that we successfully determined values of λ1 ,..., λ k , k < M hazard
rates.
This also guarantees the knowledge of all survival probabilities
S (t 0 , t i ), i = 0,1,..., k .
Note that:
Bi +1
S (t0 , ti +1 ) = ,
Ai +1
with
©2009 Razor Risk Technologies Page 335 of 373
Razor Financial Principals
Ak + 1 = S k +1τ k +1 d k +1 p ( t k ) + (1 − R ) d k +1 p ( t k ) ,
k
Bk+1 =−Sk+1τk+1∑dti p(ti ) + (1− R) ∑dti ( p(ti−1) − p(ti )) + dtk p( tk ) ,
k
i=1 i=1
where
τ k +1 - fee payment period of the k+1 CDS spread,
Then λk +1 hazard value can be found as the solution of the following equation:
S ( t 0 , t k +1 )
λ k +1 = − ln( ) / τ k +1 .
S (t0 , tk )
The resulting hazard curve can have the following step ladder form:
For example:
and
* If this parameter is not present it will attempt to obtain the credit rating
from the trade value:
©2009 Razor Risk Technologies Page 337 of 373
Razor Financial Principals
creditDefaultSwap/generalTerms/referenceInformation/referenceObligationAt[
0]/seniority
The CDS curve selected from the market can depend on the name and its
rating. The curve name will be built according to the base CDS type,
CreditCurveName, and CreditRating. If either parameter is omitted it does not
impact the requested curve.
"CdsSpread [CreditCurveName] [CreditRating]"
Examples:
"CdsSpread FINANCE A+"
"CdsSpread MINING EUR"
"CdsSpread MANUFACTORING"
"CdsSpread"
fpmlCollateralisedDebtObligation Schema
Name: Type Occurs Size Description
productType 0..1 Indicates the type of product
fpmlProductType
tranche 1..1 Tranche being priced
rzmlTranche
paymentFrequency 1..1 Frequency of premium payment
fpmlCalculationPeriodFrequency
effectiveDate 1..1 CDO start date.
xsd:date
maturityDate 1..1 CDO termination date.
xsd:date
referencePool 1..1 Reference pool of collateral
rzmlReferencePool
<maturityDate>2011-02-01</maturityDate>
<tranche>
<attachment>0.05</attachment>
<detachment>0.1</detachment>
<spreadRate>0.005</spreadRate>
<notional>
<amount>1000000.0</amount>
<currency>EUR</currency>
</notional>
</tranche>
<paymentFrequency>
<periodMultiplier>M</periodMultiplier>
<period>3</period>
<rollConvention>NONE</rollConvention>
</paymentFrequency>
<referencePool>
<collateral>
<creditDefaultSwap>
<generalTerms>
<effectiveDate>
<unadjustedDate>2006-10-18</unadjustedDate>
<dateAdjustments>
<businessDayConvention>
NONE
</businessDayConvention>
</dateAdjustments>
</effectiveDate>
<scheduledTerminationDate>
<adjustableDate>
<unadjustedDate>2007-01-18</unadjustedDate>
<dateAdjustments>
<businessDayConvention>
NONE
</businessDayConvention>
</dateAdjustments>
</adjustableDate>
</scheduledTerminationDate>
<sellerPartyReference href="ECHIDNA" />
<buyerPartyReference href="PLATYPUS" />
<dateAdjustments>
<businessDayConvention>
NONE
</businessDayConvention>
</dateAdjustments>
<referenceInformation>
<referenceObligation>
<primaryObligor id="KANGAROO" />
</referenceObligation>
</referenceInformation>
</generalTerms>
<feeLeg>
<periodicPayment>
<paymentFrequency>
<period>M</period>
<periodMultiplier>3</periodMultiplier>
</paymentFrequency>
<rollConvention>NONE</rollConvention>
<fixedAmount>
<currency>EUR</currency>
<amount>0</amount>
</fixedAmount>
<fixedAmountCalculation>
<dayCountFraction>
ACT/360
</dayCountFraction>
<calculationAmount>
<currency>EUR</currency>
<amount>0</amount>
</calculationAmount>
<fixedRate>0.017200</fixedRate>
</fixedAmountCalculation>
</periodicPayment>
</feeLeg>
<protectionTerms>
<calculationAmount>
<currency>EUR</currency>
<amount>10000000.00</amount>
</calculationAmount>
</protectionTerms>
</creditDefaultSwap>
</collateral>
</referencePool>
</collateralizedDebtObligation>
SPV
Tranches
Senior
Collateral Payments Subordinated
Reference Mezzanine
Pool ….
Allocation of Equity
Losses defined
via waterfall
To price a CDO tranche, the risk neutral expected value of the discounted
premiums, must equal to the risk neutral expected value of the discounted
losses. This can be expressed as:
n n
E Q ∑ si (ti − ti −1 )( S − Li ) d i = E Q ∑ ( Li − Li −1 )d i
i =1 i =1
Hence during the life of the CDO when the premium has been set the value for
a tranche buyer is:
n n
Vbuy = ∑ si (ti − ti −1 )( S − E Q [ Li ]) d i − ∑ ( E Q [ Li ] − E Q [ Li −1 ])d i
i =1 i =1
πˆi( k ) = Φ
( )
Φ −1 πˆ i( k ) − β ( k ) x
σ (k )
Where:
∞
∫ πˆi( k ) dΦ ( x) = πˆi( k )
−∞
Φ is the standard normal cumulative distribution function and Φ-1 is its inverse.
Define: π i( k ) ( x ) = 1 − πˆ i( k ) ( x )
Assuming the names are conditionally independent the mean tranche loss is:
E[Li ] = ∫ Ex [Li ]d Φ( x)
∞
−∞
Homogenous Model
Assuming a homogenous pool the number of defaults in (t0, ti] is binomially
distributed.
Furthermore, assuming a large pool size, the binomial distribution can be
approximated by a Poisson distribution.
K
Now defining λˆ = ∑ πˆ
k =1
(k )
( ˆ
)
E [L ] = S 1 − e − λ − e − λ S ∑
ˆ λˆm
+ ∑
λˆm
[
u − mN (1) ]
1< m < l / N (1) m! l / N (1) < m < u / N (1) m!
Heterogenous Model
Extending this to the general case requires the following definitions:
N * = min N ( k )
k
N = max N ( k )
*
k
πˆ ( k )
f (N ) = ∑
=N λ
k:N ( k )
ˆ
Where:
N* ≤ N ≤ N *
f *m is the m-fold convolution of f with itself.
Then we arrive to the final result:
( ˆ ˆ
)
E [L ] = S 1 − e − λ − e − λ S ∑
λˆm
∑ f *m
( N ) + ∑
λˆm
∑
[u − N ] f * m ( N )
1< m < l / N * m! mN * < N < l 1< m < u / N * m! l < N < u
References
The pricing model was derived from the following sources:
J Hull and A White, 2003
Valuation of a CDO and an nth to default CDS without Monte Carlo
simulation
Chaplin, 2005
Credit Derivatives
The Homogenous model is faster but is restricted to cases where the reference
pool is homogenous in nature. The heterogenous model whilst being more
general is also slower to process.
Chapter 17
Pricing
17.1.1 Definition
U ( t , Ti )
= any forward floating rate for the tenor period (Ti −1 , Ti ) implied by
the structure at time t .
σ ( t , Ti )
U
= volatility function of the forward floating rate U ( t , Ti ) .
EQ = expectation under risk-neutral measure for currency e .
QTi
E
= expectation under forward martingale measure for currency e with
respect to time Ti .
F= { Fu }0≤t ≤T
= filtration generated by the Wiener process.
B (t ) = savings account at time t .
B (t, T )
= zero-coupon bond price at time t maturing at time T .
σ (t, T ) = zero-coupon bond volatility function.
17.1.2 Pricing
For any interest rate derivative, we need to calculate the present value
of the cashflow U (Ti −1 , Ti )(Ti − Ti −1 ) for the floating rate leg.
The expected present value of the cashflow is:
B (t )
U (Ti −1 , Ti )(Ti − Ti −1 ) | Ft = (Ti − Ti −1 ) B ( t , Ti ) E Q U (Ti −1 , Ti ) | Ft .
Ti
E Q0
B (Ti )
Thus if we know E Q U (Ti −1 , Ti ) | Ft , we can find out the expected
Ti
present value of the required cash flow for the floating rate leg of the
swap. The computation of the expectation E Q U (Ti −1 , Ti ) | Ft depends on
Ti
Therefore:
E Q0 U (Ti −1 , Ti ) | Ft = U ( t , Ti ) .
Ti
2 ( (
f ' U t,T i ))
Note that f ( x ) is the price-to-yield function and can be defined as:
n
Ti − Ti −1 1
f ( x ) = x0 ∑ + .
(1 + x ) (1 + x )
Ti −T0 Tn −T0
i =1
The above convexity adjustment is exactly the same as the one in section
12.10.3.
17.2.2 Definition
c = price of call option.
p = price of put option.
S = underlying asset price.
K = strike price.
b = cost of carry.
r = risk free rate.
rf = foreign risk free rate.
q = continuous dividend yield.
T = time to maturity.
σ = price volatility.
n ( ⋅) = standard normal probability density function.
N ( ⋅) = cumulative standard normal distribution function.
S σ
2
ln + b − T
K 2
d2 = .
σ T
17.2.4 Greeks
Delta
∂c
∆ call = = e( b − r )T N ( d1 ) .
∂S
∂p
∆ put = = −e( b − r )T N ( −d1 ) .
∂S
Gamma
∂ 2 c n ( d1 ) e
(b − r )T
Γ call = 2 = .
∂S Sσ T
∂ 2 p n ( d1 ) e
(b − r )T
Γ put = = .
∂S 2 Sσ T
Rho
∂c
ρcall = = TKe − rT N ( d 2 ) .
∂r
∂p
ρ put = = −TKe − rT N ( −d 2 ) .
∂r
For option on foreign exchange options, the ρ f on foreign risk free rate
is:
∂c
= −TSe(b − r )T N ( d1 ) = −TSe f N ( d1 ) .
−r T
ρcall
f
=
∂rf
∂p
= TSe( ) N ( − d1 ) = TSe f N ( −d1 ) .
b−r T −r T
ρ put
f
=
∂rf
For option on futures ( b = 0 ), we have:
∂c
ρcall = = −Tc .
∂r
∂p
ρ put = = −Tp .
∂r
Vega
∂c
vegacall = = Se( b − r )T n ( d1 ) T .
∂σ
∂p
vega put = = Se( b− r )T n ( d1 ) T .
∂σ
Theta
∂c Se(b − r )T n ( d1 ) σ
θ call = − =− − ( b − r ) Se( b − r )T N ( d1 ) − rKe− rT N ( d 2 ) .
∂T 2 T
∂p Se ( b − r )T
n ( d1 ) σ
θ put = − =− + ( b − r ) Se( b − r )T N ( − d1 ) + rKe − rT N ( − d 2 ) .
∂T 2 T
Introduction
The following interest rate risk analytics are defined on any generalized
series of cashflows.
Where appropriate the calculations of duration and convexity will use the
compounding frequency and coupon periods per year.
df d ,i = vd ,i
Market Value
P = ∑ dfi Ci ≡ ∑ df r ,i Ci
i i
Accrued Interest
f
AI i = Ci - cum interest
d
f
AI i = Ci − 1 - ex interest
d
where
Clean Price
CP - clean price
P = CP + AI
Calendar Days
Ex-Interest if (Coupon Date – Calendar Days) >= Value Date, otherwise Cum-Interest
Business Days
Ex-Interest if (Coupon Date – Elapsed Business Days) >= Value Date, otherwise Cum-Interest
Price
P = ∑ (1 + ra ) − t i Ci
i
Macaulay Duration
∑ (1 + r ) a
−ti
Ci t i
D= i
P , or
∑ df C t i i i
D= i
P - Razor uses this form
Modified Duration
dP 1
D' = −
dra P
dP
= −∑ (1 + ra ) − ti −1 Ci ti
dra i
= −(1 + ra ) −1 ∑ (1 + ra ) −ti Ci ti
i
= −va ∑ dfi Ci ti
i
D
D' = = va D
(1 + ra ) - Razor uses this form
Convexity
d 2P 1
CX =
dra2 P
d 2P d
2
= −∑ (1 + ra ) − ti −1 Ci ti
dra dra i
= ∑ (1 + ra ) − ti − 2 Citi2 + (1 + ra ) − ti − 2 Ci ti
i
= (1 + ra ) −2 ∑ (1 + ra ) − ti Ci ti2 + (1 + ra ) − ti Ci ti
i
= va2 ∑ dfi Ci ti2 + ∑ dfi Ci ti
i i
[
CX = va D '' + D ' , where '' ]
D = va ∑ dfiCiti2
1
i P
Price
rn − nt i
P = ∑ (1 + ) Ci
i n
Macaulay Duration
rn
∑ (1 + n ) − nt i
Citi
D= i
P , or
∑ dfiCiti
D= i
Modified Duration
dP 1
D' = −
drn P
dP r
= −∑ (1 + n ) − nti −1 Citi
drn i n
rn −1 r
= −(1 + ) ∑ (1 + n ) − nti Ci ti
n i n
= −vn ∑ (vn ) nti Ci ti
i
= −vn ∑ dfi Ci ti
i
D
D' = = vn D
r
(1 + n )
n - Razor uses this form
Convexity
d 2P 1
CX =
drn2 P
d 2P d rn − nti −1
=
drn2 drn −∑ (1 + n ) Ci ti
i
r 1 r
= ∑ (1 + n ) − nti − 2 Citi2 + (1 + n ) − nti − 2 Ci ti
i n n n
rn −2 r 1 r
= (1 + ) ∑ (1 + n ) − nti Ci ti2 + (1 + n ) − nti Citi
n i n n n
1
= vn2 ∑ dfi Ci ti2 + df iCi ti
i n
1
= vn2 ∑ df iCi ti2 + ∑ dfi Ci ti
i n i
1 1
CX = vn D '' + D ' D '' = vn ∑ dfi Ci ti2
n , where i P
Price
P = ∑ (1 + rs ti ) Ci
−1
Macaulay Duration
∑ (1 + r t )
−1
s i Ci ti
D= i
P , or
∑ df C t i i i
D= i
P - Razor uses this form
D = ti
Modified Duration
dP 1
D' = −
drs P
dP
= −∑ (1 + rs ti ) −2 Ci ti
drs i
= −∑ (vs ,i ) 2 Ci ti
i
= −∑ ( dfi ) Ci ti
2
∑ ( df )
2
i Ci ti
D' = i
P
D' = vs ,i ti = dfi ti = vs ,i D
Convexity
d 2P 1
CX =
drs2 P
d 2P d
2
= −∑ (1 + rs ti ) −2 Ci ti
drs drs i
= 2∑ (1 + rs ti ) −3 Ci ti2
i
= 2∑ ( vs ,i ) Ci ti2
3
2∑ ( vs ,i ) Ci ti2
3
CX = i
P
2 ( vs ,i ) Ci ti2
3
( )
= 2 ( vs ,i ) ti2 = 2 D '
2 2
CX =
(v ) Cs ,i i
Price
P = ∑ (1 − rd ti ) Ci
i
Macaulay Duration
∑ (1 − r t ) C t d i i i
D= i
P , or
∑ dfiCiti
= i
D = ti
Modified Duration
dP 1
D' = −
drd P
dP
= −∑ Ci ti
drd i
∑C t i i
D =
' i
P
Convexity
d 2P 1
CX =
drs2 P
d 2P d
= −∑ Ci ti = 0
drs2 drs i
Duration of Futures
Cash Futures
The Macaulay duration of cash futures is the length of the time in years
from the valuation date to the futures maturity date using ACT/365 day
count basis. Modified duration is calculated from scaling Macaulay by the
yield curve forward rate.
Tm − t Dmac
Dmac = Dmod =
365 (1 + ytm)
Bond Futures
The Macaulay duration of a bond in future in Razor is the Macaulay
duration of the underlying bond.
Duration of a FRA
The duration of a FRA is the weighted average of the duration of incoming
leg and duration of the outgoing leg weighted by the present value of
each of the leg. The duration of the incoming and outgoing legs is the
length of time period from the forward starting date to the forward
ending date.
∑ N ⋅ Df ⋅τ i i i
Dmac
Dmac = i
Dmod =
∑ PV i
i (1 + ytm)
Method 2
The second method is again the same as the duration for a normal bond
but to assume the cashflow at the bond starting date, i.e. P , is part of
the bond cashflows (with the same + or – sign as other bond cashflows).
Given the cashflows on both side of equations are exactly the same, we
can deduce
Swap Duration + Fixed Rate Bond Duration = Floating Rate Bond Duration.
∑R ti *Vti
RP = i =1
n
∑V i =1
ti
Therefore, specifically
∑D ti *Vti
DP = i =1
n
∑V i =1
ti
∑D '
ti *Vti
DP' = i =1
n
∑V i =1
ti
Portfolio Convexity
n
∑ CX ti *Vti
CX P = i =1
n
∑V i =1
ti
30/360
This calculation assumes a year has 360 days comprised of 12 months with 30
days each. In the bond calculation, d is given by the number of months
between payment dates multiplied by 30 days. The coupon paid is always the
annual coupon rate divided by the payment frequency. Determining (d − f ) is
more complex as each part month needs to be treated, as if there are 30 days.
This type of interest convention is common in Europe and is often referred to
as the annual coupon basis.
As part of this calculation if the start day of month is the 31st, then it is reset
to the 30th, and if the end date is also the 31st then it is also reset to the 30th.
30E/360
As above for 30/360, except if either the start or end day of month is the 31st,
then it will be reset to the 30th.
Actual/Actual (ACT/ACT)
The interest accrual is based on the actual number of days elapsed since the
last interest payment date (d − f ) in an interest period divided by the actual
number of days between the last and next interest payment dates (d ) . The
coupon paid is always the annual coupon rate divided by the payment
frequency. This method is commonly used in English-speaking countries and
includes instruments such as US Treasury Bonds, A$ and NZ$ government issues
and UK Gilts.
ACT/ACT.ISMA
As for Actual/Actual.
Actual/360 (ACT/360)
This method is also referred to as the US Money Market basis because interest
is calculated in the same way as for US dollar money market instruments. The
interest accrual is based on the actual number of days elapsed since the last
Actual/365 (ACT/365)
As for Actual/360 except d is 365 days per anum.
Actual/365.FIXED (ACT/365.FIXED)
As for Actual/365.
Actual/365.25 (ACT/365.25)
As for Actual/360 except d is 365.25 days per anum.
ACT/365.END
As for Actual/360 except d is 366 if end date is a leap year, else 365.
ACT/365.ACT
As for Actual/360 except d is 366 if start date is a leap year, else 365.
ACT/ACT.ISDA
If the number of whole years between the start and end dates is greater than
0, then the day count fraction is calculated as (start year fraction + end year
fraction + number of years – 1). The days in year used for each date will be 366
if a leap year, and otherwise 365.
If the number of whole years is 0, then days in year is by default 365.
ACT/ACT.AFB
If number of whole years between start and end dates is greater than 0, then
calculate the days in year according to whether the fractional part of the day
count fraction at start end passes over the 29th February.
If the number of whole years is 0, then days in year is by default 365.
BUS/252
Business days / 252. This method is only used for Brazilian Real (BRL).
Weekends and public holidays are excluded from the calculation. This requires
the use of a calendar. Razor will look for a BUS252 calendar if defined,
otherwise only weekends will be excluded.
1/1
This is currently not supported.
EOM, FRN, IMM, IMCAD, SFE, NONE, TBILL, [1, 2 … 29, 30], MON, TUE, WED,
THU, FRI, SAT, SUN
Currently FRN is not implemented, so defaults to NONE.
EOM - Rolls on month end dates irrespective of the length of the month and the
previous roll day.
FRN - Roll days are determined according to the FRN Convention or Eurodollar
Convention as described in ISDA 2000 definitions.
IMM - IMM Settlement Dates. The third Wednesday of the (delivery) month.
IMMCAD - The last trading day/expiration day of the Canadian Derivatives
Exchange (Bourse de Montreal Inc) Three-month Canadian Bankers' Acceptance
Futures (Ticker Symbol BAX). The second London banking day prior to the third
Wednesday of the contract month. If the determined day is a Bourse or bank
holiday in Montreal or Toronto, the last trading day shall be the previous bank
business day. Per Canadian Derivatives Exchange BAX contract specification.
SFE - Sydney Futures Exchange 90-Day Bank Accepted Bill Futures Settlement
Dates. The second Friday of the (delivery) month.
NONE - The roll convention is not required. For example, in the case of a daily
calculation frequency.
TBILL - 13-week and 26-week U.S. Treasury Bill Auction Dates. Each Monday
except for U.S. (New York) holidays when it will occur on a Tuesday.
[1, 2 … 29, 30] - Rolls on the specific day of the month.
[MON, TUE, WED, THU, FRI, SAT, SUN] - Rolls weekly on the specific day of the
week.
FOLLOWING -The non-business date will be adjusted to the first following day
that is a business day.
MODFOLLOWING - The non-business date will be adjusted to the first following
day that is a business day unless that day falls in the next calendar month, in
which case that date will be the first preceding day that is a business day
PRECEDING - The non-business day will be adjusted to the first preceding day
that is a business day
MODPRECEDING - The non-business date will be adjusted to the first preceding
day that is a business day unless that day falls in the previous calendar month,
in which case that date will be the first following day that us a business day
FRN - Per 2000 ISDA Definitions, Section 4.11. FRN Convention; Eurodollar
Convention.
NONE -The date will not be adjusted if it falls on a day that is not a business
day.
©2009 Razor Risk Technologies Page 361 of 373
Razor Financial Principals
r T2 −T1
ri = 2 r1
r1
1
1 − xT Σ −1 ( x ) Formatted: Lowered by 19 pt
f ( x, y , Σ ) = e 2
2π Σ Formatted: Lowered by 14 pt
σ2 ρσ xσ y Formatted: Lowered by 36 pt
Σ= x Field Code Changed
ρσ xσ y σ y2
1 ρ
= , σ xy = (1,1) , Σ ≠0
ρ 1
1
1 − xT Σ −1 ( x ) Field Code Changed
f ( x1 , x2 , Σ ) = e 2
2π Σ
3
M.Abramowitz and I. Stegun, Handbook of Mathematical Functions. New York, Dover
Publications, 1972.
4
E. G. Haug, The Complete Guide to Option Pricing Formulas. New York, Mcgraw-Hill,
1998.
©2009 Razor Risk Technologies Page 363 of 373
Razor Financial Principals
Here we use the scalar form, in terms of the correlation ρ , by making the
following substitutions:
Σ = (1 − ρ 2 ) Formatted: Lowered by 7 pt
1 1 −ρ x
xT Σ −1 ( x) =
(1 − ρ 2 ) − ρ1 y
for σ xy = (1,1)
x 2 + y 2 − 2 ρ xy
=
(1 − ρ 2 )
E[ XY ]
ρ= = E[ XY ] where E[ XY ] is the covariance of XY
σ xσ y
x 2 + y 2 − 2 ρ xy
1 −
f ( x, y , ρ ) = e 2(1− ρ 2 ) , ρ ∈ [ −1,1]
2π 1 − ρ 2
a b
Φ xy (a, b, ρ ) = ∫∫ f ( x, y, ρ )dxdy
−∞ −∞
a b x 2 + y 2 − 2 ρ xy
1 −
=
2π 1 − ρ 2
∫ ∫e
−∞ −∞
2(1− ρ 2 ) dxdy
Case 1: ρ = 1
Case 2: ρ = −1
0 b ≤ −a
Φ xy ( a, b, −1) =
Φ (a) + Φ (b) − 1 b > −a
a b x2 + y 2
1 −
=
2π ∫ ∫e
−∞ −∞
2 dxdy
1 a − x 2 b − y 2
= ∫ e 2 dx ⋅ ∫ e 2 dy
2π −∞ −∞
= Φ ( a ) ⋅ Φ (b)
5
John C. Hull, Options Futures and Other Derivatives. New York, Mcgraw-Hill, 2002.
©2009 Razor Risk Technologies Page 365 of 373
Razor Financial Principals
x 2 + y 2 − 2 ρ xy
1 − 1
lim e 2(1− ρ 2 ) =
x , y →0
2π 1 − ρ 2
2π 1 − ρ 2
1 1
Φ xy ( a, b, ρ ) = ∫ dρ
2π 1− ρ 2
sin −1 ( ρ ) 1
= +
2π 4
S S
ln(
) ln(
)
x1 = X + (1 + µ )σ T x2 = H + (1 + µ )σ T
σ T σ T
H2 H
ln( ) ln( )
y1 = SX + (1 + µ )σ T y2 = S + (1 + µ )σ T
σ T σ T
H σ2
ln( ) b−
S + λσ T 2r
z= µ= 2 λ = µ2 +
σ T σ 2
σ2
A = ϕ Se( b− r )T N (ϕ x1 ) − ϕ Xe − rT N (ϕ x1 − ϕσ T )
B = ϕ Se( b− r )T N (ϕ x2 ) − ϕ Xe − rT N (ϕ x2 − ϕσ T )
H 2( µ +1) H
C = ϕ Se( b − r )T ( ) N (η y1 ) − ϕ Xe − rT ( ) 2 µ N (η y1 − ησ T )
S S
H H
D = ϕ Se( b − r )T ( ) 2( µ +1) N (η y2 ) − ϕ Xe − rT ( ) 2 µ N (η y2 − ησ T )
S S
H 2µ
E = Ke [ N (η x2 − ησ T ) − ( ) N (η y2 − ησ T )]
− rT
S
H µ +λ H µ −λ
F = K [( ) N (η z ) + ( ) N (η z − 2ηλσ T )]
S S
with
S representing the price of underlying asset,
H – option barrier value,
T - option time to maturity,
X - option strike price,
K – pre-specified cash rebate that is paid out at option expiration if the
barrier is not hit during option life,
σ - underlying asset volatility of correct maturity
r - continuously compounded risk-free interest rate
b – cost of carry.
Cdi ( X > H ) = C + E η = 1, ϕ = 1
Cdi ( X < H ) = A − B + D + E η = 1, ϕ = 1
Call option with “up and in” type barrier that pays payoff max( S T -X,0) if
S t ≥ H at any moment t before maturity T and a predetermined amount
K otherwise priced according to the following equations:
Pdi ( X > H ) = B − C + D + E η = 1, ϕ = −1
Pdi ( X < H ) = A + E η = 1, ϕ = −1
underlying asset process hits barrier level. Similar to “in” type options it
is also possible include a predetermined rebate amount K that
compensate the knock out event.
“Down and out” calls have payoff at maturity T as max( S T -X,0) if S t > H
for all t ≤ T or K otherwise and prices defined:
C do ( X > H ) = A − C + F η = 1, φ = 1
C do ( X < H ) = B − D + E η = 1, φ = 1
“Up and out” calls with payoff at maturity T as max( S T -X,0) if S t < H
for all t ≤ T and K compensator priced according to:
C uo ( X > H ) = F η = −1, φ = 1
C uo ( X < H ) = A − B + C − D + F η = −1, φ = 1
17.12.1 Introduction
Though renown Black-Scholes (1973) and Merton (1973) equation and
formulae can price the majority of vanilla type financial derivatives many
of OTC traded options often include more "exotic" than vanilla features
and thus their pricing frequently rely on numerical techniques.
Finite difference methods is one of the most efficient and simple of such
numerical procedures that allows calculation of option premium by
solving the partial differential equation that represents option price
evolution:
df df 1 2 2 ∂ 2 f
+ rS + σ S = rf
dt dS 2 ∂S
S
0, 0, ∂S ,2∂S ,3∂S ,..., S max of length ∆S =.
M
The value S max is chosen sufficiently high that, when it is reached, the put
payoff has no value. M is finite enough to get the required accuracy. The
values of continues partial derivatives from the above differential
equation are approximated then on the pre-built mesh nodes with an
explicit and implicit numerical schemes or with their combination.
A numerical scheme commonly used is Crank-Nicholson scheme, which is
unconditionally stable and can be considered as the average of the
implicit and explicit methods:
u mn +1 − u mn 1 u mn ++11 − 2u mn +1 + u mn +−11 1 u mn +1 − 2u mn + u mn −1
= + ,
∆t 2 ∆S 2 2 ∆S 2
∂f ∂f 1 2 2 ∂ 2 f
+ rS + σ S = rf
∂t ∂S 2 ∂S 2
∂f f i , j +1 − f i , j −1
=
∂S 2δS
For ∂f / ∂t we will use a forward difference approximation so that the value at
time iδt is related to the value at time (i + 1)δt :
∂f f i +1, j − f i , j
=
∂t δt
The finite difference approximation for ∂ 2 f / ∂S 2 at the (i, j ) point is:
∂2 f f i , j +1 − f i , j f i , j − f i , j −1
∂S 2
=( δS − δS )
δS
or
∂2 f f i , j +1 + f i , j −1 − 2 f i , j
=
∂S 2
δS 2
Substituting into the differential equation and noting that S = jδS gives
f i +1, j + f i , j f i , j +1 + f i , j −1 1 f i , j +1 + f i , j −1 − 2 f i , j
+ rjδS + σ 2 j 2δS 2 = rf i , j
δt 2δS 2 δS 2
a j f i , j −1 + b j f i , j + c j f i , j +1 = f i +1, j
Where
1 1
aj = rjδt − σ 2 j 2δt
2 2
b j = 1 + σ j σt + rδt
2 2
1 1
c j = − rjδt − σ 2 j 2δt
2 2