Optimization In Finance With MATLAB

Transcription

Solving Large Optimization Problems in Finance:How MATLAB Can Help YouJorge PaloschiConsulting ServicesMathWorks Spain 2016 The MathWorks, Inc.1

Optimization2

Optimization in Financial Applications with MATLAB Financial Optimization Optimization Methods Customized Optimization Models3

Financial Optimization4

Financial Applications and MEconometricsPricing &ValuationPortfolio OptimizationMachine LearningRegressionMaximum Likelihood EstimationDistribution FittingCurve Fitting5

MATLAB – The Financial Development PlatformAccessResearch and QuantifyShareFilesData Analysis and VisualizationReportingDatabasesFinancial ModelingApplicationsDatafeedsApplication DevelopmentProductionDatafeedStatistics/Machine LearningOptimizationDeep LearningRisk n ServerFinancialSpreadsheet Link EXDatabaseEconometricsFinancial InstrumentsReport GeneratorTrading ToolboxMATLABParallel ComputingMATLAB Parallel Server6

Financial Optimization in MATLAB–––FinancialMean-Variance Portfolio OptimizationConditional Value-at-Risk Portfolio OptimizationMean-Absolute Deviation Portfolios–––EconometricsTime Series Regression ModelsConditional Mean Variance ModelsMultivariate ModelsOptimizationStatistics–––Linear/ Nonlinear RegressionProbability disribution fittingMachine Learning, e.g., SVM, NN,.–Neural NetworkNonlinear Regression, Convolutional Neural Networks7

Optimization Methods8

Optimization ProblemObjective FunctionTypically a linear or nonlinear functionmin f ( x )xDecision variables (can be discrete or integer)Subject to ConstraintsLinear constraints inequalities equalities boundsAx bc( x) 0Aeq x beqceq( x) 0Nonlinear constraints inequalities equalitiesl x u9

How to solve an optimization problem ?What do you know about your optimization problem ?accuracyruntimeinformationinformation10

Variables & 1520Integer .8LinearNonlinear0.60.40.40.20.20011

Objective .200Linear f(x) ATx0Quadratic f(x) eral rve fittingf(c) S[g(xk;c) – yk]212

Numerical OptimizationWhenever possible, provide gradient/hessian information!f ( x ) function [f,df] objective(x)f . % function valuedf . % gradient vectorf ( x x ) f ( x x )2 x Fewer function evaluations More accurate13

Derivative-Free Optimization f ?fminconRepeatedly sampleseveral pointsDirect SearchGenetic Algorithm14

Approaches in MATLAB Local Optimization– Finds local minima/maxima Uses supplied gradients or estimates them Applicable for large scale problems withsmooth objective function– Faster/fewer function evaluations Global Optimization– No gradient information required– Solve problems with non-smooth,discontinuous objective function15

SolversVariablesConstraintsObjective functionLinear f(x) ATxlinprogintlinprogQuadratic f(x) 060504030120201001000510152080f(c) S[g(xk;c) 0.70.80.91Optimization Toolbox10864General f(x)20-2-4-6-821210fminuncfmincon0-1-1-2-216

SolversVariablesConstraintsObjective 0807060Non-smoothGlobal Optimization 5101520Discretega17

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 calculation18

Hessian Analytical Calculation Not easy, in general, to calculate analytical Hessian Can MATLAB help?– YES! Symbolic MathToolbox19

Sample Problem Problem: Volatility surface estimation for the pricing ofcall 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)20

Numerical results ( problem size 209)GradientsFunction evaluationsTime (secs)Numerical100,0561351Numerical(using parallel)100,056642Analytical523.4121

MATLAB Code%Define symbolic residualsx evalin(symengine,['n: ',num2str(n),';[x[j] j 1.n]']);f evalin(symengine,['[f[j] j 1.n]']);for jj 1:nd1 (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));endobj f*f.';22

MATLAB Code%Define objective gradient and hessiangrad diff(obj,x);hess jacobian(grad,x);%Transform symbolics into MATLAB function handlessymGrad matlabFunction(grad);symHess matlabFunction(hess);23

Example of Use References– Paloschi J and Krishnamurthy S – Improving MATLAB performance when solvingfinancial optimization problems – Wilmott Magazine – May 2011– inancial-optimization-problems24

Customized Optimization Models25

Supported Portfolio Optimization ModelsFinancial Toolbox Mean-Variance Portfolio Optimization Conditional Value-at-Risk Portfolio Optimization Mean-Absolute Deviation Portfolio Optimization26

MATLAB – The Financial Development PlatformAccessResearch and QuantifyShareFilesData Analysis and VisualizationReportingDatabasesFinancial ModelingApplicationsDatafeedsApplication DevelopmentProductionDatafeedStatistics/Machine LearningOptimizationDeep LearningRisk n ServerFinancialSpreadsheet Link EXDatabaseEconometricsFinancial InstrumentsReport GeneratorTrading ToolboxMATLABParallel ComputingMATLAB Parallel Server27

Customized Portfolio Optimization Deployment Compile your MATLABoptimization model for yourdedicated platform Make it available for yourenterprise environment28

Customer User Stories Involving Optimization in Finance https://uk.mathworks.com/company/user stories/search.html?q &fq 29

30

31

32

Summary Optimization for financial applications is built within MATLABtoolboxes 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 deployment33

Thank you !34

MATLAB Compiler r r Trading Toolbox Deep Learning Risk management. 7 – Mean-Variance Portfolio Optimization – Conditional Value-at-Risk Portfolio Optimization – Mean-Absolute Deviation Portfolios – Time Se