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.

Sources of Data

PROBLEM 1: Index Tracking, Minimizing Max Risk

Minimize Max_Risk (minimizing the maximum absolute difference between tracking portfolio and index returns)
subject to
Cardn_pos <= Const1 (constraint on the number of assets in the new tracking portfolio)
Buyin_pos <= 0 (constraint prohibiting small positions)
Linear + trcost<= Const2 (bound on sum of “new tracking portfolio value” + “transaction cost” <= “current tracking portfolio value”)
trcost <= Const3 (upper bound on transaction cost)
– trcost + Const4*Polynom_abs + Const5*(Cardn_pos+Cardn_neg) < = 0 (constraint defines variable and fixed transaction costs)
Box constraints (bounds on variables)
——————————————————————–
Max_Risk = Maximum Risk for Loss
Cardn_pos = Cardinality Positive
Byin_pos = Buy-in Positive
Polynom_abs = Polynomial Absolute Function = weighted sum of absolute values of positions
Box constraints = constraints on individual decision variables

——————————————————————–Download datasets in Run-File Environment.

Problem Datasets # of Variables # of Scenarios Objective Value Solving Time (sec), PC 2.66GHz
Dataset1 ProblemStatement Data Solution 32 145 0.037679 0.04
Dataset2 ProblemStatement Data Solution 32 145 0.026224 0.15
Dataset3 ProblemStatement Data Solution 32 145 0.0212003 0.05
Dataset4 ProblemStatement Data Solution 32 145 0.0205298 1.09
Dataset5 ProblemStatement Data Solution 86 145 0.03192982 1.09
Dataset6 ProblemStatement Data Solution 86 145 0.0275899 1.5
Dataset7 ProblemStatement Data Solution 86 145 0.01864025 0.62
Dataset8 ProblemStatement Data Solution 86 145 0.01957557 0.41
Dataset9 ProblemStatement Data Solution 90 145 0.030248 1.89
Dataset10 ProblemStatement Data Solution 90 145 0.024271042 4.94

Instructions for importing problems from Run-File to PSG MATLAB.

PROBLEM 2: Index Tracking, Minimizing Mean Absolute Deviation
Minimize Meanabs (minimizing the average of the absolute differences between tracking portfolio return and index return)
subject to
Cardn_pos <= Const1 (constraint on the number of assets in the new tracking portfolio)
Buyin_pos <= 0 (constraint prohibiting small positions)
Linear + trcost<= Const2 (bound on sum of “new tracking portfolio value” + “transaction cost” <= “current tracking portfolio value”)
trcost <= Const3 (upper bound on transaction cost)
– trcost + Const4*Polynom_abs + Const5*(Cardn_pos+Cardn_neg) < = 0 (constraint defines variable and fixed transaction costs)
Box constraints (bounds on variables)
——————————————————————–
Meanabs = Mean Absolute Error
Cardn_pos = Cardinality Positive
Byin_pos = Buyin Positive
Polynom_abs = Polynomial Absolute Function, which is the weighted sum of absolute values
Box constraints = constraints on individual decision variables_______________________Download datasets in Run-File Environment.

Problem Datasets # of Variables # of Scenarios Objective Value Solving Time (sec), PC 2.66GHz
Dataset1 ProblemStatement Data Solution 32 145 0.026434 0.16
Dataset2 ProblemStatement Data Solution 32 145 0.021158 0.13
Dataset3 ProblemStatement Data Solution 32 145 0.016447 0.17
Dataset4 ProblemStatement Data Solution 32 145 0.041988 2.34
Dataset5 ProblemStatement Data Solution 86 145 0.026179 2.73
Dataset6 ProblemStatement Data Solution 86 145 0.01914 2.70
Dataset7 ProblemStatement Data Solution 86 145 0.017013 2.34
Dataset8 ProblemStatement Data Solution 86 145 0.028690 2.01
Dataset9 ProblemStatement Data Solution 90 145 0.021414 1.74
Dataset10 ProblemStatement Data Solution 90 145 0.017894 6.11

Instructions for importing problems from Run-File to PSG MATLAB.

PROBLEM 3: Index Tracking, Minimizing Max Risk (MIP Formulation)
The same problem formulation as Problem 1, but with options “Linearize=1, MIP=1”. Problem is solved as a Mixed Integer Linear Programming (MILP) problem by solver CARGRB “in one shot”.
Minimize Max_Risk (minimizing the maximum absolute difference between tracking portfolio return and index return)
subject to
Cardn_pos <= Const1 (constraint on the number of assets in the new tracking portfolio)
Buyin_pos <= 0 (constraint prohibiting small positions)
Linear + trcost<= Const2 (bound on sum of “new tracking portfolio value” + “transaction cost” <= “current tracking portfolio value”)
trcost <= Const3 (upper bound on transaction cost)
– trcost + Const4*Polynom_abs + Const5*(Cardn_pos+Cardn_neg) < = 0 (constraint defines variable and fixed transaction costs)
Box constraints (bounds on variables)
——————————————————————–
Max_Risk = Maximum Risk for Loss
Cardn_pos = Cardinality Positive
Byin_pos = Buyin Positive
Polynom_abs = Polynomial Absolute Function, which is the weighted sum of absolute values
Box constraints = constraints on individual decision variables——————————————————————–Download datasets in Run-File Environment.

