optimization in finance with matlab€¦ · matlab –the financial ... – nonlinear regression,...

34
1 © 2016 The MathWorks, Inc. Solving Large Optimization Problems in Finance: How MATLAB Can Help You Jorge Paloschi Consulting Services MathWorks Spain

Upload: others

Post on 12-Aug-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

1© 2016 The MathWorks, Inc.

Solving Large Optimization Problems in Finance:

How MATLAB Can Help You

Jorge Paloschi

Consulting Services

MathWorks Spain

Page 2: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

2

Optimization

Page 3: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

3

Optimization in Financial Applications with MATLAB

Financial Optimization

Optimization Methods

Customized Optimization Models

Page 4: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

4

Financial Optimization

Page 5: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

5

Financial Applications and Optimization

Asset

Management

Trading

Risk

Management

Portfolio Optimization

Machine Learning

Regression

Maximum Likelihood Estimation

Distribution Fitting

Curve Fitting

ALM

Econometrics

Pricing &

Valuation

Page 6: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

6

MATLAB – The Financial Development Platform

Financial

Statistics/Machine Learning Optimization

Financial Instruments Econometrics

MATLAB

Parallel Computing MATLAB Parallel Server

Files

Databases

Datafeeds

Access

Reporting

Applications

Production

Share

Data Analysis and Visualization

Financial Modeling

Application Development

Research and Quantify

Datafeed

Database

Spreadsheet Link EX

MATLAB

Compiler

SDK

MATLAB

Compiler

Rep

ort G

en

era

tor

Pro

du

ctio

n S

erv

er

Trading Toolbox

Deep Learning Risk management

Page 7: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

7

– Mean-Variance Portfolio Optimization

– Conditional Value-at-Risk Portfolio Optimization

– Mean-Absolute Deviation Portfolios

– Time Series Regression Models

– Conditional Mean Variance Models

– Multivariate Models

– Linear/ Nonlinear Regression

– Probability disribution fitting

– Machine Learning, e.g., SVM, NN,...

– Nonlinear Regression, Convolutional Neural Networks

Financial Optimization in MATLAB

Financial

Statistics

Econometrics

Neural Network

Optimization

Page 8: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

8

Optimization Methods

Page 9: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

9

Optimization Problem

Objective Function

uxl

eqbxeqA

