* m+ w/ J6 J+ g4 J8 q( V年投资收益率 也是一个随机变量。根据概率论的知识,投# c) n6 P+ J' i
资的总期望收益为 ( 3 )' r) g: N& S. w3 P2 n0 k) S
! e, Q/ _6 a' @$ K* a6 J+ b ( 4 ) 6 d$ J0 J8 d; X( x ! d9 |* z* g, E实际的投资者可能面临许多约束条件,这里只考虑题中要求的年收益率(的数学期 望)不低于15%,即 1 h* a& s3 ^: P4 e6 r* X) l9 V! k. B- Y4 r ( 5 ) 6 S+ B% \" @4 n5 G' f9 }' n( F# {0 V
所以,最后的优化模型就是在约束(2)和(5)下极小化(4)。由于目标函数V 是决策变量的二次函数,而约束都是线性函数,所以这是一个二次规划问题。 , \; [4 H1 P; F $ \8 k: G2 a; Y* W6 t7 Y(3)用LINGO求解模型 + U# n5 E' E. h0 A
& K, q, l4 w- L+ p9 O4 r& U" G( s& \编写LINGO程序如下 7 Y' e6 E+ C9 L% I0 C8 S! D* w* U
MODEL: ' R: t* d2 }* g" m2 P2 O1 r$ x; P
SETS: 1 Y, v5 J: }2 H0 \: T YEAR/1..12/; 3 a. @: ]8 O' A4 a/ |* b/ H, t4 N STOCKS/ A, B, C/: Mean,X; ) w; p6 J/ P5 V6 l, f
link(YEAR, STOCKS): R; 0 Z# A! y1 _; Z! d- H5 F. V6 L r; j
STST(Stocks,stocks): COV; ( i4 e' n K4 w* A6 }$ N* W- U( JENDSETS ) A( |: G+ e+ o4 M1 q
DATA: " L% y1 E2 P: P* k, k
TARGET=0.15; C$ T/ e4 I9 @& u
Mean=@file(data2.txt); ' F# w$ ?& y' S9 jCOV=@file(data3.txt); ' r4 L8 B/ e0 q s& L. eENDDATA 9 Z- R) i% m0 ~- a
[OBJ] MIN = @sum(STST(i,j): COV(i,j)*x(i)*x(j)); + t; s1 J0 G# Z: I' W0 `[ONE] @SUM(STOCKS: X) = 1; + D4 q$ r3 v: X' k0 [1 i0 g
[TWO] @SUM(stocks: mean*x) >= TARGET; 6 E. K2 w N- ?! P& z7 }END3 [& B/ ^) p2 [* E8 m
求得投资三种股票的比例大致是: A占53%,B 占36%,C 占11%。风险(方 差)为0.02241378。 1 L3 j6 v5 L( v& Q - r2 o* k6 W* Y; q(4)用MATLAB软件对模型进行参数分析 , i: s! A+ d# Y) v3 h8 o' A$ H$ z, o$ q) M d
对实际投资人来说,可能不仅希望知道指定的期望投资回报率下的风险(回报率的方差),可能更希望知道风险随着不同的投资回报率是如何变化的,然后作出后的投 资决策。这当然可以通过在上面的模型中不断修改约束中的参数(目前为0.15)来实 现,如将0.15改为0.2345,则表示投资回报率希望达到23.45%(这几乎是可能达到的最大值了,因为这几乎是三种股票中最大的投资回报率,即股票C 的回报率)。可 以想到,这时应主要投资在股票C 上。实际求解一下,可以知道最优解中投资股票C 的 份额大约是99.6%(剩余的大约0.4%投资在股票B 上)。 目前LINGO软件还没有二次规划灵敏度分析的功能。下面我们利用MATLAB软件进 行灵敏度分析,回报率的取值区间为[0.09,0.234],变化步长为0.002。" _3 L; D4 `0 O" j: f
, H& X+ W% |5 |2 L5 I3 e; o
编写程序 如下: ' Q: s# N. X6 _& P; }' U' R* O/ x9 |7 I
clc,clear & W9 i0 v x1 Gload data2.txt,load data3.txt : Z9 s( T: X2 B# uh=reshape(data3,[3,3]); + D0 j4 `) P1 D+ l+ C. ta=data2'; ) Q- ?/ j% E! `solution=[]; `3 W2 _& t- ~* G$ X' @7 d+ A# K
target=0.09; % Q: k% Q) o1 i* G, H$ c5 M, N2 b: Vhold on : P. a$ f& s0 D: W0 l; Kwhile target<0.234 2 E. G, R2 q q3 y/ G! W' g
[x,y]=quadprog(2*h,[],-a,-target,ones(1,3),1,zeros(3,1)); 1 q4 e* q# k# Y: F( g
plot(target,y,'*b'); 5 M; k$ o. ?! M! b* L solution=[solution [target;x;y]]; ( U; T7 {- |5 ~2 s
target=target+0.002; . |# n% E; G7 Q3 T0 ]7 k
end * S3 } [+ }( ?+ ]+ _' p: [
solution , _& k S) i2 w {: [5 f9 `4 p5 N
得到的投资回报率与风险之间的关系曲线如图3所示 。# g7 @; e& _+ ]- o5 W- N# j
% H5 K* j& \4 o0 d% C& Z; N. s' @. k0 v* S' p$ \! F h2 B1 f4 p
( g) l- h! C/ ?; C: M' Y7 m& o; s( h
从图3可以看出,投资回报率从22%附近开始,风险迅速增大。 4 h7 O- T. n2 k
6 V7 O% O; ~4 t3 o' P: K
I6 x& B# G# L8 v9 X* }! h5 e% E. `, E
存在无风险资产时的投资组合模型 / W+ @# J5 b8 u; e
例6 假设除了例5中的三种股票外,投资人还有一种无风险的投资方式,如购买国库券。假设国 库券的年收益率为5%,如何考虑例5中的问题?! @1 g$ Z: T: r9 b, k
3 ?3 M4 {: q; ?/ }8 I7 w
(1)问题分析 5 c1 L! ~- x r e" q4 e ) i2 P( C0 m0 X& B$ z5 |1 w其实,无风险的投资方式(如国库券、银行存款等)是有风险的投资方式(如股票)的一种特例, 所以这就意味着例5中的模型仍然是适用的。只不过无风险的投资方式的收益是固定的,所以方差(包 括它与其它投资方式的收益的协方差)都是0。$ x! e2 _2 i9 y9 @( I" G) Q
7 d2 T! Y" N" ~5 j" O
(2)问题求解 9 p' i5 m/ V/ `! \2 b; S/ z/ j3 F 2 ~! {5 {* v7 x& ]! Y! E8 g3 u假设国库券的投资方式记为D,则当希望回报率为15%时,对应的LINGO模型如下: 6 u; v; E: V" u) I$ }6 v! t ' K/ E# s% @9 j8 } g4 G yMODEL: * B8 C. M0 n2 l8 }9 s! X, Q1 h
Title 含有国库券的投资组合模型; # c' {6 C+ A. mSETS: # ^* x. q# N. Q& W( n% e
STOCKS1/ A, B, C/: mean1; - n! v) F! A9 [
STST1(Stocks1,stocks1): COV1; 1 ^1 s+ Q! a8 [( L2 Z8 g a; Y
STOCKS/ A, B, C, D/: mean,X; ; s" p$ I% @$ Z; B) B STST(Stocks,stocks): COV; 2 H& M, ^0 I9 e E
ENDSETS & j+ a! D5 S, h' J! y. n
DATA: 6 W6 X/ G _- o7 S
mean=0.05; : l! d7 ~9 c5 z# j' W& J% r
COV=0; 3 _# f# S/ u7 K4 u3 ~2 q' ACOV1=@file(data3.txt); 7 ?* c0 C$ L+ i* q6 QMean1=@file(data2.txt); : y" V# F+ c, r: \$ E8 E6 j3 HTARGET = 0.15; ! 0.10; 8 X4 D9 K) o8 k/ G( |+ oENDDATA ) Z- |2 C" G: P5 j0 d. V
calc: 6 N X; a: V& R8 c$ @. e9 R7 {
@for(STOCKS(i)|i #ne# 4: mean(i)=mean1(i)); 3 m" i* y" m0 f/ @9 ^1 D@for(STST(i,j)| i #ne# 4 #and# j #ne# 4:COV(i,j)=COV1(i,j)); / }8 O- p: y( X% d" fendcalc0 P& k, X; c& b0 \. J! l5 K$ z% B
[OBJ] MIN = @sum(STST(i,j): COV(i,j)*x(i)*x(j)); 5 v, @8 {* O0 P* m2 ?[ONE] @SUM(STOCKS: X) = 1; : Q9 U) _1 q' F8 \ r. ]$ I& T[TWO] @SUM(stocks: mean*x) >= TARGET; - s7 i% }: \9 t* R% |
END + F4 e B2 p( A6 C计算结果为,投资 A占8.7%,B 占42.9%,C 占14.3%, D (国库券)占34.1%,风险 (方差)为0.02080347。与例5中的风险(方差为0.02241378)比较,无风险资产的存 在可以使得投资风险减少。虽然国库券的收益率只有5%,比希望得到的收益率15%小很多, 但在国库券上的投资要占到34.1%,其原因就是为了减少风险。 9 w" U$ M3 g. V0 [ _7 @( M3 s( Y3 S$ G+ }# u
现在,我们把上面模型中的期望收益减少到10%,即把数据段中的语句“TARGET = 0.15”改为“TARGET = 0.10”,重新求解模型。计算结果如下:4 l+ m' G3 J5 q! X4 v1 t6 |
8 R: F1 u' E5 \: c1 k: T
投资 A占4.3%,B 占21.4%,C 占7.2%, D (国库券)占67.1%,此时风险(方差为 0.0052)进一步下降。请特别注意:你能发现这个结果(这里不妨称为结果2)与刚才 “TARGET = 0.15”的结果(这里不妨称为结果1)有什么联系吗? 仔细观察这两个结果,可以发现:结果2中投资在有风险资产(股票 A ,B , C)上的比例大约都是结果1中相应的比例的一半。也就是说,无论你的期望收益和风险偏好如何,你 手上所持有的风险资产本身相互之间的比例居然是不变的!变化的只是投资于风险资产与 无风险资产之间的比例。有趣的是,这一现象在一般情况下也是成立的,一般称为“分离 定理”,即风险资产之间的投资比例与期望收益和风险偏好无关。1981年诺贝尔经济学奖 得主Tobin教授之所以获奖,很大一部分原因就是因为他发现了这个重要的规律。 也正是由于有这样一个重要结果,我们在下面各节的讨论中就不再考虑存在无风险资产 的情形了,而只考虑确定风险资产之间的投资比例。 ) c6 C- `* a: E1 `0 { + W# a& k' M. L% V" Y/ F7 G) l1 M0 q' a" s- U# V$ o# X+ R1 h+ ] Z
( G" o" w$ f+ z' ~- O% }考虑交易成本的投资组合模型 0 N. B" |8 e f3 C$ M1 {6 S% [- ^例7 继续考虑例5(期望收益仍定为15%)。假设你目前持有的股票比例为:股票 A占 50%,B 占35%,C 占15%。这个比例与例5中得到的优解有所不同。实际股票市场上 每次股票买卖通常总有交易费,例如按交易额的1%收取交易费,这时你是否仍需要对所持 的股票进行买卖(换手),以便满足优解的要求? 9 A/ K, V. a! K0 z5 m- k5 a " R% E7 o# Z4 z# I. M0 V5 Q4 D(1)建立模型 + { h T( \& z+ m) z( q- F7 o% Q8 R/ ^
仍用决策变量 分别表示投资人应当投资股票 A 、B 、C 的比例,进一步假设购买股票 A 、B 、C 的比例为 2 ,卖出股票 A 、B 、C 的比例为 。其中, 和 ( i=1,2,3 )中显然多只能有一个严格取正数,且 7 @" l6 K/ z* K# c7 A" N# s! v( t0 p# H) r! C' ?. ^ ( 6 )0 Z. ]- |6 v; R3 k
6 |1 Q$ m$ d7 _: [* R- n8 j/ u
由于交易费用的存在,这时约束 不一定还成立(只有不进行股票买卖,即 时,这个约束才成立)。其实,这个关系式的本质是:当前持有的总资金是守恒的,在有交易成本(1%)的情况下,应当表示成如下形式: ]% N7 Z0 |0 q" y; a, G
1 H) J: b4 i" p2 q ( 7 ) T: u ?" a1 h0 W' J. y. ? ; \. L. b5 G% q2 J$ m# J$ O$ b另外,考虑到当前持有的各只股票的份额 之间也应该满足守恒关系式 2 w4 b9 m% a( {- O5 I
8 m8 H8 r9 \* i( s- _$ d9 f ( 8 ) 1 O6 W* ]9 E, g) e/ }3 r$ U5 y5 ` b8 m4 I5 L1 f, w
(2)模型求解* r: m1 C5 k6 m+ d, @0 v% Y( W/ M' K
9 c: g$ `* n* ]$ l3 z% E+ l问题对应的LINGO程序如下: / ^! L$ S) P6 ]8 O& X: W' _ , @$ v0 M1 T& T: @! Y* QMODEL: $ K8 P8 ^$ |0 N# _. M5 eTitle 考虑交易费的投资组合模型; : H3 Z# P, y; A2 H: x; QSETS: 4 B' u& B) l& F; B
STOCKS/ A, B, C/: C,Mean,X,Y,Z; 2 L0 m; _3 o+ d3 z" N0 { STST(Stocks,stocks): COV; * R$ \; q- A3 B4 ~$ M h
ENDSETS 2 c! V/ g( E& Q% A+ ]DATA: 6 |) L4 o( H4 y- e/ [- e: I
! 股票的初始份额; * ?, _/ Y& H6 x! i5 N0 P+ x% n
c=0.5 0.35 0.15; & e( y6 F: \ R$ ^9 OTARGET=0.15; , b/ Y7 e1 n; J- ?+ i s
Mean=@file(data2.txt); 7 e9 w9 d; V, @9 _( H) lCOV=@file(data3.txt); , N# O& b+ ]! R$ [) RENDDATA ) Y" o# E6 ?, C0 }
[OBJ] MIN = @sum(STST(i,j): COV(i,j)*x(i)*x(j)); " I8 p" Q y3 g! p' ^" N F3 A[ONE] @SUM(STOCKS: X+0.01*Y+0.01*Z) = 1; : n! Z) o% C6 _, a, H[TWO] @SUM(stocks: mean*x) >= TARGET; 8 k$ z% Y+ C. M@FOR(stocks: [ADD] x = c + y - z); + g. Q: L6 f1 h* o: O( fEND * {' R4 |+ x& W. Q* E2 W# J( b1 D
在这个LINGO模型中,股票C是原始集合“STOCKS”的一个元素,不会因为与集 合的属性C同名而混淆。这是LINGO新版本比LINGO旧版本的一个改进之处。 ! ^( s w; G0 i+ ^; S ?) c/ Q
3 v+ I4 M1 i; |; A
S% g$ n2 b2 w