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