1 / 105

Computational Finance - PowerPoint PPT Presentation

Computational Finance. Zvi Wiener 02-588-3049 http://pluto.mscc.huji.ac.il/~mswiener/zvi.html. Plan. 1. Introduction, deterministic methods. 2. Stochastic methods. 3. Monte Carlo I. 4. Monte Carlo II. 5. Advanced methods for derivatives. Other topics:

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

PowerPoint Slideshow about 'Computational Finance' - allan

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Computational Finance

Zvi Wiener

02-588-3049

http://pluto.mscc.huji.ac.il/~mswiener/zvi.html

Bank Hapoalim

1. Introduction, deterministic methods.

2. Stochastic methods.

3. Monte Carlo I.

4. Monte Carlo II.

5. Advanced methods for derivatives.

Other topics:

queuing theory, floaters, binomial trees, numeraire, ESPP, convertible bond, DAC, ML-CHKP.

CF1

1

-2 1

Vectors {1, 1}, {-2, 1}

rows or 1 -2

columns 1 1

CF1

1 2 3

2 + -1 = 1

-2 1 -1

1 3

3 2 = 6

2 6

CF1

vector

Vectors form a linear space.

Zero vector

Scalar multiplication

CF1

Matrices also

form a linear

space.

matrix

Zero matrix

Unit matrix

CF1

Matrix can operate on a vector

How does zero matrix operate?

How does unit matrix operate?

CF1

Transposition of a matrix

A symmetric matrix is A=AT

for example a variance-covariance matrix.

CF1

Matrix multiplication

CF1

a is orthogonal to b if ab = 0

CF1

Scalar product of two vectors

Euclidean norm

CF1

Determinant is 0 if the operator maps

some vectors to zero (and can not be inverted).

CF1

• Matrix multiplication corresponds to a consecutive application of each operator.

• Note that it is not commutative! ABBA.

• Unit matrix does not change a vector.

• An inverse matrix is such that AA-1=I.

CF1

• Determinant of a matrix ...

• A matrix can be inverted if det(A)0

• Rank of a matrix

• Matrix as a system of linear equations Ax=b.

• Uniqueness and existence of a solution.

• Trace tr(A) – sum of diagonal elements.

CF1

• Change of coordinates C-1AC.

• Jordan decomposition.

• Matrix power Ak.

• Matrix as a quadratic form (metric) xTAx.

• Markov process.

• Eigenvectors, eigenvalues Ax=x, optimization.

CF1

Check how the following matrices act on vectors:

CF1

• Show an example of ABBA.

• Construct a matrix that inverts each vector.

• Construct a matrix that rotates a two dimensional vector by an angle .

• Construct a covariance matrix, show that it is symmetric.

• What is mean and variance of a portfolio in matrix terms?

CF1

• Credit rating and credit dynamics.

• Variance-covariance model of VaR.

• Can the var-covar matrix be inverted

• VaR isolines (the ovals model).

• Prepayment model based on types of clients.

• Finding a minimum of a function.

CF1

• Function of one and many variables.

• Continuity in one and many directions.

• Derivative and partial derivative.

• Gradient and Hessian.

• Singularities, optimization, ODE, PDE.

CF1

CF1

For a short time period , the changes in the value are distributed approximately normal with the following mean and variance:

CF1

Then VaR can be found as:

CF1

Volatility estimate on day i based on last M days.

CF1

Covariance on day i based on last M days.

It is important to check that the resulting

matrix is positive definite!

CF1

For every vector x a we have x.A.x > 0

Only such a matrix can be used to define a norm.

For example, this matrix can not have negative diagonal elements. Any variance-covariance matrix must be positive.

CF1

Needs["LinearAlgebra`MatrixManipulation`"];

ClearAll[ positiveForm ];

positiveForm[ a_?MatrixQ ] := Module[{aa, i},

aa = Table[

Det[ TakeMatrix[ a, {1, 1}, {i, i}] ],

{i, Length[a]}];

{ aa, If[ Count[ aa, t_ /; t < 0] > 0, False, True]}

];

CF1

Used to define a Markov chain (only the last state matters).

A matrix P is stochastic if it is non-negative and sum of elements in each line is 1.

One can easily see that 1 is an eigenvalue of any stochastic matrix.

What is the eigenvector?

CF1

• credit migration

• prepayment and freezing of a program

CF1

