GAMS [ Home | Support | Sales | Solvers | Documentation | Model Libraries | Search | Contact Us ]

FactorYieldImmunization : 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.

   Files:  BondData.inc  FactorImmunization.gms  FactorData.inc  SpotRates.inc  YieldRates.inc  FactorYieldImmunization.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. $if '%gams.r%' == '' $abort Restart is missing $if not declared PresentValueMatch $abort Wrong restart file * Alternatively, the program can be run without a restart * by commenting the two lines above and decommenting the * line below. *$include FactorImmunization 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;