FactorYieldImmunization : Factor immunization models, maximizing the non-linear portfolio yield

Description

FactorYieldImmunization.gms: Factor immunization models, maximizing the non-linear portfolio yield
Consiglio, Nielsen and Zenios.
PRACTICAL FINANCIAL OPTIMIZATION: A Library of GAMS Models, Section 4.5.1
Last modified: Apr 2008.

Note that this program should be called with a restart.
First line below checks whether the program is called
with a restart whereas the second line checks with an equation
identifier from the expected restart file whether the right
file is supplied.

Alternatively, the program can be run without a restart
by commenting the two lines above and decommenting the
line below.


Category : GAMS FIN library


Mainfile : FactorYieldImmunization.gms   includes :  BondData.inc  SpotRates.inc  YieldRates.inc  FactorData.inc  FactorImmunization.gms

$title Factor immunization models, maximizing the non-linear portfolio yield

* FactorYieldImmunization.gms: Factor immunization models, maximizing the non-linear portfolio yield
* Consiglio, Nielsen and Zenios.
* PRACTICAL FINANCIAL OPTIMIZATION: A Library of GAMS Models, Section 4.5.1
* Last modified: Apr 2008.

* Note that this program should be called with a restart.
* First line below checks whether the program is called
* with a restart whereas the second line checks with an equation
* identifier from the expected restart file whether the right
* file is supplied.

$ifThen not '%gams.r%' == ''
$  if not declared PresentValueMatch $abort Wrong restart file
$else
* Alternatively, the program can be run without a restart
* by commenting the two lines above and decommenting the
* line below.
$  include FactorImmunization
$endIf

VARIABLE
         PortfolioYield           Portfolio Yield;

EQUATIONS
         YieldDef                 Equation defining the portfolio yield;

YieldDef .. SUM((i,t), x(i) * F(t,i) * EXP( -PortfolioYield * tau(t)) ) =E= SUM(i, PV(i) * x(i));

PortfolioYield.UP = 0.20; PortfolioYield.LO = 0.01;

* No convexity model

MODEL FactorYieldImmunizationOne /PresentValueMatch, DurationMatch, YieldDef/;

SOLVE FactorYieldImmunizationOne MAXIMIZING PortfolioYield USING NLP;

DISPLAY   PortfolioYield.L,x.L;

MODEL FactorYieldImmunizationTwo /PresentValueMatch, DurationMatch, ConvexityMatch, YieldDef/;

SOLVE FactorYieldImmunizationTwo MAXIMIZING PortfolioYield USING NLP;

DISPLAY   PortfolioYield.L,x.L;