Está en la página 1de 19

Tarea de Teora del

Portafolio
Profeso.

Integrantes
1. .
2014
01/02/2014
1) Frontera eficiente con M-V para 25 portafolios y su composicin de portafolio
(sin resampling)

Esta es la frontera eficiente con media y varianza para un portafolio igual a 25,
observamos que conforme aumenta el nivel de riesgo la curva va aumentando su nivel de
retornos pero para un nivel de riesgo cercano a 2% la curva comienza un crecimiento ms
lento es decir se aplana.

La salida que se hizo de matlab fue la siguiente:
1. Inicio
%Inicio del programa
clear all;
close all;
clc;
load('tarea_cefa');


0 0.5 1 1.5 2 2.5 3
0.06
0.08
0.1
0.12
0.14
0.16
0.18
0.2
0.22
0.24
0.26
Riesgo (%)
R
e
t
o
r
n
o

(
%
)
Frontera Eficiente con Media-Varianza
2. Introduccin de datos

%%% Pregunta 1 %%%
% Datos
Retornos=tick2ret(Portafolio); %calcula series de retornos a
partir de las series de precios
num=size(Retornos,2);% Nmero de activos en el portafolio
tau=1/length(Retornos);%Calculo del tau
n_por=25;% Nmero de puntos en la frontera eficiente
N=100;
mu=mean(Retornos);
vc=cov(Retornos);
w_bmk=[0.232 0.189 0.118 0.073 0.388]';% Pesos iniciales del
portafolio
rf=0.000456;
delta=(mean(Retornos*w_bmk)-rf)/var(Retornos*w_bmk);
P1=[1 0 -1 0 0;1 0 0 0 -1];
Q1=[0.008;0.013];
P2=[0 1 0 -1 0];
Q2=[0.0165];
WtsSum_Resampleo1=zeros(n_por,num);
WtsSum_Resampleo2=zeros(n_por,num);


3. Clculo de la frontera eficiente con Media y Varianza

%% Tcnica Media-Varianza
[risk_MV,return_MV,Wts_MV]=frontcon(mu,vc,n_por);
figure
plot(risk_MV*100,return_MV*100,'b')
xlabel('Riesgo (%)');
ylabel('Retorno (%)');
title('Frontera Eficiente con Media-Varianza');

4. Clculo de la composicin del portafolio
figure
area(Wts_MV*100);
xlabel('Nmero de Portafolios');
ylabel('Pesos ptimos (%)');
title('Composicin de la Frontera Eficiente Media-Varianza');


En el grfico, se muestran las distintas composiciones para un total de 5 activos donde se
observa claramente que solo 3 representan al total, uno parcialmente y dos de los otros
no tienen tanta participacin.

5 10 15 20 25
0
20
40
60
80
100
120
Nmero de Portafolios
P
e
s
o
s

p
t
i
m
o
s

(
%
)
Composicin de la Frontera Eficiente Media-Varianza
2) Una frontera eficiente promedio (de los 2 brokers) con Black-Litterman y su
composicin del portafolio (sin resampling).




La curva azul me representa la frontera eficiente para e l Broker 1.

La curva verde representa la frontera eficiente para el Broker 2.














0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Frontera eficiente promedio-BL
Graficando por separado:



La salida que se hizo en Matlab fue la siguiente:
1. Inicio

%Inicio del programa
clear all;
close all;
clc;
load('tarea_cefa');



2.Introducccion de datos


%%% Pregunta 2 %%%
% Datos
Retornos=tick2ret(Portafolio); %calcula series de retornos a
partir de las series de precios
num=size(Retornos,2);% Nmero de activos en el portafolio
tau=1/length(Retornos);%Calculo del tau
n_por=25;% Nmero de puntos en la frontera eficiente
N=100;
mu=mean(Retornos);
vc=cov(Retornos);
0 1 2 3
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Riesgo (%)
R
e
t
o
r
n
o

(
%
)
Frontera BL 1
0 0.5 1 1.5 2
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
Riesgo (%)
R
e
t
o
r
n
o

(
%
)
Frontera BL2
w_bmk=[0.232 0.189 0.118 0.073 0.388]';% Pesos iniciales del
portafolio
rf=0.000456;
delta=(mean(Retornos*w_bmk)-rf)/var(Retornos*w_bmk);
P1=[1 0 -1 0 0;1 0 0 0 -1];
Q1=[0.008;0.013];
P2=[0 1 0 -1 0];
Q2=[0.0165];
WtsSum_Resampleo1=zeros(n_por,num);
WtsSum_Resampleo2=zeros(n_por,num);


