24周年

财税实务 高薪就业 学历教育
APP下载
APP下载新用户扫码下载
立享专属优惠

安卓版本:8.7.31 苹果版本:8.7.31

开发者:北京正保会计科技有限公司

应用涉及权限:查看权限>

APP隐私政策:查看政策>

HD版本上线:点击下载>

投资组合收益优化模型的建立及其程序设计实现

来源: 李益华 编辑: 2009/11/08 22:17:29  字体:

   【摘 要】本文以某公司债券投资组合为基础,建立了投资组合收益的最优化模型,并设计了求解该模型的计算程序,提高了计算的效率。

  【关键词】投资组合收益;最优化;信息化实现

  1 引 言

  投资组合收益优化问题研究如何选择投资对象,例如如何选择不同的债券或股票,在满足某些要求的前提下使得收益最大。因此,其决策变量是对各种可能的投资对象的投资组合,其目标函数通常是期望回报率最大化,而约束条件则包括总投资额、公司政策、法律法规等约束。

  2 建立某公司投资组合收益的最优化模型

  下面通过一个例子来说明某公司投资组合收益的最优化问题及其信息化实现。

  某公司董事会决定将2 000万元用于债券投资。经咨询,现有5种债券是比较好的投资对象,它们是:黄河汽车、长江汽车、华南电器、西南电器、缜山纸业。它们的投资回报率如表1所示。为减少风险,董事会要求,对汽车业的投资不得超过1 200万,对电器业的投资不得超过800万,其中对长江汽车的投资不得超过对汽车业投资的65%,对纸业的投资不得低于对汽车业投资的20%,该公司应如何投资,才能在满足董事会要求的前提下使得总回报额最大?

  根据题意,本问题的决策变量是对5种投资对象的投资额。设该公司对5种债券的投资额分别为X1,X2,X3,X4,X5

  本问题的目标是获得最大的债券回报额。债券回报额等于回报率投资额。由表1可知,5种债券的回报率分别为0.065,0.092,0.045,0.055,0.042,所以总回报额应等于各种债券回报额之和,即:

  总回报额= 0.065X1+0.092X2+0.045X3+0.055X4+0.042X5

  公司的目标是使得上述总回报额最大化,即:

  max 0.065X1+0.092X2+0.045X3+0.055X4+0.042X5

  本问题的约束条件包括:总投资额约束,以及对汽车业、电器业、长江汽车、纸业的投资限制。因此,本问题的线性规划模型如下:

  o.b. max 0.065X1+0.092X2+0.045X3+0.055X4+0.042X5(总投资额最大化)

  s.t. X1+X2+X3+X4+X5=20 000 000(总投资额约束)

  X1+X2≤12 000 000(汽车业投资约束)

  X3+X4≤8 000 000(电器业投资约束)

  X2≤0.65(X1+X2)(长江汽车投资约束)

  X5≥0.20(X1+X2)(纸业投资约束)

  X1、X2、X3、X4、X5≥0(非负约束)

  用Spreadsheet可描述本问题并建立模型,模型的公式表示见表2,计算结果见表3。

  从表3可得该公司的最优投资组合的结果,如表4所示。

  这时,满足所有的约束条件,且总回报额最大,达到1 399 400元。

  3 公司投资组合收益的最优化模型的信息化实现

  上述计算是比较麻烦的,用户稍微不小心,就很容易出错,为了简化上述的计算,避免出错,我们编制了一个VBA程序,大大提高了效率。VBA程序清单如下:

  Sub js()

  Cells(14,5) = "=SUM(B14:B18)"

  Cells(15,5) = "=SUM(B14:B15)"

  Cells(16,5) = "=SUM(B16:B17)"

  Cells(17,5) = "=B15"

  Cells(18,5) = "=B18"

  Cells(14,7) = "=F5"

  Cells(15,7) = "=F6"

  Cells(16,7) = "=F7"

  Cells(17,7) = "=F8*(B14+B15)"

  Cells(18,7) = "=F9*(B14+B15)"

  Cells(20,2) = "=SUMPRODUCT(B5:B9,B14:B18)"

  SolverReset

  Call SolverOk("$B$20",1,0,"$B$14:$B$18")

  Call SolverOptions(AssumeLinear:=True,AssumeNonNeg:=True)

  Call SolverAdd("$E$14",2,"$G$14")

  Call SolverAdd("$E$15:$E$17",1,"$G$15:$G$17")

  Call SolverAdd("$E$18",3,"$G$18")

  SolverSolve (True)

  End Sub

  注意:在调用上述包含SolverOk()、SolverAdd()等函数的程序之前,必须先建立一个对规划求解的引用,保持Visual Basic模块在激活状态,点击工具菜单中的引用,然后浏览并找到Solver.xla(这个工具通常放在\Office\Library目录下)。

责任编辑:小奇

实务学习指南

回到顶部
折叠
网站地图

Copyright © 2000 - www.fawtography.com All Rights Reserved. 北京正保会计科技有限公司 版权所有

京B2-20200959 京ICP备20012371号-7 出版物经营许可证 京公网安备 11010802044457号