数学建模社区-数学中国

标题: 基于金融工具箱投资组合均值-方程模型求解 [打印本页]

作者: 建不了的模。    时间: 2015-1-12 12:07
标题: 基于金融工具箱投资组合均值-方程模型求解
金融工具箱提供了以后函数用于求解投资组合分析
* \% z2 g) D5 ^- e
' ?. i: Z- S8 r

- j- P8 b  d- t! n# P0 A& Rfrontcon函数:Mean-variance efficient frontier; ]& |! ]* |  X1 X( |+ R

* _# X- O/ Y/ b' r5 N( x
! w, x' f# j! v. e6 p! u# x
portopt函数:Portfolios on constrained efficient frontier# a6 K2 A" D9 V% [8 }) D( i: B

( m0 z! B6 ~8 x' w% O& C8 R- _

2 F% L  ]  A1 Mportvrisk函数:Portfolio value at risk (VaR)
+ v+ u& F1 b) y6 r' P* S+ K- K3 k4 C& B: W/ l* W% z: q9 f

. y' A; a1 A8 R1 g下面给一个小例子说明下,程序运行必须用到附件中的“股票数据.txt”数据
8 n  l) V$ f0 z. L3 A1 J4 p! @
( O$ i9 z( [" @! u: }' {
  V* G9 e/ Y. z; d! d- m$ B
数据结构如下,每列代表一只股票,每行是一天的股票售价。' _% Z8 @) |! B2 O
. s- E& n9 j8 J: Z* [
" g5 t4 }5 h: N$ L' s
均值方程模型,要求先计算出股票的日收益率、日平均收益率和日收益率方差,然后再调用金融工具箱函数
6 A; y" x( n( Z% by dynamic of Matlab技术论坛
. r3 y( x$ m1 C% see also http://www.matlabsky.com3 b7 u( _& |9 f4 X
% contact me matlabsky@gmail.com
! C( C' x4 F* ?: ]0 \% 2010-04-07 10:33:28
7 }$ x5 a9 q; {, A0 b6 t" G%! R, W  m  g( u" E  V
" [8 J1 b% b$ ]- J% x" r

! x& m9 ]+ H7 L9 X& k5 N7 ]  cclc
6 b5 e, L" J6 T# r  Eclear
4 U; R6 z5 }$ V- J$ q7 [. o0 q, i$ }
6 u# _* }5 o$ G
# u" F" x5 P) ]- G+ W1 ]
web http://www.matlabsky.com -browser
5 T* D+ ?' {+ [) j% f; T# P2 D6 M/ u$ f1 L
1 o, G0 L/ r6 i2 T  H
h=msgbox({'本程序由MATLAB技术论坛编写','','contact me matlabsky@gmail.com','','see also http://www.matlabsky.com'},'版权申明','warn','modal');, F6 g6 s6 P$ b5 W# y# k3 h6 k
uiwait(h);
6 P" a/ F# b/ a" N! V% g
4 Q7 v# ~. G' t! j* C& x

8 d% E8 V1 T* M; Z# }data=load('股票数据.txt'); % 数据载入
- J8 o4 l8 R5 h  Qr=diff(data)./data(1:end-1,; % 日收益率; `4 T" i# `7 ]5 S5 n- A$ W
mr=mean(r); % 平均收益率8 T7 T1 t( W. D0 \# F
sigma=cov(r); % 资产回报方差
! D5 Q# q) W; b/ N  t. Y1 {. E& V" S2 Q6 Y" m
$ F7 {; z9 a( G8 `* R! E% Y
ExpReturn=mr; % 期望(平均)收益率5 Z7 L# F. t6 q8 _$ _
ExpCov=sigma; % 资产回报方差
% N: n. F4 g" j% ]3 P+ U: @" ?% n4 r1 PNumPorts=100; % 有限前沿点的个数* S( \; X+ {" W/ r
PortReturn=[]; % 目标收益率,NumPorts和PortReturn只能选一个,另外一个必须置为[]
5 Z; k* c9 v1 ~6 {$ kbound=inputdlg('投资比例,默认[0 1]','参数输入',1,{'[0 1]'});
" Y+ I: L& R& ybd=str2num(bound{1});+ U0 v4 T& z8 G6 n6 |
AssetBounds=repmat(bd(,1,4); % 投资边界
5 |* F0 D9 k# w5 N5 @2 X1 r2 a( q$ {! t& G

$ N, m) U2 h2 e: q: P+ d3 f[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn,ExpCov, NumPorts, PortReturn, AssetBounds);7 f& X* ?  r2 k7 E7 x
data=cell(101,6);# R4 i. ^: A2 H* w$ f- {
data(1,={'风险','回报','美元','欧元','日元','英镑'};
; H% l  l8 t+ }+ Qdata(2:end,=num2cell([PortRisk, PortReturn, PortWts]);
, T- v- B9 Q( ]0 M) T5 s1 nxlswrite(['股票数据-',bound{1},'.xls'],data); p( p& d: J% ?; H3 V- g8 f/ }9 [
复制代码
1 }  s3 Z/ @, e+ p& V4 w1 U$ H
2 ?& _2 ~* Q( A, a6 k 股票数据.txt (347 Bytes, 下载次数: 3)
; I4 n' f6 O2 E* M8 q: _/ @: A5 u2 t6 F: x3 X! a" W1 M' {  t

作者: 宇仲    时间: 2015-1-13 15:27
有价值的东西,收藏了,顶!. - u/ _( G( ~  i) L

作者: crolfer    时间: 2015-1-19 11:19
谢谢分享,收藏4 M( M4 p! f. l, ?

作者: opsops    时间: 2015-2-27 11:42
啦啦啦~~~我是默认签名(*^__^*)
' W, w2 n3 ~( E0 F. w! E3 ]+ B
作者: Kuniy_Guo    时间: 2015-4-10 14:06
这么牛!看看怎么用?!
. o( N7 P3 r. z3 L




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5