/ / Matlab: fmincon, Optimización de cartera, dificultades con variables libres - matlab, optimización, cartera

Matlab: fmincon, optimización de cartera, dificultades con variables libres - matlab, optimización, cartera

estoy tratando de replicar un documento ("¿Es la variación de la media del mercado después de todo?" de Levy & Roll) en Matlab. quiero minimizar La siguiente función (D) con sus restricciones:

Función objetiva

Restricciones

Quiero tener mu y sigma,

además alfa, q y r_z son variables libres, donde

  • alfa: 0 ≤ α ≤ 1 es un parámetro determinante El peso relativo asignado a las desviaciones de las medias en relación con las desviaciones. de las desviaciones estándar.
  • q: q> 0 es la constante de proporcionalidad
  • r_z : tasa de beta cero (tasa de interés libre de riesgo)

Yo tengo:

  • mu ^ sam: Vector de medios de devoluciones históricas.
  • sigma ^ sam: Vector de desviación estándar de rendimientos históricos.
  • Matriz de covarianza
  • pesos x_m, yo

Ahora no sé cómo manejar las variables libres alfa, q y r_z

Mi función objetivo D:

function dist=distOpt(alpha, N, x0, mu_sam, sigma_sam)

sumSigma=0;

for i=1:N
sumMu=sumMu+((x0(i)-mu_sam(i))/sigma_sam(i))^2;
sumSigma=sumSigma+((x0(N+i)-sigma_sam(i))/sigma_sam(i))^2;
end
dist=sqrt(alpha*(1/N)*sumMu + (1-alpha)*(1/N)*sumSigma);

Y restricciones:

Mu_sam=repelem(-0.0001,y-1);
Sigma_sam=repelem(-0.0002,y-1);
x0=[Mu_sam Sigma_sam];

function [c,ceq] = confuneq(x0,rz,Cor,Weights)
q=1;

ceq=diag(x0(7:end))*Cor*diag(x0(7:end))*Weights" - q*(x0(1:6)"-rz);
c=[];

Mi uso de fmincon:

optFunc=@(x0) distOpt(alpha,(y-1),x0, Mu_sam, Sig_sam);
options = optimoptions(@fmincon,"Algorithm","sqp","MaxFunctionEvaluations", 12000,"FunValCheck","on");
nonlcon=@(c,ceq) confuneq(x0,r_z, rho, Weights);
[x0, fval, exitFlag]= fmincon(optFunc,x0,[],[],[],[],[],[],nonlcon,options);

¿Alguien puede ayudar?

Respuestas

0 para la respuesta № 1

Ahora no sé cómo manejar las variables libres alfa, q y r_z

Creo que tienes dos opciones:

1) Elija valores fijos para ellos.

2) Inclúyelos en tu x para obtener valores óptimos.