3.Modelo de Black-Litterman para los 2 brokers

%% Modelos black_Litterman
%Broker 1
pi=delta*vc*w_bmk;
omega=tau*P1*vc*P1';
for k=1:length(omega)
omega_p(k,k)=omega(k,k);
end

mu_bl=pi+tau*vc*P1'*inv(tau*P1*vc*P1'+omega_p)*(Q1-P1*pi);
vc_bl=vc+(tau*vc-
tau*vc*P1'*inv(tau*P1*vc*P1'+omega_p)*P1*tau*vc);
[risk_bl,return_bl,Wts_bl]=frontcon(mu_bl,vc_bl,n_por);

%Broker 2
P2=[0 1 0 -1 0];
Q2=[0.0165];
pi=delta*vc*w_bmk;
omega2=tau*P2*vc*P2';

for k=1:length(omega2)
omega_p2(k,k)=omega2(k,k);
end
mu_bl2=pi+tau*vc*P2'*inv(tau*P2*vc*P2'+omega_p2)*(Q2-
P2*pi);
vc_bl2=vc+(tau*vc-
tau*vc*P2'*inv(tau*P2*vc*P2'+omega_p2)*P2*tau*vc);

[risk_bl2,return_bl2,Wts_bl2]=frontcon(mu_bl2,vc_bl2,n_por);

4. Clculo de la frontera eficiente promedio de los 2 brokers
%Promedio de los brokers
wts_me=(Wts_bl+Wts_bl2)/2;
return_me=(return_bl+return_bl2)/2;
risk_me=(risk_bl+risk_bl2)/2;

figure
plot(risk_bl*100,return_bl*100,risk_bl2*100,return_bl2*100,risk_
me*100,return_me*100)
title('Frontera eficiente promedio-BL')







Composicin del portafolio sin resampling

Observamos la composicin de los 5 activos por el mtodo de Black-Litterman. Como se
puede observar, solo 2 activos tienen mayor comportamiento, mientras que los otros 2 se
ve una participacin menor. Con respecto al quinto activo, no se aprecia su grado de
composicin en la grfica.

figure
area(Wts_bl*100);
xlabel('Nmero de Portafolios');
ylabel('Pesos ptimos (%)');
title('Composicin de la Frontera Eficiente BL 1');





5 10 15 20 25
0
20
40
60
80
100
120
Nmero de Portafolios
P
e
s
o
s

p
t
i
m
o
s

(
%
)
Composicin de la Frontera Eficiente BL 1


Para este otro observamos la composicin de los 5 activos por el mtodo de Black-
Litterman como se puede ver solo 2 activos tienen mayor comportamiento mientrs que el
3 tiene una participacin parcial y de los otros 2 activos no se aprecia tanto su grado de
aporte en la cartera.

figure
area(Wts_bl2*100);
xlabel('Nmero de Portafolios');
ylabel('Pesos ptimos (%)');
title('Composicin de la Frontera Eficiente BL2')




5 10 15 20 25
0
20
40
60
80
100
120
Nmero de Portafolios
P
e
s
o
s

p
t
i
m
o
s

(
%
)
Composicin de la Frontera Eficiente BL2
3) Una frontera eficiente promedio (de los 2 brokers) con Black Litterman
para los 25 portafolios y su composicin del portafolio con resampling



0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
Riesgo (%)
R
e
t
o
r
n
o

(
%
)
Frontera Promedio con Resampling BL1
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
-0.05
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
Riesgo (%)
R
e
t
o
r
n
o

(
%
)
Frontera Promedio con Resampling BL2
Graficando conjuntamente:


Composicin del portafolio:

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
0.6
Riesgo (%)
R
e
t
o
r
n
o

(
%
)
Fronteras Promedio con Resampling
5 10 15 20 25
0
20
40
60
80
100
120
Nmero de Portafolios(%)
P
e
s
o
s

p
t
i
m
o
s

(
%
)
Composicin de la Frontera Promedio con Resampling BL1







El cdigo en Matlab es el siguiente:
1. Inicio del programa.





5 10 15 20 25
-20
0
20
40
60
80
100
120
Nmero de Portafolios(%)
P
e
s
o
s

