Case Study: Cash Matching with bPOE and CVaR Functions

Back to main page

Case study background and problem formulations

Instructions for optimization with PSG Run-File, PSG MATLAB Toolbox, PSG MATLAB Subroutines and PSG R.

Optimization package Gurobi needs to be installed to run this case study.

PROBLEM 1: problem_cash_flow_matching_1
Minimize linear (minimizing the cost of portfolio)
subject to
Cvar_risk ≤ const (constraint on downside risk)
Box constraints (variables are not negative)
——————————————————————–

Cvar_risk = CVaR Risk for Loss
Box constraints = constraints on individual decision variables
——————————————————————–

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 1331 200 1172.368 11.13
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

PROBLEM 2: problem_cash_flow_matching_2

Minimize Cvar_risk (minimizing the downside risk)
subject to
linear ≤ const (constraint on cost of portfolio)
Box constraints (variables are not negative)
——————————————————————–

Cvar_risk = CVaR Risk for Loss
Box constraints = constraints on individual decision variables
——————————————————————–

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 1331 200 0.000000000001 5.41
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

PROBLEM 3: problem_cash_flow_matching_3
Minimize bPOE (minimizing the buffered probability of downside risk)
subject to
linear ≤ const (constraint on cost of portfolio)
Box constraints (variables are not negative)
——————————————————————–

bPOE = buffered probability of exceeding
Box constraints = constraints on individual decision variables
——————————————————————–

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 1331 200 0.100000000006 8.16
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

PROBLEM 4: problem_cash_flow_matching_4

Minimize PM_pen (minimizing the Partial Moment)
subject to
linear ≤ 0 (constraint on cost of portfolio)
Box constraints (variables are not negative)
——————————————————————–

bPOE = Partial Moment
Box constraints = constraints on individual decision variables (br /)
——————————————————————–

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 1332 200 0.10000000008 7.83
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

PROBLEM 5: problem_cash_flow_matching_5
For 12 problems
Minimize bPOE (minimizing the buffered probability of downside risk)
subject to
linear ≤ const (constraint on budget of portfolio)
Box constraints (variables are not negative)
End for
——————————————————————–

bPOE = buffered probability of exceeding
Box constraints = constraints on individual decision variables
——————————————————————–

# of Variables # of Scenarios Objective Value Solving Time, PC 3.14GHz (sec)
Dataset 1331 200 1.000000000000 15.65
Environments
Run-File Problem Statement Data Solution
Matlab Toolbox Data
Matlab Subroutines Matlab Code Data
R R Code Data

CASE STUDY SUMMARY
Bond immunization is an important topic in portfolio management. This case study demonstrates a scenario based optimization framework for solving a cash flow matching problem where the time horizon of the liabilities is longer than the maturities of available bonds and the interest rates are uncertain. Bond purchase decisions are made each period to generate cash flow for covering the obligations in future. Since cash flows depend upon future prices of bonds, which are not addressed precisely, some risk management approach needs to be used to handle uncertainties in cash flows.
This case study finds optimal portfolio providing the necessary cash flow with high probability and controlling the total initial portfolio cost.