2

I am trying to construct a portfolio tracking an index as closely as possible i.e. minimizing tracking error. The objective function is to minimize the following: Objective

The expression being summed is below

Tracking error

I have tried setting up the problem in the following manner:

exp = [cvx.log(V[:,t].T*x) - cvx.log(V[:,0].T*x) - R[t] for t in range(1,V.shape[1])]

where R[t] is the ln(It/I0) part since that can be pre-calculated. Since cvxpy does not allow division by expression, I tried converting to a log difference. This expression has no errors but when I try

for x in exp:
print(x.is_dcp())

I recieve a list of Falses. As a result, cvxpy won't be able to solve the problem since it is not disciplined.

Is there a way of formulating this problem so that it remains disciplined? Alternatively, can I use something other than cvxpy?

Neelotpal Shukla
  • 446
  • 6
  • 13

0 Answers0