port.gms : Simple Portfolio Model

Description

This simple portfolio selection model examines
investment alternatives in the bond market. The selection
is constrained by rating and maturity considerations.


Reference

  • CDC, IFPS/OPTIMIM - Users Manual, Control Data Corporation, Minneapolis, 1984.

Small Model of Type : LP


Category : GAMS Model library


Main file : port.gms

$title Simple Portfolio Model (PORT,SEQ=50)

$onText
This simple portfolio selection model examines
investment alternatives in the bond market. The selection
is constrained by rating and maturity considerations.


CDC, IFPS/OPTIMIM - Users Manual, Control Data Corporation, Minneapolis, 1984.

Keywords: linear programming, portfolio optimization, investment planning, finance
$offText

Set
   b    'bonds'    / municip-a, municip-b, corporate, us-ser-e, us-ser-f /
   g(b) 'grouping' / corporate, us-ser-e,  us-ser-f /;

Table ydat(b,*) 'yield data'
                 rating  maturity  yield  tax-rate
   municip-a          2         9    4.3
   municip-b          5         2    4.5
   corporate          2        15    5.4        .5
   us-ser-e           1         4    5.0        .5
   us-ser-f           1         3    4.4        .5;

Variable
   investment(b)
   tinvest       'total investment'
   return;

Positive Variable investment;

Equation
   groupmin 'minimum investment in group g'
   rdef     'rating definition'
   mdef     'maturity definition'
   idef     'total return definition'
   tdef     'total investment definition';

groupmin.. sum(g, investment(g)) =g= 4;

rdef..     sum(b, ydat(b,"rating  ")*investment(b)) =l= 1.4*tinvest;

mdef..     sum(b, ydat(b,"maturity")*investment(b)) =l= 5.0*tinvest;

tdef..     tinvest =e= sum(b, investment(b));

idef..     return  =e= sum(b, ydat(b,"yield")/100*(1-ydat(b,"tax-rate"))*investment(b));

tinvest.up = 10;

Model port / all /;

solve port maximizing return using lp;