load('~/Dropbox/ENSEIGNEMENT/MatlabBanqueFinance/RESSOURCES/mmc2/Datasets/SP500/SP500.mat')
% on peut aussi utiliser le menu. 


whos % affiche la liste des variables de l'espace de travail. 

% Estimer les rendements moyens
r = mean(Assets_Returns) ;

plot(r,'*') 
figure(2)
hist(r)

[m,im] = max(r) % rendement max


C = cov( Assets_Returns) ;
imagesc(C)
colorbar

Cor = corrcoef( Assets_Returns) ;
imagesc(Cor)
colorbar
figure(1)
plot(diag(C),'*')

figure(2)
plot(r,diag(C),'.')

n = length(r) ;
dC = diag(C) ;
clf
text(r(1),dC(1),num2str(1))
for k = 2:n,
     hold on
     text(r(k),dC(k),num2str(k))
end
axis([0 0.012 0 15e-3])
xlabel('rendement moyen')
ylabel('risque')

% Avec les notations de l'aide de la fonction quadprog2

% Il faut choisir rho
rho = .006
H = C ; % covariance
f= zeros(n,1) ;
b = [1;-1;-rho]; % contraintes (il en manque une)
A = [ones(1,n) ; -ones(1,n);-r]; 
x = quadprog2(H,f,A,b) ;
x
sum(x)
sum(x(:).*r(:))


H = C ; % covariance
f= zeros(n,1); 'MarkerFaceColor',col(colx(k),:)
b = [zeros(n,1);1;-1;-rho]; % contraintes (version complète)
A = [-diag(ones(1,n)) ;ones(1,n); -ones(1,n);-r]; 
[x,v] = quadprog2(H,f,A,b);

sum(x)
sum(x(:).*r(:))
plot(x,'.')

col = colormap;
colx = round((x-min(x))/max(x)*63)+1 ;
sizx = round((x-min(x))/max(x)*10)+1 ;
clf
plot(r,dC,'w.')
hold on
for k = 1:n,
    plot(r(k),dC(k),'o','MarkerSize',sizx(k), ...
        'MarkerFaceColor',col(colx(k),:), ...
         'MarkerEdgeColor',col(colx(k),:))
end
%colorbar
