Portfolio Optimization with Exponential, Logarithmic, and Linear-Quadratic Utilities

 

Background

Problem 1. Maximizing  Exponential  utility function

Simplified Problem Statement

Mathematical Problem Statement

Problem dimension and solving time

Solution in Run-File Environment

Solution in MATLAB Environment

Problem 2. Maximizing  Linear-Quadratic utility function

Simplified Problem Statement

Mathematical Problem Statement

Problem dimension and solving time

Solution in Run-File Environment

Solution in MATLAB Environment

Problem 3. Maximizing  Logarithmic utility function

Simplified Problem Statement

Mathematical Problem Statement

Problem dimension and solving time

Solution in Run-File Environment

Solution in MATLAB Environment

 

 

Background

 

Utility functions are quite popular in various financial applications. This case study compares portfolio optimization problems with Exponential, Logarithmic, and Linear-Quadratic utility functions. The rate of return dataset for a portfolio is provided for benchmarking purposes by EpiRisk Research company via Drs. Roger Wets and Michael Tian. The EpiRisk Research relies on letting the manager of a fixed-income portfolio solve a sequence of so-called tacking (optimization) models, described below, to shape the returns' distribution. The shape of the distribution is adjusted by selecting the coefficients of the appraisal (~ utility) function.

 

Problem 1

Maximizing Exponential  utility function.

 

Simplified Problem Statement

 

Maximize Exponential_Utility(Return)

 subject to

Linear ≤ Const

Box constraints

 

where

 

Return = Portfolio rate of return

Logarithmic_Utility(Return) = expected value of exponential function of Return

Box constraints = constraints on individual decision variables

 

 

Mathematical Problem Statement

 

Formal Problem Statement

 

Problem dimension and solving time

 

Number of Variables

12

Number of Scenarios

199,554

Objective Value

-15.03056674294

Solving Time (sec)

1.56

 

Solution in Run-File Environment

 

Description (Run-File)

 

Input Files to run CS:

Problem Statement (.txt file)
DATA (.zip file)

 

Output Files:

Output DATA (.zip file)

 

Solution in MATLAB Environment

 

Solved with PSG MATLAB function tbpsg_run (PSG Subroutine Interface):

 

Description (tbpsg_run)

 

Input Files to run CS:

MATLAB code (.txt file)
Data (.zip file)

 

 

Problem 2

Maximizing Linear-Quadratic utility function.

 

Simplified Problem Statement

 

Maximize Linear_Quadratic_Utility(Return)

 subject to

Linear ≤ Const

Box constraints

 

where

 

Return = Portfolio rate of return

Linear_Quadratic_Utility(Return) = expected value of piecewise linear-quardatic-linear function of Return

Box constraints = constraints on individual decision variables

 

 

Mathematical Problem Statement

 

Formal Problem Statement

 

Problem dimension and solving time

 

Number of Variables

12

Number of Scenarios

199,554

Objective Value

20.0333581488

Solving Time (sec)

0.17

 

Solution in Run-File Environment

 

Description (Run-File)

 

Input Files to run CS:

Problem Statement (.txt file)
DATA (.zip file)

 

Output Files:

Output DATA (.zip file)

 

Solution in MATLAB Environment

 

Solved with PSG MATLAB function tbpsg_run (PSG Subroutine Interface):

 

Description (tbpsg_run)

 

Input Files to run CS:

MATLAB code (.txt file)
Data (.zip file)

 

Problem 3

Maximizing Logarithmic utility function.

 

Simplified Problem Statement

 

Maximize Logarithmic_Quadratic_Utility(Return)

 subject to

Linear ≤ Const

Box constraints

 

where

 

Return = Portfolio rate of return

Logarithmic_Utility(Return) = expected value of piecewise linear-quardatic-linear function of Return

Box constraints = constraints on individual decision variables

 

 

Mathematical Problem Statement

 

Formal Problem Statement

 

Problem dimension and solving time

 

Number of Variables

12

Number of Scenarios

199,554

Objective Value

0.224365972673

Solving Time (sec)

0.18

 

Solution in Run-File Environment

 

Description (Run-File)

 

Input Files to run CS:

Problem Statement (.txt file)
DATA (.zip file)

 

Output Files:

Output DATA (.zip file)

 

Solution in MATLAB Environment

 

Solved with PSG MATLAB function tbpsg_run (PSG Subroutine Interface):

 

Description (tbpsg_run)

 

Input Files to run CS:

MATLAB code (.txt file)
Data (.zip file)