Estoy tratando de optimizar una cartera utilizando cvxpy. Mi construcción original es la siguiente:
w = Variable(n)
ret = mu.T * w
risk = quad_form(w, Sigma)
prob = Problem(Maximize(ret), [risk <= .01])
que es simplemente maximizar el rendimiento bajo cierta limitación de riesgo. Sin embargo, me gustaría también tener una limitación de pesos/apalancamiento, como la siguiente:
prob = Problem(Maximize(ret), [risk <= .01, sum(abs(w)) <= 1.0])
Sin embargo, cuando agrego esta limitación, muchos de mis pesos se van a cero y la cartera óptima se concentra solo en 2-3 activos. Esto es diferente al caso sin esta limitación que resulta en una cartera mucho más diversificada. Estoy un poco confundido sobre por qué la limitación de pesos causa esto. ¿Alguien tiene alguna idea?