投资收益和风险三种模型的matlab代码

1. 问题提出

 

        市场上有 n 种资产 si ( i = 1,2,L, n )可以选择,现用数额为 M 的相当大的资金作一个时期的投资。这 n 种资产在这一时期内购买 si 的平均收益率为 ri ,风险损失率为qi ,投资越分散,总的风险越少,总体风险可用投资的 si 中最大的一个风险来度量。

        购买 si 时要付交易费,(费率 pi ),当购买额不超过给定值 ui 时,交易费按购买 ui计算。另外,假定同期银行存款利率是r0,既无交易费又无风险。(r0 =5%)已知 n = 4 时相关数据如表 1。

 

 

 

        试给该公司设计一种投资组合方案,即用给定资金 M ,有选择地购买若干种资产或存银行生息,使净收益尽可能大,使总体风险尽可能小。

2.符号规定和基本假设

 

符号规定:

si :第 i 种投资项目,如股票,债券
r , p , q :分别为 s 的平均收益率,交易费率,风险损失率

iii iui : si 的交易定额

r0 :同期银行利率
xi :投资项目 si 的资金

a :投资风险度Q :总体收益

基本假设:

1.投资数额M相当大,为了便于计算,假设M =1;2. 投资越分散,总的风险越小;
3. 总体风险用投资项目 si 中最大的一个风险来度量;

4. n 种资产 si 之间是相互独立的;
5. 在投资的这一时期内, r , p , q r 为定值,不受意外因素影响;

iii0
6. 净收益和总体风险只受 r , p , q 影响,不受其它因素干扰。


3.模型分析与建立

 

1. 总体风险用所投资的 si 中最大的一个风险来衡量,即

max{qixi |i=1,2,L,n}

2.购买 si 所付交易费是一个分段函数,即

交易费  

 

而题目所给定的定值 ui (单位:元)相对总投资 M 很少, pi ui 更小,可以忽略不计,这样购买s 的净收益为(ri pi )xi 

3. 要使净收益尽可能大,总体风险尽可能小,这是一个多目标规划模型:

 

 


4.代码示例

//线性规划实现代码示例
a=0;  //将风险控制在a以下
while (a<0.1)
c=[-0.05 -0.27 -0.19 -0.185 -0.185];  // 求MAX值,故需转换符号,求MIN -z
// 不等式约束,最大风险小于a转换为每个风险均小于a
A=[0 0.025 0 0 0;0 0 0.015 0 0;0 0 0 0.055 0;0 0 0 0 0.026];
b=[a;a;a;a];
// 等式约束条件
Aeq=[1 1.01 1.02 1.045 1.065];
beq=[1];
// 自变量取值约束条件
vlb=[0;0;0;0;0];
vub=[];
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub);
Q=-fval;  // 收益率转回正值
plot(a,Q,'.');hold on //每次只画一个点,不关
a=a+0.001;
end
xlabel('a');ylabel('Q');

 

  • 24
    点赞
  • 180
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值