Theorem: P0 is stochastic iff (1,1,…1) is an eigenvector with an eigenvalue 1 and this is the maximal eigenvalue.

If both P and PT are stochastic, then P is called double stochastic.

CF1

The Cholesky decomposition writes a symmetric positive definite matrix as the product of an upper­triangular matrix and its transpose.

In MMA CholeskyDecomposition[m]

CF1

We need to sample two normally distributed variables with correlation .

If we can sample two independent Gaussian variables x1 and x2 then the required variables can be expressed as

CF1

We need to sample n normally distributed variables with correlation matrix ij, ( >0).

Sample n independent Gaussian variables x1…xn.

CF1

CF1

CF1

f

If the function is monotonic, e.g. implied vol.

x

CF1

f

x2

x3

x

x1

CF1

Solve[ 0 = = x2- 0.8x3- 0.3, {x}]

{{x -> -0.467297}, {x ->0.858648 -0.255363*I}, {x -> 0.858648 + 0.255363*I}}

FindRoot[ x2 + Sin[x] - 0.8x3 - 0.3, {x, 0,1}]

{x -> 0.251968}

CF1

• Solve a system of equations(both derivatives)

CF1

ContourPlot[ x^2+y^3, {x,-2,2}, {y,- 2,2}]

ContourPlot[ x^2+y^3, {x,-2,2}, {y,- 2,2}], Contours->{1 ,-0.5}, ContourShading->False];

CF1

Consider a portfolio with two risk factors and benchmark duration of 6M.

The VaR limit is 3 bp. and you have to make two decisions:

a – % of assets kept in spread products

q – duration mismatch

we assume that all instruments (both treasuries and spread) have the same duration T+q months.

CF1

Contour Levels of VaR (static) ,-0.5}, ContourShading->False];

q - duration

mismatch

a (% of spread)

CF1

VaR=3 bp ,-0.5}, ContourShading->False];

position

VaR=2 bp

q - duration

mismatch

a (% of spread)

CF1

In order to reduce ,-0.5}, ContourShading->False];

risk one can increase duration

(in this case).

q - duration

mismatch

a (% of spread)

CF1

What we can do using limits ,-0.5}, ContourShading->False];

VaR = 6 bp

CF1

duration mismatch (yr) ,-0.5}, ContourShading->False];

Position 2M, and

5% weekly VaR=2.2 bp

weekly VaR limit 3 bp

CF1

x1 x2 x3 … xn

CF1

<<Graphics`Spline`

pts = {{0, 0}, {1, 2}, {2, 3}, {3, 1}, {4, 0}}

Show[

Graphics[

Spline[pts, Cubic, SplineDots -> Automatic]]]

CF1

pts = Table[{i, i + i^2 + (Random[] - 0.5)}, {i, 0, 1, .05}];

Show[Graphics[Spline[pts,Cubic,SplineDots ->Automatic]]]

CF1

Fitting data ,-0.5}, ContourShading->False];

data = Table[7*x + 3 + 10*Random[], {x, 10}];

f[x_] := Evaluate[Fit[data, {1, x}, x]]

Needs["Graphics`Graphics`"]

DisplayTogether[

ListPlot[data, PlotStyle -> {AbsolutePointSize[3],

RGBColor[1, 0, 0]}],

Plot[f[x], {x, 0, 10}, PlotStyle -> RGBColor[0, 0, 1]]

];

CF1

Fitting data ,-0.5}, ContourShading->False];

CF1

Fitting data ,-0.5}, ContourShading->False];

data = {{1.0, 1.0, .126}, {2.0, 1.0, .219},

{1.0, 2.0, .076}, {2.0, 2.0, .126}, {.1, .0, .186}};

ff[x_, y_] = NonlinearFit[data,

a*c*x/(1 + a*x + b*y), {x, y}, {a, b, c}];

ff[x, y]

nonlinear, multidimensional

CF1

Orly - Nelson Siegel ,-0.5}, ContourShading->False];

MAKAM

CF1

Numerical Differentiation ,-0.5}, ContourShading->False];

CF1

Numerical Differentiation ,-0.5}, ContourShading->False];

CF1

time

Finite Differences

Following P. Wilmott, “Derivatives”

Typically equal time and S (or logS) steps.

CF1

Finite Differences ,-0.5}, ContourShading->False];

Time step t

asset step S

(i,k) node of the grid is t = T - kt, iS

0  i  I, 0  k  K

assets value at each node is