p
t
i
m
o
s

(
%
)
Composicin de la Frontera Promedio con Resampling BL2
%Inicio del programa
clear all;
close all;
clc;
load('tarea_cefa');
2. Introduzco los datos relevantes












3. Se realiza el modelo Black Litterman.












% Datos
Retornos=tick2ret(Portafolio); %calcula series de retornos a partir de las series de precios
num=size(Retornos,2);% Nmero de activos en el portafolio
tau=1/length(Retornos);%Calculo del tau
n_por=25;% Nmero de puntos en la frontera eficiente
N=100;
mu=mean(Retornos);
vc=cov(Retornos);
w_bmk=[0.232 0.189 0.118 0.073 0.388]';% Pesos iniciales del portafolio
rf=0.000456;
delta=(mean(Retornos*w_bmk)-rf)/var(Retornos*w_bmk);
P1=[1 0 -1 0 0;1 0 0 0 -1];
Q1=[0.008;0.013];
P2=[0 1 0 -1 0];
Q2=[0.0165];
WtsSum_Resampleo1=zeros(n_por,num);
WtsSum_Resampleo2=zeros(n_por,num);
%% Modelos black_Litterman
%Broker 1
pi1=delta*vc*w_bmk;
omega1=tau*P1*vc*P1';

for k=1:length(omega1)
omega_p1(k,k)=omega1(k,k);
end
mu_bl1=pi1+tau*vc*P1'*inv(tau*P1*vc*P1'+omega_p1)*(Q1-P1*pi1);
vc_bl1=vc+(tau*vc-tau*vc*P1'*inv(tau*P1*vc*P1'+omega_p1)*P1*tau*vc);
[risk_bl1,return_bl1,Wts_bl1]=frontcon(mu_bl1,vc_bl1,n_por);

%Broker 2
omega4=tau*P2*vc*P2';

for k=1:length(omega4)
omega_p4(k,k)=omega4(k,k);
end
mu_bl4=pi1+tau*vc*P2'*inv(tau*P2*vc*P2'+omega_p4)*(Q2-P2*pi1);
vc_bl4=vc+(tau*vc-tau*vc*P2'*inv(tau*P2*vc*P2'+omega_p4)*P2*tau*vc);
[risk_bl4,return_bl4,Wts_bl4]=frontcon(mu_bl4,vc_bl4,n_por);
4. Se realiza el resampling para el Broker 1

%%%%RESAMPLING del Broker 1
for i=1:N
for j=1:num
Resampleo1(:,j)=randsample(Retornos(:,j),length(Retornos),true); % llena la matriz resampleo
con muestras aleatorias
%true : con
%reposicion
% No parametrico
end
vc_Resampleo1=cov(Resampleo1);

delta11=(mean(Resampleo1*w_bmk)-rf)/var(Resampleo1*w_bmk);
pi11=delta11*vc_Resampleo1*w_bmk;
omega11=tau*P1*vc_Resampleo1*P1';

for k=1:length(omega11)
omega_p11(k,k)=omega11(k,k);
end
mu_bl1R=pi11+tau*vc_Resampleo1*P1'*inv(tau*P1*vc_Resampleo1*P1'+omega_p11)*(Q1-
P1*pi11);
vc_bl1R=vc_Resampleo1+(tau*vc_Resampleo1-
tau*vc_Resampleo1*P1'*inv(tau*P1*vc_Resampleo1*P1'+omega_p11)*P1*tau*vc_Resampleo1);
[risk_bl11R,return_bl11R,Wts_bl11R]=frontcon(mu_bl1R,vc_bl1R,n_por);
Return1=Wts_bl11R*mu_bl; %obtiene los retornos esperados de cada punto de la frontera

RiskMat1=Wts_bl11R*vc_bl*Wts_bl11R'; %obtiene las varianzas de cada punto d
for k=1:n_por
Risk1(k,1)=sqrt(RiskMat1(k,k)); %toma la desviacion estandar de las varianzas de cada punto
de la frontera
end
scatter(Risk1*100,Return1*100,3,'filled','g')
%figure
hold on
WtsSum_Resampleo1=WtsSum_Resampleo1+Wts_bl11R;
end
Resampleo_Wts1=WtsSum_Resampleo1/N;%promedio de pesos
Retorno_Resampleo1=Resampleo_Wts1*mu_bl;
Resampleo_mat_riesgos1=Resampleo_Wts1*vc_bl*Resampleo_Wts1';
for t=1:n_por
Riesgo_Resampleo1(t,1)=sqrt(Resampleo_mat_riesgos1(t,t));
end


