数学建模社区-数学中国

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

作者: 建不了的模。    时间: 2015-1-12 12:07
标题: 基于金融工具箱投资组合均值-方程模型求解
金融工具箱提供了以后函数用于求解投资组合分析8 O' _/ \  C; x3 E1 j# \3 u
5 Y% T; h6 Y5 X
2 e3 G) j1 j, z1 r& V2 D
frontcon函数:Mean-variance efficient frontier
8 M1 H2 ]& Y2 }3 E3 E6 U6 E5 w
' B8 k6 O6 b) G" C. n
) O1 T9 |9 k1 G" r" }
portopt函数:Portfolios on constrained efficient frontier
  K5 R+ a( m0 X; x* R" y
4 A, R1 y8 m6 ], y

8 @7 s: G, B# I, t) wportvrisk函数:Portfolio value at risk (VaR)
4 ?$ Z: m3 A! d7 v3 @2 S
( v" s* m; f  s4 f- m+ d( [
# B# e' p7 ^- |. x& k
下面给一个小例子说明下,程序运行必须用到附件中的“股票数据.txt”数据
* q7 }& k! H- s5 |* t1 c3 v. ?7 s6 |4 k$ L2 N

' _! D7 c8 N; B: ]数据结构如下,每列代表一只股票,每行是一天的股票售价。
. Y  Y) ^/ |* j/ Y! f' M5 q2 _5 ^) H- l0 {8 X* A& E% _

/ Z- n* P8 }8 u8 v3 [7 y6 X; a均值方程模型,要求先计算出股票的日收益率、日平均收益率和日收益率方差,然后再调用金融工具箱函数6 K0 ?# Q; \. ?, ~/ X7 u, n
% by dynamic of Matlab技术论坛4 O* a9 c4 r& @- x# E, e' R" N
% see also http://www.matlabsky.com
) |5 V, B* T3 L1 G3 t  c% contact me matlabsky@gmail.com
$ G4 ?/ O3 v5 `, y  N- @; z8 C% 2010-04-07 10:33:28& O! h# {4 Z! p+ r! P
%  V& G' ^4 D, v6 t

6 C( c' o. z. I9 U) o$ `- P( S) `
" J9 T3 X5 V6 V) ^6 y" x
clc3 D; Y9 N% }# w# v* O
clear
* A! \0 A- y& A/ c9 S9 d0 u% J/ @, w9 c* A
, D. c7 K8 n5 Y" K5 I
web http://www.matlabsky.com -browser
5 i& q2 Z$ h, V5 E. n1 o
0 p# i  b  f- ]% i3 h

2 c" R" N! ?2 y9 j2 i5 Zh=msgbox({'本程序由MATLAB技术论坛编写','','contact me matlabsky@gmail.com','','see also http://www.matlabsky.com'},'版权申明','warn','modal');
' F$ l/ h; R. e! L2 ~3 Kuiwait(h);( c: Z6 M, X8 S4 x
0 H7 |& L/ Z3 S
. p" ~, r: |$ i' A3 H4 C8 Z+ J
data=load('股票数据.txt'); % 数据载入% P* I, `& Z( F# p
r=diff(data)./data(1:end-1,; % 日收益率
6 J0 A1 Y' h" ~) R: B! Tmr=mean(r); % 平均收益率
& M3 w% T0 G$ J9 F5 R! `sigma=cov(r); % 资产回报方差# h) X! H) R1 f( m

9 Y. Q2 Y# x( S; e
# w$ [$ n7 w" E
ExpReturn=mr; % 期望(平均)收益率/ p- ?# h" I( Z7 [; z- f
ExpCov=sigma; % 资产回报方差  m% x! t% `; B/ F! n
NumPorts=100; % 有限前沿点的个数
$ v3 ^0 d4 {3 f& L4 B$ e) CPortReturn=[]; % 目标收益率,NumPorts和PortReturn只能选一个,另外一个必须置为[]# W& s# ?0 G0 \, r( H
bound=inputdlg('投资比例,默认[0 1]','参数输入',1,{'[0 1]'});
5 f4 l! n4 ^9 \bd=str2num(bound{1});" ~; z9 w) @/ v& e8 d
AssetBounds=repmat(bd(,1,4); % 投资边界
% H# L8 d+ }8 [, m2 N5 D: N+ f* C' K+ ~% b5 e$ ~

1 J4 I4 p8 @9 C. K( b) r) e[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn,ExpCov, NumPorts, PortReturn, AssetBounds);
# [1 {$ W/ {( G9 N3 C% ?  wdata=cell(101,6);
* q) ~4 W. s5 xdata(1,={'风险','回报','美元','欧元','日元','英镑'};/ |9 p. _* P! |
data(2:end,=num2cell([PortRisk, PortReturn, PortWts]);
3 _& C8 h2 P& x7 rxlswrite(['股票数据-',bound{1},'.xls'],data)8 q+ v% y7 c- x8 X& I, {
复制代码
" S: \% q' ?6 Z. f3 J
! _! F, q* V( c1 U7 ^1 k" u. A 股票数据.txt (347 Bytes, 下载次数: 3)   g; x& u* S3 N2 q) K
* j; R9 F7 @+ L7 Y( i5 N

作者: 宇仲    时间: 2015-1-13 15:27
有价值的东西,收藏了,顶!. 5 A2 ]* X8 C, L: t0 \0 `* y

作者: crolfer    时间: 2015-1-19 11:19
谢谢分享,收藏
/ q4 ]0 l- m  L. T7 H
作者: opsops    时间: 2015-2-27 11:42
啦啦啦~~~我是默认签名(*^__^*)
  @, a- k5 F  X- X; k
作者: Kuniy_Guo    时间: 2015-4-10 14:06
这么牛!看看怎么用?!8 K. U1 Z, T! b. L9 m- V& R" W





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