Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

courses:a4b33opt:cviceni10 [2009/11/25 23:52]
kucerad1
courses:a4b33opt:cviceni10 [2025/01/03 18:28] (aktuální)
Řádek 1: Řádek 1:
-===== Cvičení ​=====+===== Cvičení ​10 =====
  
 [[https://​cw.felk.cvut.cz/​lib/​exe/​fetch.php/​courses/​a4b33opt/​cviceni/​markowitz.pdf?​id=courses%3Aa4b33opt%3Acviceni%3Astart&​cache=cache|Zadání (Markowitzův model)]] [[https://​cw.felk.cvut.cz/​lib/​exe/​fetch.php/​courses/​a4b33opt/​cviceni/​markowitz.pdf?​id=courses%3Aa4b33opt%3Acviceni%3Astart&​cache=cache|Zadání (Markowitzův model)]]
Řádek 6: Řádek 6:
  
 Ke spolecnemu vypracovani:​ Ke spolecnemu vypracovani:​
-<​code>​+<​code ​matlab>
 clc; clc;
 clear; clear;
Řádek 82: Řádek 82:
 plot(riziko,​ vynos); plot(riziko,​ vynos);
 </​code>​ </​code>​
-Neni to jeste spravne... Prosim editujte ​komentujte...+Prosim editujte a komentujte... 
 + 
 +Tak moje řešení včetně šestky. Ale ta se asi počítá poněkud špatně. Každopádně u nás na cviku to prošloZřejmě je tam naopak to rovnoměrné rozložení a váhové rozložení,​ které by mělo být úplně nahoře (nejlepší výsledky)--- //​[[zacham3@fel.cvut.cz|Martin Zachar]] 2009/11/26 18:38// 
 +<code matlab>​ 
 +clear vars; 
 +close all; 
 +clear all; 
 +clc; 
 +load akcie.mat;​ 
 + 
 +%% 1 Vypocet parametru Markowitzova modelu 
 + 
 +[aoH, aoW] = size(AkcieOdhad);​ 
 + 
 +r = (AkcieOdhad((aoH - 1) : -1: 1, :) - AkcieOdhad(aoH : -1 : 2, :)) ./ AkcieOdhad(aoH : -1 : 2, :); 
 +rprum = 1 / (aoH - 1) * sum (r); 
 + 
 +r = r'; 
 +rprum = rprum';​ 
 + 
 +V = zeros(aoW);​ 
 + 
 +for i = 1 : aoW 
 +    for j = 1 : aoW         
 +        V(i,j) = 1 / (aoH - 2) * sum ((r(i, :) - rprum(i)) * (r(j,:) - rprum(j))'​); ​        
 +    end; 
 +end; 
 + 
 +%% 5 Vypocet, kolik koupit akcii od ktere spolecnosti 
 + 
 +r_p = min(rprum) : (max(rprum) - min(rprum)) / 50 : max(rprum);​ 
 + 
 +Aeq = ones(1, aoW); 
 +beq = 1; 
 + 
 +lb = zeros(1, aoW); 
 +A = -rprum';​ 
 +b = - r_p; 
 +f = zeros(1, aoW); 
 + 
 +rx = zeros(size(r_p));​ 
 +sigma = zeros(size(r_p));​ 
 + 
 +for i = 1 : size(r_p,​2) 
 +    [x, fval] = quadprog(V, f, A, b(1,i), Aeq, beq, lb, []); 
 +    rx(i) = x' * rprum; 
 +    sigma(i) = 2*fval; 
 +end; 
 + 
 + 
 +figure; 
 +hold on; 
 +title('​Zavislost r(x) na sigma'​);​ 
 +xlabel('​risk \sigma^2(x)'​);​ 
 +ylabel('​r(x)'​);​ 
 +plot(sigma, rx, '​-'​);​ 
 +hold off; 
 + 
 + 
 +%% 6 a) Od kazde spolecnosti nakoupim stejne akcii 
 +clc; %close all; 
 +x = ones(1,aoW) / aoW; 
 +vklad = AkcieOdhad(1,​ :) .* x; 
 + 
 +vynos = zeros(size(AkcieTest));​ 
 + 
 +for i = size(AkcieTest,​1) : -1 : 1 
 +    vynos(i, :) = AkcieTest(i,​ :).*x - vklad; 
 +end; 
 + 
 +vynos = flipud(vynos);​ 
 + 
 +figure; 
 +hold on; 
 +title('​Celkovy vynos za jednotlive mesice'​);​ 
 +xlabel('​Mesice'​);​ 
 +ylabel('​Vynos'​);​ 
 +plot(sum(vynos,​ 2), '​-ro'​);​ 
 + 
 +%% 6 quadprog - vypoctu vahy jako v uloze 5 a podle toho nakoupim akcie 
 + 
 +r_p = 0.037; 
 +b = - r_p; 
 + 
 +x = quadprog(V, f, A, b, Aeq, beq, lb, []); 
 +vklad = AkcieOdhad(1,​ :) .* x'; 
 +vynos = zeros(size(AkcieTest));​ 
 + 
 +for i = size(AkcieTest,​1) : -1 : 1 
 +    vynos(i, :) = AkcieTest(i,​ :).*x' - vklad; 
 +end; 
 + 
 +vynos = flipud(vynos);​ 
 + 
 +xlabel('​Mesice'​);​ 
 +ylabel('​Vynos'​);​ 
 +plot(sum(vynos,​ 2), '​-go'​);​ 
 + 
 + 
 +%% 6 b) Najdu nejsilnejsi spolecnot a do te dam vsechno 
 + 
 +maximum = max(x); 
 +for i = 1 : size(x, 1) 
 +    if x(i) == maximum 
 +        x(i) = 1; 
 +    else 
 +        x(i) = 0; 
 +    end; 
 +end; 
 + 
 +vklad = AkcieOdhad(1,​ :) .* x'; 
 +vynos = zeros(size(AkcieTest));​ 
 + 
 +for i = size(AkcieTest,​1) : -1 : 1 
 +    vynos(i, :) = AkcieTest(i,​ :).*x' - vklad; 
 +end; 
 + 
 +vynos = flipud(vynos);​ 
 + 
 +plot(sum(vynos,​ 2), '​-bo'​);​ 
 + 
 +h = legend('​rovnomerne rozlozeni',​ '​investice podle vah', '​investovani do nejocekavanejsiho',​ '​Location',​ '​Best'​);​ 
 +set(h,'​Interpreter',​ '​none'​);​ 
 +hold off; 
 +</​code>​
 ~~DISCUSSION~~ ~~DISCUSSION~~
  
courses/a4b33opt/cviceni10.1259189552.txt.gz · Poslední úprava: 2025/01/03 18:23 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0