5. Se grafican las respectivas imgenes del brker 1







%%Imgenes del broker 1
plot(Riesgo_Resampleo1*100,Retorno_Resampleo1*100,'r')
xlabel('Riesgo (%)');
ylabel('Retorno (%)');
title('Frontera Promedio con Resampling BL1');
hold off
figure
area(Resampleo_Wts1*100);
xlabel('Nmero de Portafolios(%)');
ylabel('Pesos ptimos (%)');
title('Composicin de la Frontera Promedio con Resampling BL1');
figure
6. Se repite 4 y 5 para el brker 2

























%%%%RESAMPLING del Broker 2
for i=1:N

for j=1:num
Resampleo2(:,j)=randsample(Retornos(:,j),length(Retornos),true); % llena la matriz resampleo con
muestras aleatorias
%true : con
%reposicion
% No parametrico
end
vc_Resampleo2=cov(Resampleo2);

delta12=(mean(Resampleo2*w_bmk)-rf)/var(Resampleo2*w_bmk);
pi12=delta12*vc_Resampleo2*w_bmk;
omega12=tau*P2*vc_Resampleo2*P2';

for k=1:length(omega12)
omega_p12(k,k)=omega12(k,k);
end
mu_bl2R=pi12+tau*vc_Resampleo2*P2'*inv(tau*P2*vc_Resampleo2*P2'+omega_p12)*(Q2-P2*pi12);
vc_bl2R=vc_Resampleo2+(tau*vc_Resampleo2-
tau*vc_Resampleo2*P2'*inv(tau*P2*vc_Resampleo2*P2'+omega_p12)*P2*tau*vc_Resampleo2);
[risk_bl12R,return_bl12R,Wts_bl12R]=frontcon(mu_bl2R,vc_bl2R,n_por);

Return2=Wts_bl12R*mu_bl2; %obtiene los retornos esperados de cada punto de la frontera
RiskMat2=Wts_bl12R*vc_bl2*Wts_bl12R'; %obtiene las varianzas de cada punto d

for k=1:n_por
Risk2(k,1)=sqrt(RiskMat2(k,k)); %toma la desviacion estandar de las varianzas de cada punto de la frontera
end
scatter(Risk2*100,Return2*100,3,'filled','g')
%figure
hold on
WtsSum_Resampleo2=WtsSum_Resampleo2+Wts_bl12R;
end

Resampleo_Wts2=WtsSum_Resampleo2/N;%promedio de pesos
Retorno_Resampleo2=Resampleo_Wts2*mu_bl2;
Resampleo_mat_riesgos2=Resampleo_Wts2*vc_bl2*Resampleo_Wts2';
for t=1:n_por
Riesgo_Resampleo2(t,1)=sqrt(Resampleo_mat_riesgos2(t,t));
end








7. Se grafican las 2 fronteras promedio juntas























%%%Imgenes del broker 2
plot(Riesgo_Resampleo2*100,Retorno_Resampleo2*100,'r')
xlabel('Riesgo (%)');
ylabel('Retorno (%)');
title('Frontera Promedio con Resampling BL2');
hold off
figure
area(Resampleo_Wts2*100);
xlabel('Nmero de Portafolios(%)');
ylabel('Pesos ptimos (%)');
title('Composicin de la Frontera Promedio con Resampling BL2');
%Imagen: 2 brokers
figure
hold on
plot(Riesgo_Resampleo1*100,Retorno_Resampleo1*100,'b')
plot(Riesgo_Resampleo2*100,Retorno_Resampleo2*100,'r')
xlabel('Riesgo (%)');
ylabel('Retorno (%)');
title('Fronteras Promedio con Resampling');
hold off
4) Si actualmente se tiene un portafolio de:

S&P500 Commodities DAX
China
RV
1-30 US Treasuries & Agencies
23.2% 18.9% 11.8% 7.3% 38.8%

Con retorno y riesgo de 0.05% y 0.8% respectivamente. Cul sera su recomendacin de
asignacin?

HABLAR QUE SALEN PEGADOS LOS PUNTOS PORQUE SE TRATA DE NDICES!!!

También podría gustarte