我正在解决一个问题,我需要使用 Matlab 中的 IBM Cplex 工具根据最大化夏普比率来找到重新平衡的投资组合。从我的想法来看,我已经添加了所有条件和约束,但是当我尝试解决它时,我得到整数不可行。
这是代码:
% mu and covariance matrix Q is given
% No of stocks
n = 20;
% Risk free rate
r = 0.045;
% Optimization problem data
lb = zeros(n,1);
ub = inf*ones(n,1);
A = [(mu' - r) 0; ones(1,n) -1];
lhs = [1;0];
rhs = [1;0];
b = 1;
% Define continuous and binary variables
variabtype = [char(ones([1 n])*('C')) char(ones([1 1])*('B'))];
% Compute minimum variance portfolio
cplex1 = Cplex('minYK');
% cplex1.Model.sense = 'minimize';
cplex1.addCols(zeros(n+1,1), [], [lb; 0], [ub; inf], variabtype);
cplex1.addRows(lhs, A, rhs);
cplex1.Param.qpmethod.Cur = 6; % concurrent algorithm
cplex1.Param.barrier.crossover.Cur = 1; % enable crossover
cplex1.Model.Q = [2*Q zeros(n,1)];