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.
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.
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”.
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.
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”.
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.
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).
• 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.