CorporateCVaR : Conditional Value at Risk models for corporate bond management.

Description

CorporateCVaR.gms: Conditional Value at Risk models for corporate bond management.
Consiglio, Nielsen and Zenios.
PRACTICAL FINANCIAL OPTIMIZATION: A Library of GAMS Models, Section 8.3
Last modified: May 2008.


Category : GAMS FIN library


Mainfile : CorporateCVaR.gms   includes :  CorporateCommonInclude.inc  CorporateScenarios.inc

$title Conditional Value at Risk models for corporate bond management

* CorporateCVaR.gms: Conditional Value at Risk models for corporate bond management.
* Consiglio, Nielsen and Zenios.
* PRACTICAL FINANCIAL OPTIMIZATION: A Library of GAMS Models, Section 8.3
* Last modified: May 2008.

$include "CorporateCommonInclude.inc"

$include "CorporateScenarios.inc"


SCALARS
   Budget        Nominal investment budget
   alpha         Confidence level
   MU_TARGET     Target portfolio return
   MU_STEP       Target return step
   MIN_MU        Minimum return in universe
   MAX_MU        Maximum return in universe;


Budget = 100.0;
alpha  = 0.997;

PARAMETERS
        pr(l)       Scenario probability
        P(i,l)      Final values
        EP(i)       Expected final values;

pr(l) = 1.0 / CARD(l);

P(i,l) = 1 + AssetReturns ( i, l );

EP(i) = SUM(l, pr(l) * P(i,l));

MIN_MU = SMIN(i, EP(i));
MAX_MU = SMAX(i, EP(i));

* Assume we want 20 portfolios in the frontier

MU_STEP = (MAX_MU - MIN_MU) / 20;


DISPLAY P,EP,MIN_MU,MAX_MU;


POSITIVE VARIABLES
   x(i)            Holdings of assets in monetary units (not proportions)
   VaRDev(l)       Measures of the deviations from the VaR;

VARIABLES
   VaR             Value-at-Risk
   ObjValue        Objective function value
   Losses(l)       Measures of the losses;

EQUATIONS
   BudgetCon        Equation defining the budget contraint
   ReturnCon        Equation defining the portfolio return constraint
   ObjDefCVaR       Objective function definition for CVaR minimization
   LossDef(l)       Equations defining the losses
   VaRDevCon(l)     Equations defining the VaR deviation constraints;

BudgetCon ..         SUM(i, x(i)) =E= Budget;

ReturnCon ..         SUM(i, EP(i) * x(i)) =G= MU_TARGET * Budget;

VaRDevCon(l) ..      VaRDev(l) =G= Losses(l) - VaR;

LossDef(l)..         Losses(l) =E= (Budget - SUM(i, P(i,l) * x(i)));

ObjDefCVaR ..        ObjValue =E= VaR + SUM(l, pr(l) * VaRDev(l)) / (1 - alpha);


MODEL MinCVaR  'PFO Model 5.5.1' /BudgetCon, ReturnCon, LossDef, VaRDevCon, ObjDefCVaR/;

FILE FrontierHandle /"CVaRFrontiers.csv"/;

FrontierHandle.pc = 5;
FrontierHandle.pw = 1048;

PUT FrontierHandle;

PUT "Status","VaR","CVaR","Mean";

LOOP(i, PUT i.tl);

PUT /;

FOR (MU_TARGET = MIN_MU TO MAX_MU BY MU_STEP,

        SOLVE MinCVaR MINIMIZING ObjValue USING LP;

        PUT MinCVaR.MODELSTAT:0:0,VaR.l:6:5,ObjValue.l:6:5,(MU_TARGET * Budget):8:3;

        LOOP (i, PUT x.l(i):6:2);

        PUT /;
);