note the direction of time!

CF1

The Black-Scholes equation ,-0.5}, ContourShading->False];

Linear parabolic PDE

Final conditions

Boundary conditions ...

CF1

Transformation of BS ,-0.5}, ContourShading->False];

CF1

CF1

CF1

CF1

Bilinear Interpolation ,-0.5}, ContourShading->False];

V1

V2

A4

A3

A1

A2

Area of the rectangle

V3

V4

CF1

Final conditions and payoffs ,-0.5}, ContourShading->False];

For example a European Call option

CF1

Boundary conditions Call ,-0.5}, ContourShading->False];

For example a Call option

For large S the Call value asymptotes to

S-Ee-r(T-t)

CF1

Boundary conditions Put ,-0.5}, ContourShading->False];

For example a Put option

For large S

CF1

Boundary conditions S=0 ,-0.5}, ContourShading->False];

CF1

Explicit scheme ,-0.5}, ContourShading->False];

CF1

Explicit scheme ,-0.5}, ContourShading->False];

Local truncation error

CF1

Explicit scheme ,-0.5}, ContourShading->False];

Value here is calculated

S

These values are

time

CF1

Explicit scheme ,-0.5}, ContourShading->False];

This equation is defined for 1i I-1,

for i=1 and i=I we use boundary conditions.

CF1

Explicit scheme ,-0.5}, ContourShading->False];

For the BS equation (with dividends)

CF1

Explicit scheme ,-0.5}, ContourShading->False];

Stability problems related to step sizes.

These relationships should guarantee stability.

Note that reducing asset step by half we must reduce the time step by a factor of four.

CF1

Explicit scheme ,-0.5}, ContourShading->False];

easy to program, hard to make a mistake

when unstable it is obvious

coefficients can be S and t dependent

there are restrictions on time step, which may cause slowness.

CF1

Implicit scheme ,-0.5}, ContourShading->False];

CF1

Implicit scheme ,-0.5}, ContourShading->False];

CF1

Implicit scheme ,-0.5}, ContourShading->False];

Values here are calculated

S

This value is used

time

CF1

Crank-Nicolson scheme ,-0.5}, ContourShading->False];

CF1

Crank-Nicolson scheme ,-0.5}, ContourShading->False];

CF1

Crank-Nicolson scheme ,-0.5}, ContourShading->False];

Values here are calculated

S

These values are used

time

CF1

Crank-Nicolson scheme ,-0.5}, ContourShading->False];

A general form of the linear equation is:

Note that M are tridiagonal!

CF1

Crank-Nicolson scheme ,-0.5}, ContourShading->False];

Theoretically this equation can be solved as

In practice this is inefficient!

CF1

LU decomposition ,-0.5}, ContourShading->False];

M is tridiagonal, thus M=LU, where L is lower triangular, and U is upper triangular.

In fact L has 1 on the diagonal and one subdiagonal only, U has a diagonal and one superdiagonal.

CF1

LU decomposition ,-0.5}, ContourShading->False];

Then in order to solve

Mv=q

or

LUv=q

We will solve

Lw=q

first, and then

Uv=w.

CF1

LU decomposition ,-0.5}, ContourShading->False];

Very fast, especially when M is time independent.

Needs a big modification for American options

CF1

Other methods ,-0.5}, ContourShading->False];

• SOR successive over relaxation

• Douglas scheme

• Three time-level scheme

• Alternating direction method

• Richardson Extrapolation

• Hopscotch method

• Multigrid methods

CF1

Multidimensional case ,-0.5}, ContourShading->False];

Fixed t layer

S

These values are used

to calculate space derivatives

r

Note additional boundary conditions.

CF1

Geometrical Brownian Motion ,-0.5}, ContourShading->False];

CF1

Lognormal process ,-0.5}, ContourShading->False];

CF1

Euler Scheme ,-0.5}, ContourShading->False];

CF1

Milstein Scheme ,-0.5}, ContourShading->False];

CF1

Stochastic Calculus ,-0.5}, ContourShading->False];

Standard Normal

Diffusion process

ABM

GBM

CF1

dt dX ,-0.5}, ContourShading->False];

dt 0 0

dX 0 dt

Ito’s Lemma

CF1

Consider two currencies X and Y. Define S an exchange rate (the number of units of currency Y for a unit of X).

The risk-neutral process for S is

By Ito’s lemma the process for 1/S is

CF1