La optimización cuadrática (varianza mínima) $$ w^{T} \Sigma w \rightarrow \text{min}, $$ donde $w$ es el vector de ponderaciones de la cartera y $\Sigma$ es la matriz de covarianza de los rendimientos de los activos, es un problema bien estudiado. En la práctica tenemos que definir ciertas restricciones. Se trata de restricciones lineales y continuas fáciles (como $\sum_{i=1}^n w_i = 1$ o restricciones de giro) o restricciones binarias difíciles (si se compra un activo que con al menos $x\%$ una restricción de cardinalidad, etc.).
Configurar $\hat{w} = w_{Pf} - w_{BM}$ como el vector de ponderaciones activas de la cartera en relación con un índice de referencia, la fórmula anterior describe la minimización del error de seguimiento (al cuadrado).
Las difíciles restricciones binarias conducen a la programación entera mixta (PIM). Los solucionadores comerciales la resuelven con métodos como rama y límite que consumen mucho tiempo para problemas grandes (por ejemplo, más de 1000 activos).
He oído hablar de un enfoque para formular tales problemas como programas cónicos de segundo orden (SOCP) y que estos problemas suelen resolverse de forma más eficiente.
Tengo mucha experiencia con branche y bound y me gustaría cambiar a SOCP. ¿Conoces alguna buena referencia de SOCP y optimización de carteras/TE con restricciones duras del mundo real (especialmente con variables binarias)? ¿Tenéis alguna experiencia sobre si el cambio merece la pena?
PD: Supongamos que $\Sigma$ está bien estimada y esa varianza tiene sentido. Sé que esto es discutible...
EDITAR: Este artículo Aplicaciones de la programación cónica de segundo orden describe la formulación de un programa cuadrático con restricciones cuadráticas como SOCP. También se le echará un vistazo aquí .
EDITAR 2: Para formular todos los detalles. Tengo el programa cuadrático mixto-inter (formulo el caso TE): $$ w^{T} \Sigma w + w^T c \rightarrow \text{min}, $$ con $0 \le w_i \le u$ para $i = 1,\ldots, N$ con $N \approx 1000$ y un vecor constante $c$ . Las restricciones son de la forma $$ w_i \ge b_i*l \text{ for } i = 1,\ldots,N \\ \sum b_i \le K \\ b_i \in \{0,1\} \text{ for } i = 1,\ldots,N $$ con un pequeño real $l \in (0,1)$ y algún número entero grande $K$ . Además tengo muchas limitaciones continuas $$ A w \le b. $$ Si soy totalmente preciso, entonces hay variables continuas adicionales que aparecen sólo en las restricciones (estos modelos se vuelcan).
Si sigo el enlace anterior, esto puede formularse como SOCP mixto con $$ t \rightarrow \text{min}. $$ y todas las restricciones anteriores y una adicional: $$ \| \Sigma^{1/2} w + \Sigma^{-1/2}c \| \le t. $$
¿Existe la posibilidad de que el problema SOCP mixto-integro tal y como se ha formulado anteriormente pueda resolverse de forma más eficiente que el programa cuadrático mixto-integro (con restricciones lineales y binarias pero no cuadráticas)?