Problem Datasets # of Variables # of Scenarios Objective Value Solving Time (sec), PC 2.66GHz
Dataset1 ProblemStatement Data Solution 32 145 0.009309 0.04
Dataset2 ProblemStatement Data Solution 32 145 0.005673 0.09
Dataset3 ProblemStatement Data Solution 32 145 0.003917 0.07
Dataset4 ProblemStatement Data Solution 32 145 0.010724 0.10
Dataset5 ProblemStatement Data Solution 86 145 0.008652 0.06
Dataset6 ProblemStatement Data Solution 86 145 0.0059 0.08
Dataset7 ProblemStatement Data Solution 86 145 0.0048 0.28
Dataset8 ProblemStatement Data Solution 86 145 0.008948 0.07
Dataset9 ProblemStatement Data Solution 90 145 0.00754 0.08
Dataset10 ProblemStatement Data Solution 90 145 0.006416 0.06

Instructions for importing problems from Run-File to PSG MATLAB.

PROBLEM 4: Index Tracking, Minimizing Mean Absolute Deviation (MIP Formulation)
The same problem formulation as Problem 2, but with options “Linearize=1, MIP=1”. Problem is solved as a Mixed Integer Linear Programming (MILP) problem by solver CARGRB “in one shot”.
Minimize Meanabs (minimizing the average of the absolute differences between tracking portfolio return and index return)
subject to
Cardn_pos <= Const1 (constraint on the number of assets in the new tracking portfolio)
Buyin_pos <= 0 (constraint prohibiting small positions)
Linear + trcost<= Const2 (bound on sum of “new tracking portfolio value” + “transaction cost” <= “current tracking portfolio value”)
trcost <= Const3 (upper bound on transaction cost)
– trcost + Const4*Polynom_abs + Const5*(Cardn_pos+Cardn_neg) < = 0 (constraint defines variable and fixed transaction costs)
Box constraints (bounds on variables)
——————————————————————–
Meanabs = Mean Absolute Error
Cardn_pos = Cardinality Positive
Byin_pos = Buyin Positive
Polynom_abs = Polynomial Absolute Function, which is the weighted sum of absolute values
Box constraints = constraints on individual decision variables——————————————————————–Download datasets in Run-File Environment.

Problem Datasets # of Variables # of Scenarios Objective Value Solving Time (sec), PC 2.66GHz
Dataset1 ProblemStatement Data Solution 32 145 0.0086524 0.06
Dataset2 ProblemStatement Data Solution 32 145 0.0086395 0.09
Dataset3 ProblemStatement Data Solution 32 145 0.0086396 0.07
Dataset4 ProblemStatement Data Solution 32 145 0.011104 1.70
Dataset5 ProblemStatement Data Solution 86 145 0.009091 0.43
Dataset6 ProblemStatement Data Solution 86 145 0.008142 0.42
Dataset7 ProblemStatement Data Solution 86 145 0.007221 0.21
Dataset8 ProblemStatement Data Solution 86 145 0.008620 0.24
Dataset9 ProblemStatement Data Solution 90 145 0.007671 0.32
Dataset10 ProblemStatement Data Solution 90 145 0.006068 1.87

Instructions for importing problems from Run-File to PSG MATLAB.

 

CASE STUDY SUMMARY
Index tracking is a portfolio optimization problem which generates return of an index with a tracking portfolio. The tracking portfolio contains a small number of securities.Problem 1 minimizes maximum absolute difference between return of the tracking portfolio and return of the index. The problem is formulated with continuous variables by using Portfolio Safeguard (PSG) functions “cardn_pos” and “buyin_pos”. PSG functions “polynom_abs”, “cardn_pos”, and “cardn_neg” are used for calculation transaction costs.Problem 2 is similar to the Problem 1, but it minimizes the mean absolute difference between return of the tracking portfolio and return of the index.Problem 3 solves Problem 1 by using Boolean variables.Problem 4 solves Problem 2 by using Boolean variables.A number of papers relating to index tracking have been discussed in Canakgoz and Beasley 2009 and Beasley et al. 2003. The case study solves a set of instances from the OR-library (Basley 1990) with parameters considered in Beasley et al. 2003 and Canakgoz et al. 2009. The problem statements and the setting of the experiments closely follow the paper by Mezali and Beasley (2012). However the problem statements were formulated with PSG nonlinear functions without discrete variables (which leads to a simple programming of optimization problems).

References
• Beasley J E (1990). OR-Library: distributing test problems by electronic mail, Journal of the Operational Research Society, 41(11): 1069–1072. ( http://people.brunel.ac.uk/∼mastjjb/jeb/info.html)
• Beasley J E, Meade N and Chang T-J (2003). An evolutionary heuristic for the index tracking problem, European Journal of Operational Research, 148(3), 621–643.
• Canakgoz N A and Beasley J E (2009). Mixed-integer programming approaches for index tracking and enhanced indexation, European Journal of Operational Research, 196(1), 384-399.
• Mezali, H. and Beasley, J.E. (2012). Index Tracking with Fixed and Variable Transaction Costs. Optimization Letters. Submitted for publication.