市场投资的收益和风险模型李吉志 胡驿姿 胡凯摘要本文提出了一个多目标规划的数学模型,解决了市场投资方案的问题,使收益值尽可能大,风险值尽可能小。
为了方便求解,我们把非线性的转化为线性的,并将两个目标函数用加权系数法,引入加权系数,转化为一个目标函数,其中反应的是风险水平。
另外,在考虑交易费时,由于有个最小给定值的约束使问题很复杂,为了简化,我们将问题简化为只考虑超过部分的交易费,这样也利于求解。
最后,由MATLAB 求解出问题的最佳抉择与收益及其风险表:001max ()ni i i i f m r p m r ==-+∑min g=max{}i i m q01(1)1.01ni i i i m p m s t m =⎧++=⎪⎨⎪≤≤⎩∑ 再将15n =带入模型,按问题一相同思路得出投资组合方案(具体方案见文中)。
关键词:多目标规划 加权系数法 市场投资一、问题的重述市场上有n 种资产(如股票、债券、…)),,1(n i S i 供投资者选择,某公司有数额为M 的一笔相当大的资金可用作一个时期的投资。
公司财务分析人员对这n 种资产进行了评估,估算出这在这一时期内购买i S 的平均收益率为i r ,并预测出购买i S 的风险损失率i q 。
考虑到投资越分散,总的风险越小,公司确定,当用这笔资金购买若干种资产时,总体风险可用所投资的i S 中最大的一个风险来度量。
购买i S 要付交易费,费率为i p ,并且当购买额不超过给定值i u 时,交易费按购买iu 计算(不买当然无须付费)。
另外,假定同期银行存款利率是0r , 且既无交易费又无风险。
(0r =5%)1、已知n = 4时的由给出的相关数据,试给该公司设计一种投资组合方案,即用给定的资金,有选择地购买若干种资产或存银行生息,使净收益尽可能大,而总体风险尽可能小。
2、试就一般情况对以上问题进行讨论,并利用给出数据进行计算。
二、模型的假设1、假设确定M 相当大,这一条件可以在交易额很小时,忽略交易费;2、假设投资越分散,总的风险越小,且总体风险可用所投资的资产当中最大的一个风险来度量;3、假设交易费按购买计算,在不买的情形下当然无须付费;4、假设同期银行存款利率保持定值不变,且既无交易费又无风险。
三、符号的约定:n 市场资产数目;:i S 市场资产的种类(其中0S 表示投资银行); :i m 选择投资i S 的资金比例(其中0m 表示投资银行的资金比例); :i r 购买i S 的平均收益率;:i q 购买i S 的风险损失率; :i p 购买i S 的交易费率:i U 交易费用;:i u 交易额较低时的交易费用;:M 总给定的投资资金;:f 净收益额; :g 总体风险。
四、模型的建立与求解(一)问题一的分析、模型的建立与求解1、问题的分析该问题为一个多目标规划问题,即要提出一种投资方案,既要收益尽可能大,又要让风险最小。
在投资每一种资金的同时,都有着相应的一组数据对应,即收益率i r ,风险损失率i q ,交易费率i p 。
对于银行来说,0005%,0,0r q p ===。
但在考虑交易费时需要分段考虑:0 0; ; .i i i i i i i i Mm U u Mm u Mm Mm u =⎧⎪=≤⎨⎪>⎩在考虑总体风险时,我们要求值最小,而风险又是在所有投资项目中最大的一个风险来度量,即要求在风险的最大值中找到一组最小值解,实际为一极小极大值问题。
两者是对立矛盾的,就要我们在两者之间找到一个合适的投资方案让问题求解。
2、模型的建立建立多目标规划函数:4001max ()i i i i i f Mm r U p Mm r ==-+∑min g=max{}i i Mm q约束条件:4401.0,01i i i i i ii Mm U p Ms t U m ==⎧+=⎪⎨⎪>≤≤⎩∑∑ 3、模型的求解对于该模型的求解,是比较复杂的,直接求解几乎找不到方法,我们只好将问题进行化简处理,试探求解。
问题的复杂在于交易费有个最小给定值的约束,我们如果有一部分投资额低于给定值时,问题将十分麻烦,将对4种投资各进行两次判断是否达到最低给定值,那么总共的情况就有82256=种。
在投资额都超过最低给定值的这种情况下的交易费:4411103*0.01+198*0.02+52*0.045+40*0.065=9.9300i i i i i U U p u =====∑∑显然数据很小,我们可以忽略掉。
在最好的一种方便的情况下,就是4中投资额都超过最低给定值,将使问题清晰,一目了然。
然而在假设中M 为相当大,我们就更有理由将交易费低于给定值的情形忽略,将问题简化为只考虑超过部分的交易费。
重新列出为:0 ;.i i i i i i Mm u U Mm Mm u ≤⎧=⎨>⎩此时把M 当作一个单位量,于是,4001max ()i i i i f m r p m r ==-+∑min g=max{}i i m q401(1)1.01i i i i m p m s t m =⎧++=⎪⎨⎪≤≤⎩∑ 现在问题还是比较复杂,我们将两个目标函数用加权系数法,引入加权系数λ。
转化为一个目标函数:min (1)()F g f λλ=+-⋅- 01λ≤≤λ反应的是风险水平,0λ=时投资者只顾收益不顾风险,这样,收益可能达到最大,但是风险也达到最大;1λ=时投资者总是担心风险,不会考虑收益,这样就会把投资全部放在银行。
对于第二个目标函数,是一个非线性的,解决十分麻烦,但是该式总有一个最大值5m ,则有5i i m q m ≤,于是可以把该式转化为一个约束条件让问题简便。
45001min (1)(())i i i i F m m r p m r λλ==--⋅-+∑4015(1)1.0 1,,401i i i i i im p m s t m q m i m =⎧++=⎪⎪⎪-≤=⎨⎪≤≤⎪⎪⎩∑ 上述线性规划模型,容易由MATLAB 优化工具箱的linprog 线性规划函数求出解。
我们取0,0.1,0.2,,1λ= ,编程搜索求解得到最佳抉择与收益及其风险见表1:4、问题的结果投资组合表中的收益与风险值之间的关系见图1:收益风险图1:收益与风险值关系可以看出,在收益增大的同时,风险也在增大。
这符合一般生活的规律。
而由图也可以看出,在风险为0的情形下,收益值为0.05,此时刚好正是全部投资银行的收益值。
(二)问题二的分析、模型的建立与求解1、问题的分析本问题要求给出一般情况的讨论,实际上,在问题一的基础上我们很容易归结出该模型的一般情况。
即将上面建立的模型中的4换为n 即可。
相同的,我们还是当作M 很大的时候,交易费很低时,U 值可以忽略,使问题简化。
2、模型的建立由分析可以写出模型的一般情况:001max ()ni i i i f m r p m r ==-+∑min g=max{}i i m q01(1)1.01ni i i i m p m s t m =⎧++=⎪⎨⎪≤≤⎩∑ 上述问题仍然采用问题一的思想,运用加权系数法将多目标规划转为单一目标线性规划问题:1001min (1)(())nn i i i i F m m r p m r λλ+==--⋅-+∑011(1)1.0 1,,01ni i i i i n im p m s t m q m i n m =+⎧++=⎪⎪⎪-≤=⎨⎪≤≤⎪⎪⎩∑ 3、模型的求解对于一般情形下的15n =,下面进行计算。
由于一般情形中假设投资额较小时,可以忽略,验证该情况下的交易费:151511=181.6730i i i i i U U p u ====∑∑可以看出,对于相当大的M ,该值不计时符合的。
运用相同的方法计算得到最佳抉择与收益及其风险见表2:4上表中投资组合表中的收益与风险值之间的关系见图2:收益风险图2:15n 时收益与风险关系由图可以看到,收益值增加的同时,风险也在增大。
我们可以通过简单的曲线拟合来建立收益—风险函数,找到最优情况下的组合。
五、模型的检验与灵敏度分析1、实用性分析我们在简化模型的时候,是在i i Mm u >的前提下给出解集的,也就是要满足每一项投资:ii u m M>。
对于这个条件,由于i u 给出值一般较小,M 充分大,是容易满足的。
但是我们的模型在0i i um M<≤时,给出的解就不再时最优解。
2、灵敏度分析①对最小的投资额的分析在适用性满足的条件下,我们得找出一个最小的投资额min max{}iiu M m =,看不同的情况下的灵敏度。
对于不同的λ值对应的min M 如表3:表3:不同的λ值对应的min M总体说来,min M 的值比起充分大的M 来说,还是很小的;而且可以看出,在[0.21,1]λ∈这个大的范围之内,全部存入银行,不考虑最小值。
②对n 值的分析由问题一与问题二可知,在n 增大的情况下,得到的收益值越大,且风险值越小。
也就是说投资越分散,总体的风险也就偏小,净收益也就增大。
③对相关数据的分析由于投资项目的各组数据值较多,也容易变化,参考起来比较复杂。
而该题目中银行利率是一个单一的量,现在来考察不同0r 对问题的影响。
现仅对问题一,0r 取5%,10%,15%。
再次计算可以看到,结果的收益值与风险值没有发生变化。
所以可以看出在M 较大时,选择存银行是不合适的。
因为其他资产的收益率在一定程度上都比银行大,但相应的风险也提高了。
六、模型的评价与推广1、模型的优点本问题在一定程度上综合考虑了投资的利弊,给出了一个多目标的线性模型,在M充分大的条件下,再利用加权系数法,使问题简化,转变为线性规划模型,运用MATLAB 中的优化工具箱得到解。
2、模型的缺点在加权系数λ给定的同时,发现计算数据跳跃比较大,而没有再细化λ值,让数据比较连贯。
另外,该模型是仅在M充分大的情况下适用。
忽略了交易费的影响。
而在实际生活中,尽管交易费很低,但是在多次交易当中,该部分就不得不重视,所以模型有待进一步的改进与完善。
3、模型的推广该问题可以推广到n种情况的投资,用来组合投资,让收益值最大而风险值最小。
七、参考文献[1]姜启源,《数学模型》(第三版),北京:高等教育出版社,2003。
[2]杨启帆,《数学建模》,北京:高等教育出版社,2005。
[3]叶其孝,《大学生数学建模竞赛辅导教材》,北京,湖南教育出版社,1993。
[4]何坚勇,《运筹学基础》,北京:清华大学出版社,1999八、附录【程序一】:问题一的程序clear all;close all;clc;for t=0:0.01:1 %%%加权系数,进行循环搜索tr=[5 28 21 23 25];q=[0 2.5 1.5 5.5 2.6];p=[0 1 2 4.5 6.5];for i=1:5f1(1,i)=r(1,i)-p(1,i);endf=[(t-1)*f1*0.01,t];A=[0 2.5 0 0 0 -10 0 1.5 0 0 -10 0 0 5.5 0 -10 0 0 0 2.6 -1];b=[0;0;0;0];Aeq=[1+0.01*p,0];beq=1;lb=[0 0 0 0 0 0];[x,fval]=linprog(f,A,b,Aeq,beq,lb,[]);xx=x(1:5,1);A=f1*x*0.01 %%%净收益值的输出B=max(q.*x'*0.01) %%%风险值的输出end【程序二】:问题二的程序clear all;close all;clc;for t=0:0.01:1 %%%加权系数,进行循环搜索tr=[5 9.6 18.5 49.4 23.9 8.1 14 40.7 31.2 33.6 36.8 11.8 9 35 9.4 15]; q=[0 42 54 60 42 1.2 39 68 33.4 53.3 40 31 5.5 4 5.3 23];p=[0 2.1 3.2 6.0 1.5 7.6 3.4 5.6 3.1 2.7 2.9 5.1 5.7 2.7 4.5 7.6];for i=1:16f1(1,i)=r(1,i)-p(1,i);endf=[(t-1)*f1*0.01,t];A=[0 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -10 0 54 0 0 0 0 0 0 0 0 0 0 0 0 0 -10 0 0 60 0 0 0 0 0 0 0 0 0 0 0 0 -10 0 0 0 42 0 0 0 0 0 0 0 0 0 0 0 -10 0 0 0 0 1.2 0 0 0 0 0 0 0 0 0 0 -10 0 0 0 0 0 39 0 0 0 0 0 0 0 0 0 -10 0 0 0 0 0 0 68 0 0 0 0 0 0 0 0 -10 0 0 0 0 0 0 0 33.4 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 53.3 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 40 0 0 0 0 0 -10 0 0 0 0 0 0 0 0 0 0 31 0 0 0 0 -10 0 0 0 0 0 0 0 0 0 0 0 5.5 0 0 0 -10 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 -10 0 0 60 0 0 0 0 0 0 0 0 0 0 5.3 0 -1 0 0 0 0 42 0 0 0 0 0 0 0 0 0 0 23 -1]; b=[0;0;0;0;0;0;0;0;0;0;0;0;0;0;0];Aeq=[1+0.01*p,0];beq=1;lb=zeros(1,17);[x,fval]=linprog(f,A,b,Aeq,beq,lb,[]);xx=x(1:16,1);A=f1*x*0.01 %%%净收益值的输出B=max(q.*x'*0.01) %%%风险值的输出end11。