Você está na página 1de 3

clear

clc
format short g

%precio de las acciones


grupoaval=xlsread('acciones','B3:B2136');
interbolsa=xlsread('acciones','D3:D2136');
promigas=xlsread('acciones','F3:F2136');
coltejer=xlsread('acciones','H3:H2136');
fabricato=xlsread('acciones','J3:J2136');

%creacion de una matriz con los precios de las acciones


matriz=[grupoaval,interbolsa,promigas,coltejer,fabricato];

[f,c]=size(matriz);%tamao de matriz
renta=zeros(f-1,c);

%rentabilidad continua de cada accion


for i=2:f
for j=1:c
renta(i-1,j)=log(matriz(i,j)/matriz(i-1,j));
end
end

%hallar la matriz de covarianzas entre las acciones


covarianza=cov(renta);
% display(covarianza);

[ff,cc]=size(covarianza);
rmedia=zeros(ff,1);%rentabilidad media
resperada=zeros(ff,1);%rentabilidad esperada
riesgo=zeros(ff,1);%riesgo

%encontrar dividendos
dividendos=zeros(ff,1);

for k=1:cc
rmedia(k,1)=mean(renta(:,k));
resperada(k,1)=dividendos(k,1)+rmedia(k,1);
riesgo(k,1)=std(renta(:,k));
end

%encontrar porcentaje de inversion


tam=1000;
pinversion=zeros(tam,ff);

for m=1:tam
pinversion(m,1)=rand;
for n=2:ff
if n==ff
if sum(pinversion(m,1:n-1),2)<1
pinversion(m,n)=1-sum(pinversion(m,1:n-1),2);
else
pinversion(m,n)=0;
end
else
a=rand;
while (sum(pinversion(m,1:n-1),2)+a)>1
a=rand;
end
pinversion(m,n)=a;
end

end

end

re=zeros(tam,1);
varianza=zeros(tam,1);

for o=1:tam
b=pinversion(o,:);
re(o)=b*resperada;%riesgo del portafolio
varianza(o)=sqrt((b*covarianza)*b');%rentabilidad esperada
end

[remax,pos]=max(re);
revar=varianza(pos);

[varmin,p]=min(varianza);
varre=re(p);

pinvmax=pinversion(pos,:);%hallar la maxima rentabilidad esperada


pinvmin=pinversion(p,:);%hallar el menor riesgo

ss=table(covarianza(:,1),covarianza(:,2),covarianza(:,3),covarianza(:,4),covarianza
(:,5),...
'variablenames',{'grupoaval' 'interbolsa' 'promigas' 'coltejer'
'fabricato'},...
'rownames',{'grupoaval' 'interbolsa' 'promigas' 'coltejer' 'fabricato'});

ee=table([pinvmin';varmin;varre],[pinvmax';remax;revar],...
'variablenames',{'P_I_min_riesgo' 'P_I_max_rentabilidad'},...
'rownames',{'grupoaval' 'interbolsa' 'promigas' 'coltejer' 'fabricato' 'riesgo'
'rentabilidad'});

disp('====================================[ Matriz de covarianzas ]


=================================');
disp(ss);
disp('============================================[ Datos ]
=========================================');
disp(ee);

% % plot(varianza,re,'r.')
% grid on
% axis([]);
% ylabel('Rentabilidad esperada');
% xlabel('riesgo');
% title('var vs riesgo');
% hold on
% p=polyfit(varianza,re,2);
% x1 = 0:0.0001:0.099;
% y1 = polyval(p,x1);
% figure
% plot(varianza,re,'r.')
% hold on
% plot(x1,y1)
% hold off
% disp(p);

aa=varianza;
bb=zeros(size(aa));
reorde=zeros(size(aa));

[fl,ccc]=size(aa);
% disp(aa);

maxx=max(aa);
minn=aa(1);
cont=0;
for i=1:fl
for j=1:fl
if aa(j)<=minn
minn=aa(j);
cont=j;
end
end
bb(i)=minn;
reorde(i)=re(cont);
aa(cont)=maxx;
minn=aa(1);
end

year = bb;
pop = reorde;
T = table(year, pop,'variablenames', {'year' 'pop'});
disp(T);
plot(year,pop,'.')
[p,~,mu] = polyfit(T.year, T.pop, 2);
f = polyval(p,year,[],mu);
hold on
plot(year,f,'r-')
hold off

Você também pode gostar