Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

5 votos

Cómo puedo encontrar la cartera con el máximo ratio de Sharpe - Utilizando los multiplicadores de Lagrange

En la teoría de carteras de Markowitz podemos construir carteras con la mínima varianza para una determinada rentabilidad esperada (o viceversa). A través de los riesgos esperados, esto traza la conocida frontera eficiente.

Para encontrar la llamada cartera de tangencia, buscamos resolver:

max

Después de Tütüncü (sección 5.2 ), esto puede ser reformulado bajo un cambio de variables a un problema de optimización cuadrática más simple:

\min_{y,\kappa} y^T Q y \qquad \text{where} \quad (\mu-r_f)^T y = 1,\; \kappa > 0

He resuelto el problema y he obtenido valores para y . Sin embargo \kappa se define en términos de x ... Así que, aunque estoy seguro de que es una pregunta estúpida, ¿cómo traducimos realmente el y vector para recuperar las verdaderas ponderaciones de la cartera x ??

Lo único que se me ocurre es que no he incluido una restricción para \kappa . Esto es por la misma razón anterior (que se define en términos de x y por lo tanto no está disponible), y porque las condiciones KKT sugeridas en esta respuesta también ignorar el \kappa >0 plazo.

1 votos

El \kappa debe estar relacionada con las otras variables del problema, de lo contrario su formulación no tiene mucho sentido.

0 votos

Estoy de acuerdo; no tiene sentido para mí. \kappa se introduce en la página 62 del libro enlazado en la pregunta, y la formulación está al final de la misma página, así que tal vez me estoy perdiendo un matiz en la derivación matemática, y cómo el conjunto factible \chi ¿se define?

4voto

level1807 Puntos 445

El truco está en la transformación de las restricciones utilizadas para resolver el problema de optimización. Esto puede verse en la definición del conjunto \chi^+ en las dos líneas que siguen a la ecuación 5.4 de Tütüncü. Así, por ejemplo, la restricción presupuestaria habitual ( e^Tx = 1 ) sería sustituido por ( e^Tx - \kappa = 0 ). Después de añadir esta restricción, la solución con el máximo ratio de Sharpe es x^* = \frac{\hat{x}}{\hat{\kappa}} , donde (\hat{x},\hat{\kappa}) es la solución del problema de programación cuadrática (véase la parte inferior de la página 62).

0 votos

Gracias - Ahora entiendo lo que quieres decir sobre la multiplicación de las restricciones por un término \kappa, que supongo que es equivalente a (x,\kappa) \in \chi^{+} . Desgraciadamente, todavía no veo muy bien cómo utilizar \kappa para cambiar las variables; parece que tal vez podamos elegir cualquier valor, pero la simulación que hice sugiere que no funcionará, ya que obtengo diferentes valores para diferentes \kappa y los pesos no suman 1 como se requiere. He subido la simulación aquí, utilizando un marcador de posición \kappa : publiccode-zac-keskin.notebooks.azure.com/nb/notebooks/

1 votos

La formulación permite una variable \kappa que puede tomar cualquier valor positivo. En su código, está utilizando \kappa como una restricción en su Lagrangean, cuando debería aumentar su vector de solución con un \kappa . En otras palabras, debería resolver para (x, \kappa) en lugar de x .

0 votos

Creo que ese es el enfoque equivocado. Su Lagrangean es L(x, \kappa, \lambda_1, \lambda_2) y debería resolver para (x, \kappa, \lambda_1, \lambda_2) . Por lo tanto, su A debe ser (N+3) \times (N+3) . Debería haber una fila adicional para \frac{\partial L}{\partial \kappa} = \lambda_1 . Su b deben ser todos 0, aparte del \lambda_2 que debe ser 1.

0voto

Gino Ventura Puntos 31

H es la matriz hessiana

f = [0;0;0;0;0;0;0;0;0;0;0];
n = 10;
rf = 0.0082;
ExpReturns =  -0.00591 + 0.002 * (1:10)';

% Optimization problem data
lb = zeros(n+1,1);
ub = inf*ones(n+1,1);
F = ones(n,1);
Aeq = [( AvrReturn- rf)' 0;ones(1,n) -1];
beq = [1; 0];
A = [eye(n),-1*ones(n,1)];
b = zeros(n,1);
[x4 fval4,exitflag,output] = quadprog(H,f,A,b,Aeq,beq,lb,ub)
y = x4(1:n);
k = x4(n + 1);
x = x4/k;

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X