金融工具箱提供了以后函数用于求解投资组合分析 - {/ v) f8 j" z' Q* {8 X& o2 ~ T / a1 S, q, K) ~4 m. e4 d; Q, d3 i) m: H L: `- E
frontcon函数:Mean-variance efficient frontier ' L2 l( g& ^. y, P9 V, \! d5 b, K3 }6 W3 ]
4 U5 O' F" T6 _! Mportopt函数:Portfolios on constrained efficient frontier / K% `7 C. p$ a3 t) I+ C8 i0 Q
( t* P3 U o5 T
portvrisk函数:Portfolio value at risk (VaR) 4 W" Z9 t+ w" I- w6 C7 O. E( t# q. V4 I. z* ^$ A( a' G" B
5 ^) L* G3 i/ ^6 S: ^0 I6 H0 l下面给一个小例子说明下,程序运行必须用到附件中的“股票数据.txt”数据! o1 ~" O) J( _' t
8 G/ T1 d+ J( I5 o$ p, l
7 O* v" s* Z! i% y b: d
数据结构如下,每列代表一只股票,每行是一天的股票售价。0 u- }: k2 ]6 E7 H
/ |) R* V w: l5 C : n1 b1 B0 P- Q3 V2 p均值方程模型,要求先计算出股票的日收益率、日平均收益率和日收益率方差,然后再调用金融工具箱函数+ A) K! K" Q( ^
% by dynamic of Matlab技术论坛 # L/ Q7 I6 W* D6 c; n% see also http://www.matlabsky.com - v: M* }! L" q. r: G+ E% contact me matlabsky@gmail.com0 b; z O" ^4 G$ d& `- L
% 2010-04-07 10:33:28' j& B v3 K: f/ u7 ?7 h9 _( V0 K. {
% # V: m* T, n3 s0 H0 H, R ) Y: r) n2 R/ ~0 ~9 b/ u- v; }
clc+ t" @; [+ `# r$ i6 w4 {
clear 8 B2 O. J2 G0 [! Z+ ~6 V9 Z# w: D# f- k, k" ^% _6 u
, ]4 g+ f. A6 m7 `- E
web http://www.matlabsky.com -browser5 d* u! F1 L; Y% T6 n
p. n3 { x6 @% Q [; u1 V
) P Y( f! p. m* s
h=msgbox({'本程序由MATLAB技术论坛编写','','contact me matlabsky@gmail.com','','see also http://www.matlabsky.com'},'版权申明','warn','modal');; @) m' C& I$ W# W
uiwait(h); 7 `/ `6 m4 b, j* f7 y; g, ]& k : C* S( D8 q8 ^, `+ O8 U3 U R" J+ ] 7 }1 X2 c" r' k: ?) a* idata=load('股票数据.txt'); % 数据载入+ J0 @3 {/ @. ^5 D& W' C) Q% u6 H
r=diff(data)./data(1:end-1,; % 日收益率$ w: O* u! ?5 p {* o; i9 P- G
mr=mean(r); % 平均收益率 / ~; t, d& y! N0 F% M3 F2 z* [- _sigma=cov(r); % 资产回报方差 % g$ L: d3 b' r% z0 M$ p 4 Z* B2 K( C: C) ]' x: H5 e& J$ G* x; v% _2 ~! I3 f( _& C+ a6 Y
ExpReturn=mr; % 期望(平均)收益率+ @$ _7 F. v1 _& r& m( ]+ @
ExpCov=sigma; % 资产回报方差. R9 r, p! L. y
NumPorts=100; % 有限前沿点的个数$ L8 s( i9 B6 U$ B7 T+ a/ P: o) f v
PortReturn=[]; % 目标收益率,NumPorts和PortReturn只能选一个,另外一个必须置为[] 0 F- S- J8 L- }; \5 E& d( S( [bound=inputdlg('投资比例,默认[0 1]','参数输入',1,{'[0 1]'}); ) i0 z6 m3 M0 N; w {( R3 tbd=str2num(bound{1}); + K* h# b6 z9 e; e9 I5 S" yAssetBounds=repmat(bd(,1,4); % 投资边界( ~5 ~. Y9 R6 V5 t- W" F2 c
2 j0 o* |! `$ b* J) @) N$ ]7 @
6 [! y* o w6 |& s/ L/ j2 U
[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn,ExpCov, NumPorts, PortReturn, AssetBounds);0 V. t3 B7 O1 {# {
data=cell(101,6); + E4 V* G7 Q# z% A; j9 O7 Hdata(1,={'风险','回报','美元','欧元','日元','英镑'}; 4 y- T# I- N m: g( M, M! {% _data(2:end,=num2cell([PortRisk, PortReturn, PortWts]); ( H, T: I7 ~- y- Txlswrite(['股票数据-',bound{1},'.xls'],data) / o p8 }( N: k3 {# U3 A% ^3 Y1 s" t复制代码 ! H" r; k1 }2 \9 n; }' c8 H( }0 Y* o: O 股票数据.txt(347 Bytes, 下载次数: 3)