数学建模社区-数学中国

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

作者: 建不了的模。    时间: 2015-1-12 12:07
标题: 基于金融工具箱投资组合均值-方程模型求解
金融工具箱提供了以后函数用于求解投资组合分析
: D0 D) ~/ ]  y0 j4 m/ C0 [8 x- E
% v- ~; p6 W; N) c
8 }- y7 A0 K  p; l+ g3 h
frontcon函数:Mean-variance efficient frontier. t: |) w! H# |. }9 C, ]
9 z+ i$ Q! O5 i2 x. h, y
/ x+ B% h1 d/ u! `1 O
portopt函数:Portfolios on constrained efficient frontier
1 g. J" [7 U  S* v- _) e3 a  Y  r9 C) R- ^2 g* ]
% j# y) I2 Z0 s$ C& S- x
portvrisk函数:Portfolio value at risk (VaR)
. ]4 H1 ~% y6 g" t* X
4 i$ P3 Q, s! ]& @1 c1 K- r
2 U; ~# l/ `* \* l- K" `. e2 `* }; }
下面给一个小例子说明下,程序运行必须用到附件中的“股票数据.txt”数据
4 g- g( K1 n6 W8 a: q% D9 s
+ I7 R6 u4 \1 f6 S5 f: m* m5 N
. }( r- M% U8 x6 r
数据结构如下,每列代表一只股票,每行是一天的股票售价。* H5 x! g* ]8 Z0 u! z

* l1 [1 w4 J, {1 m' `0 h
$ i& l# U9 `6 V7 {9 @$ Q
均值方程模型,要求先计算出股票的日收益率、日平均收益率和日收益率方差,然后再调用金融工具箱函数
% V4 {" B* T* r$ U* l, o% by dynamic of Matlab技术论坛
' L* C2 V8 ?. Y4 I- c2 J; f' C% see also http://www.matlabsky.com
  I3 Y% z4 D; R9 x# f6 J% contact me matlabsky@gmail.com$ K% Y. w- B5 P7 N0 H6 f
% 2010-04-07 10:33:28
4 r  z  E7 w' \7 L9 B%9 {/ L( Q0 R! o: H

  R- R6 M& {8 L: J

7 Y" D" {, L( L1 v8 Z4 I! @clc
0 V4 D" x' D6 pclear3 o6 J/ N- y- l6 [8 E) N( N

5 E. e. J# X% ~1 c7 e
, m3 _* _* ~5 g0 ~. O
web http://www.matlabsky.com -browser; v8 |, Y+ [5 Y' H. Q& n3 W$ ~
1 }* X, o; H: K' C
2 Z/ R3 f. |: n" C/ m
h=msgbox({'本程序由MATLAB技术论坛编写','','contact me matlabsky@gmail.com','','see also http://www.matlabsky.com'},'版权申明','warn','modal');* Z3 {" C8 j0 ?5 N1 H. i# J
uiwait(h);
0 o+ Y7 B+ o6 L' ?  h; h# H, w! }% A# e! o7 |# O1 A. M
% u: @2 Q( y0 ~, T4 `% U8 Q
data=load('股票数据.txt'); % 数据载入
! F2 I# r: U" O  f, U  W1 ^r=diff(data)./data(1:end-1,; % 日收益率6 H6 D  d; s1 t( j$ X# S; o5 w
mr=mean(r); % 平均收益率
/ u3 w( c4 Q1 Y* dsigma=cov(r); % 资产回报方差
: G# k! q* j- S
1 K: M# O6 }) f

/ f- I8 @4 ?' r$ LExpReturn=mr; % 期望(平均)收益率; p7 ?8 k8 g1 m2 @9 B
ExpCov=sigma; % 资产回报方差
; ]# I1 v# `, l. |0 ENumPorts=100; % 有限前沿点的个数, T% e0 T4 {1 C; C/ f
PortReturn=[]; % 目标收益率,NumPorts和PortReturn只能选一个,另外一个必须置为[]
6 p& f( C" o$ \) X) J- ~7 bbound=inputdlg('投资比例,默认[0 1]','参数输入',1,{'[0 1]'});
3 |+ G% n( P1 x! I/ g9 A0 dbd=str2num(bound{1});3 h/ \) ^9 L$ E' e+ n
AssetBounds=repmat(bd(,1,4); % 投资边界4 z1 t& C  h! L7 v0 d. ]/ P1 Y& I

" S1 j( j3 }$ u8 f" k6 t

; A' b) O& q3 Z/ H: v* W[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn,ExpCov, NumPorts, PortReturn, AssetBounds);# J- Y9 O8 o% w$ i/ b5 g/ b! a  X0 G
data=cell(101,6);
8 T3 P- z+ j) _) a" A5 n0 a3 k9 ldata(1,={'风险','回报','美元','欧元','日元','英镑'};+ B  {% K# d5 \
data(2:end,=num2cell([PortRisk, PortReturn, PortWts]);
6 e; h. S- v" e; W7 b* v% o0 txlswrite(['股票数据-',bound{1},'.xls'],data)# f4 G; p( B3 q4 c7 L) Z# [+ ]
复制代码
5 y6 S2 j+ W5 s' R' @, {, L0 H& p/ r; X9 Q) e8 y
股票数据.txt (347 Bytes, 下载次数: 3)
( Y, j! I3 S" K3 T
# g- h; }; o$ v3 K  I8 B
作者: 宇仲    时间: 2015-1-13 15:27
有价值的东西,收藏了,顶!.
! [2 J# H0 ^6 T! s: {
作者: crolfer    时间: 2015-1-19 11:19
谢谢分享,收藏5 k( B6 x: K: [, E! G. I/ A3 W' L

作者: opsops    时间: 2015-2-27 11:42
啦啦啦~~~我是默认签名(*^__^*)* P5 [* v9 t/ a8 U

作者: Kuniy_Guo    时间: 2015-4-10 14:06
这么牛!看看怎么用?!" ?$ g$ Z  p. @2 }





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