bAx

)(min xfx

Typically a linear or nonlinear function

Linear constraints inequalities equalities bounds

Nonlinear constraints inequalities equalities

Decision variables (can be discrete or integer)

0)(

0)(

xeq

c

xc

Subject to Constraints

Page 10: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

10

How to solve an optimization problem ?

What do you know about your optimization problem ?

information

accuracy

information

runtime

Page 11: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

11

Variables & Constraints

Variables

Continuous Discrete

0 0.2 0.4 0.6 0.8 10

10

20

30

40

50

60

70

80

90

100

0 5 10 15 200

10

20

30

40

50

60

70

80

90

100

Integer Programming

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

-1

-0.5

0

0.5

1

1.5

2

2.5

3

Constraints

Linear Nonlinear

Page 12: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

12

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

-1

-0.5

0

0.5

1

1.5

2

2.5

3

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

-2

-1

0

1

2

-2

-1

0

1

2

-8

-6

-4

-2

0

2

4

6

8

10

Objective Function

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

20

40

60

80

100

120

Least-squares/curve fitting

Quadratic f(x) = xTAxLinear f(x) = ATx

General f(x)

f(c)=S[g(xk;c) – yk]2

Page 13: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

13

Numerical Optimization

x

xxfxxfxf

2

)()()(

function [f,df] = objective(x)f = ... % function value

df = ... % gradient vector

Fewer function evaluations

More accurate

Whenever possible, provide gradient/hessian information!

Page 14: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

14

Derivative-Free Optimization

?f fmincon

Repeatedly sample

several points

Direct Search

Genetic Algorithm

Page 15: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

15

Approaches in MATLAB

Local Optimization – Finds local minima/maxima

Uses supplied gradients or estimates them

Applicable for large scale problems with smooth objective function

– Faster/fewer function evaluations

Global Optimization– No gradient information required

– Solve problems with non-smooth, discontinuous objective function

Page 16: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

16

Solvers

Variables

Continuous

0 0.2 0.4 0.6 0.8 10

10

20

30

40

50

60

70

80

90

100

0 5 10 15 200

10

20

30

40

50

60

70

80

90

100

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

-1

-0.5

0

0.5

1

1.5

2

2.5

3

Constraints

Linear

NonlinearDiscrete

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

-1

-0.5

0

0.5

1

1.5

2

2.5

3

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

-2

-1

0

1

2

-2

-1

0

1

2

-8

-6

-4

-2

0

2

4

6

8

10

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

20

40

60

80

100

120

Least-squares

Quadratic f(x) = xTAx

Linear f(x) = ATx

General f(x)

f(c)=S[g(xk;c) – yk]2

Objective function Solver

linprog

quadprog

intlinprog

lsqlinlsqnonlin

fminuncfmincon

Optimization Toolbox

Page 17: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

17

Solvers

Variables

Continuous

0 0.2 0.4 0.6 0.8 10

10

20

30

40

50

60

70

80

90

100

0 5 10 15 200

10

20

30

40

50

60

70

80

90

100

Constraints

Discrete

Nonlinearf(x)

Objective function Solver

GlobalSearch,

MultiStart

Non-smooth patternsearch,

ga,

simulannealbnd

ga

Global Optimization Toolbox

Page 18: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

18

How to Improve Performance?

Derivatives calculations– Gradients

– Hessian matrix

Default approach– Approximation: Finite differences perturbations ( VERY EXPENSIVE! )

Alternative approaches– Cheaper approximations

LBFGS

Supply your own approximation

Analytical calculation

Page 19: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

19

Hessian Analytical Calculation

Not easy, in general, to calculate analytical Hessian

Can MATLAB help?

– YES! Symbolic MathToolbox

Page 20: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

20

Sample Problem

Problem: Volatility surface estimation for the pricing of

call options. Calibration using market options.

Objective: g(x ) = ||f(x)||2

– fj(x) = C(xj,Kj,Tj) – Cj

K strikes

T maturities

C closing prices

BSM model (Black Scholes and Merton)

Page 21: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

21

Numerical results ( problem size 209)

Gradients Function evaluations Time (secs)

Numerical 100,056 1351

Numerical

(using parallel)

100,056 642

Analytical 52 3.41

Page 22: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

22

MATLAB Code

%Define symbolic residuals

x = evalin(symengine,['n:=',num2str(n),';[x[j] $ j = 1..n]']);

f = evalin(symengine,['[f[j] $ j = 1..n]']);

for jj=1:n

d1 = (log(S(jj)/K(jj)) +

(r+x(jj)^2/2)*T(jj))/(x(jj)*sqrt(T(jj)));

d2 = d1 - x(jj)*sqrt(T(jj));

val = S(jj)*0.5*(1+erf(d1/sqrt(2))) - ...

K(jj)*exp(-r*T(jj)) * 0.5*(1+erf(d2/sqrt(2)));

f(jj) = (val-CP(jj));

end

obj = f*f.';

Page 23: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

23

MATLAB Code

%Define objective gradient and hessian

grad = diff(obj,x);

hess = jacobian(grad,x);

%Transform symbolics into MATLAB function handles

symGrad = matlabFunction(grad);

symHess = matlabFunction(hess);

Page 24: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

24

Example of Use

References

– Paloschi J and Krishnamurthy S – Improving MATLAB performance when solving

financial optimization problems – Wilmott Magazine – May 2011

– https://uk.mathworks.com/matlabcentral/fileexchange/33597-improving-matlab-

performance-when-solving-financial-optimization-problems

Page 25: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

25

Customized Optimization Models

Page 26: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

26

Supported Portfolio Optimization Models

Mean-Variance Portfolio Optimization

Conditional Value-at-Risk Portfolio Optimization

Mean-Absolute Deviation Portfolio Optimization

Financial Toolbox

Page 27: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

27

MATLAB – The Financial Development Platform

Financial

Statistics/Machine Learning Optimization

Financial Instruments Econometrics

MATLAB

Parallel Computing MATLAB Parallel Server

Files

Databases

Datafeeds

Access

Reporting

Applications

Production

Share

Data Analysis and Visualization

Financial Modeling

Application Development

Research and Quantify

Datafeed

Database

Spreadsheet Link EX

MATLAB

Compiler

SDK

MATLAB

Compiler

Rep

ort G

en

era

tor

Pro

du

ctio

n S

erv

er

Trading Toolbox

Deep Learning Risk management

Page 28: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

28

Customized Portfolio Optimization -

Deployment

Compile your MATLAB

optimization model for your

dedicated platform

Make it available for your

enterprise environment

Page 29: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

29

Customer User Stories Involving Optimization in Finance

https://uk.mathworks.com/company/user_stories/search.html?q=&fq=produ

ct:OP%20marketing-industry:financial-services

Page 30: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

30

Page 31: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

31

Page 32: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

32

Page 33: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

33

Summary

Optimization for financial applications is built within MATLAB

toolboxes covering many standard applications

A large variety of optimization algorithms available in MATLAB®

Optimization Toolbox™ and Global Optimization Toolbox™

Customized optimization models made easy by

– quick modeling (Math to MATLAB)

– advanced optimization process diagnostics

– rapid deployment

Page 34: Optimization in Finance with MATLAB€¦ · MATLAB –The Financial ... – Nonlinear Regression, Convolutional Neural Networks Financial Optimization in MATLAB Financial Statistics

34

Thank you !