Code covered by the BSD License  

Highlights from
MATLAB no Desenvolvimento de Modelos para Financas

image thumbnail
from MATLAB no Desenvolvimento de Modelos para Financas by Elia Matsumoto
Slides and demo files using Brazilian market data.

GP_Status( )
function GP_Status( )
% Recupera Dados
h=gcf;
obj=findobj(h,'Tag','GP');
Num=get(obj,'UserData');
obj=findobj(h,'Tag','RPainel');
ANum=get(obj,'UserData');
% Ativos: Risco e Livre de Risco
NA = size(ANum,2);
NAtivosRisco=ANum(1,1:NA-1);
NAtivoLivreRisco=ANum(1,NA-1);
AtivosRisco=Num(:,1:NA-1);
AtivoLivreRisco=Num(:,NA);
% Obtem pesos dos ativos
for i=1:NA-1
    % Tag do objeto
    TagObj=[ 'w' NAtivosRisco{i}];
    % Pesos do Portifolio de risco
    obj=findobj(h,'Tag',TagObj);
    str = get(obj,'String');
    str = strtok(str,'%');
    pesos(i)=str2num(str)*0.01;
end
% Calculo de risco X retorno da carteira
n=length(Num);
Txret=Num(2:n,:)./Num(1:n-1,:)-1;
MTxret=mean(Txret);
MTxretRisco=MTxret(1:NA-1);
MTxretLivreRisco=MTxret(NA);
% Fronteira Eficiente
CovAtivosRisco=cov(Txret(:,1:NA-1));
[Risco,Retorno]=portstats(MTxretRisco,CovAtivosRisco,pesos);
hold
plot(Risco,Retorno,'r*');
legend('Portifolio Total','Fronteira Eficiente','Carteira',0)
hold
% Preencher campos no GUIDE
obj=findobj(h,'Tag','riRisco');
str=[ num2str(Risco*100,'%2.2f') '%'];
set(obj,'String',str);
obj=findobj(h,'Tag','riRetorno');
str=[ num2str(Retorno*100,'%2.2f') '%'];
set(obj,'String',str);
% Restaura ButtonDownFcn do Eixo
obj = gca;
set(obj,'ButtonDownFcn','GP_Ponto');

Contact us at files@mathworks.com