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 |
Optimization Letters. 8:61-80. |
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
——————————————————————–
Problem “problem_fc_indtrack1_max_0025”
# of Variables | # of Scenarios | Objective Value | Solving Time, PC 3.14GHz (sec) | ||||
Dataset1 | 32 | 145 | 0.037679 | 0.04 | |||
---|---|---|---|---|---|---|---|
Environments | |||||||
Run-File | Problem Statement | Data | Solution | ||||
Matlab Toolbox | Data | ||||||
Matlab Subroutines | Matlab Code | Data | |||||
R | R Code | Data |
Instructions for importing problems from Run-File to PSG MATLAB.
Problem Datasets | # of Variables | # of Scenarios | Objective Value | Solving Time (sec), PC 2.66GHz | |||
---|---|---|---|---|---|---|---|
Dataset2 | Problem Statement | Data | Solution | 32 | 145 | 0.026224 | 0.15 |
Dataset3 | Problem Statement | Data | Solution | 32 | 145 | 0.0212003 | 0.05 |
Dataset4 | Problem Statement | Data | Solution | 32 | 145 | 0.0205298 | 1.09 |
Dataset5 | Problem Statement | Data | Solution | 86 | 145 | 0.03192982 | 1.09 |
Dataset6 | Problem Statement | Data | Solution | 86 | 145 | 0.0275899 | 1.5 |
Dataset7 | Problem Statement | Data | Solution | 86 | 145 | 0.01864025 | 0.62 |
Dataset8 | Problem Statement | Data | Solution | 86 | 145 | 0.01957557 | 0.41 |
Dataset9 | Problem Statement | Data | Solution | 90 | 145 | 0.030248 | 1.89 |
Dataset10 | Problem Statement | Data | Solution | 90 | 145 | 0.024271042 | 4.94 |
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
——————————————————————–
Problem “problem_indtrack_avg”
# of Variables | # of Scenarios | Objective Value | Solving Time, PC 3.14GHz (sec) | ||||
Dataset1 | 32 | 145 | 0.026434 | 0.16 | |||
---|---|---|---|---|---|---|---|
Environments | |||||||
Run-File | Problem Statement | Data | Solution | ||||
Matlab Toolbox | Data | ||||||
Matlab Subroutines | Matlab Code | Data | |||||
R | R Code | Data |
Download other data sets in Run-File Environment.
Instructions for importing problems from Run-File to PSG MATLAB.
Problem Datasets | # of Variables | # of Scenarios | Objective Value | Solving Time (sec), PC 2.66GHz | |||
---|---|---|---|---|---|---|---|
Dataset2 | Problem Statement | Data | Solution | 32 | 145 | 0.021158 | 0.13 |
Dataset3 | Problem Statement | Data | Solution | 32 | 145 | 0.016447 | 0.17 |
Dataset4 | Problem Statement | Data | Solution | 32 | 145 | 0.041988 | 2.34 |
Dataset5 | Problem Statement | Data | Solution | 86 | 145 | 0.026179 | 2.73 |
Dataset6 | Problem Statement | Data | Solution | 86 | 145 | 0.01914 | 2.70 |
Dataset7 | Problem Statement | Data | Solution | 86 | 145 | 0.017013 | 2.34 |
Dataset8 | Problem Statement | Data | Solution | 86 | 145 | 0.028690 | 2.01 |
Dataset9 | Problem Statement | Data | Solution | 90 | 145 | 0.021414 | 1.74 |
Dataset10 | Problem Statement | Data | Solution | 90 | 145 | 0.017894 | 6.11 |
PROBLEM 3: Index Tracking, Minimizing Max Risk (MIP Formulation)
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
——————————————————————–
Problem “problem_FC_indtrack_max”
# of Variables | # of Scenarios | Objective Value | Solving Time, PC 3.14GHz (sec) | ||||
Dataset1 | 32 | 145 | 0.009309 | 0.04 | |||
---|---|---|---|---|---|---|---|
Environments | |||||||
Run-File | Problem Statement | Data | Solution | ||||
Matlab Toolbox | Data | ||||||
Matlab Subroutines | Matlab Code | Data | |||||
R | R Code | Data |
Download other data sets in Run-File Environment.
Instructions for importing problems from Run-File to PSG MATLAB.
Problem Datasets | # of Variables | # of Scenarios | Objective Value | Solving Time (sec), PC 2.66GHz | |||
---|---|---|---|---|---|---|---|
Dataset2 | Problem Statement | Data | Solution | 32 | 145 | 0.005673 | 0.09 |
Dataset3 | Problem Statement | Data | Solution | 32 | 145 | 0.003917 | 0.07 |
Dataset4 | Problem Statement | Data | Solution | 32 | 145 | 0.010724 | 0.10 |
Dataset5 | Problem Statement | Data | Solution | 86 | 145 | 0.008652 | 0.06 |
Dataset6 | Problem Statement | Data | Solution | 86 | 145 | 0.0059 | 0.08 |
Dataset7 | Problem Statement | Data | Solution | 86 | 145 | 0.0048 | 0.28 |
Dataset8 | Problem Statement | Data | Solution | 86 | 145 | 0.008948 | 0.07 |
Dataset9 | Problem Statement | Data | Solution | 90 | 145 | 0.00754 | 0.08 |
Dataset10 | Problem Statement | Data | Solution | 90 | 145 | 0.006416 | 0.06 |
PROBLEM 4: Index Tracking, Minimizing Mean Absolute Deviation (MIP Formulation)
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
——————————————————————–Problem “problem_FC_indtrack_avg”
# of Variables | # of Scenarios | Objective Value | Solving Time, PC 3.14GHz (sec) | ||||
Dataset1 | 32 | 145 | 0.0086524 | 0.06 | |||
---|---|---|---|---|---|---|---|
Environments | |||||||
Run-File | Problem Statement | Data | Solution | ||||
Matlab Toolbox | Data | ||||||
Matlab Subroutines | Matlab Code | Data | |||||
R | R Code | Data |
Download other datasets in Run-File Environment.
Instructions for importing problems from Run-File to PSG MATLAB.
Problem Datasets | # of Variables | # of Scenarios | Objective Value | Solving Time (sec), PC 2.66GHz | |||
---|---|---|---|---|---|---|---|
Dataset2 | Problem Statement | Data | Solution | 32 | 145 | 0.0086395 | 0.09 |
Dataset3 | Problem Statement | Data | Solution | 32 | 145 | 0.0086396 | 0.07 |
Dataset4 | Problem Statement | Data | Solution | 32 | 145 | 0.011104 | 1.70 |
Dataset5 | Problem Statement | Data | Solution | 86 | 145 | 0.009091 | 0.43 |
Dataset6 | Problem Statement | Data | Solution | 86 | 145 | 0.008142 | 0.42 |
Dataset7 | Problem Statement | Data | Solution | 86 | 145 | 0.007221 | 0.21 |
Dataset8 | Problem Statement | Data | Solution | 86 | 145 | 0.008620 | 0.24 |
Dataset9 | Problem Statement | Data | Solution | 90 | 145 | 0.007671 | 0.32 |
Dataset10 | Problem Statement | Data | Solution | 90 | 145 | 0.006068 | 1.87 |
CASE STUDY SUMMARY
All PROBLEMS
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.