TwoStageDeterministic : Deterministic Two-stage program.

Description

```TwoStageDetermistic.gms: Deterministic Two-stage program.
Consiglio, Nielsen and Zenios.
PRACTICAL FINANCIAL OPTIMIZATION: A Library of GAMS Models, Section 6.3.1
```

Category : GAMS FIN library

Mainfile : TwoStageDeterministic.gms

``````\$title Deterministic Two-stage program

* TwoStageDetermistic.gms: Deterministic Two-stage program.
* Consiglio, Nielsen and Zenios.
* PRACTICAL FINANCIAL OPTIMIZATION: A Library of GAMS Models, Section 6.3.1

SET Assets Available assets
/Stock, Put_1, Call_1, Put_2, Call_2/;

SET Assets_1(Assets) Assets available up to the end of the first period
/Stock, Put_1, Call_1/;

SET Assets_2(Assets) Assets available up to the end of the second period
/Stock, Put_2, Call_2/;

ALIAS (Assets, i );
ALIAS (Assets_1, j);
ALIAS (Assets_2, k);

PARAMETER P_1(j) Asset prices at the beginning of the first time period
/Stock = 43,
Put_1  = 0.81,
Call_1 = 4.76/;

PARAMETER P_2(i) Asset prices (values) at the beginning of the second time period
/Stock  = 44,
Put_1  = 4,
Call_1 = 0,
Put_2  = 0.92,
Call_2 = 4.43/;

PARAMETER F(k) Asset prices (values) at the end of the second time period
/Stock  = 48,
Put_2  = 8,
Call_2 = 0/;

POSITIVE VARIABLES
x(j)     First-stage (or first-period) holdings
y(k)     Second-stage (or second-period) holdings;

VARIABLE
z        Objective function value;

EQUATIONS
BudgetCon         Equation defining the budget contraint
ObjDef            Objective function definition
MinReturnCon      Equation defining the minimum return contraint
RebalanceCon      Equation defining the rebalance contraint;

ObjDef ..         z =E= SUM(k, F(k) * y(k));

BudgetCon ..      SUM(j, P_1(j) * x(j))   =L= 10000;

MinReturnCon ..   SUM(k, F(k) * y(k))     =G= 11500;

RebalanceCon ..   SUM(j, P_2(j) * x(j))   =G= SUM(k, P_2(k) * y(k));

MODEL DeterministicTwoStage /ALL/;

SOLVE DeterministicTwoStage MAXIMIZING z USING LP;

DISPLAY x.l,z.l;
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170
GAMS is a registered trademark of GAMS Software GmbH in the European Union