$TITLE HT2: HALL-TAYLOR OPEN ECONOMY FLEXIBLE EXCHANGE. RATE OPTION SYSOUT = OFF; OPTION LIMROW = 0; OPTION LIMCOL = 0; OPTION SOLPRINT = OFF; *Anyone running this file on a PERSONAL COMPUTER at home or in the CARE lab must *remove the asterisk from the following line. *OPTION NLP=MINOS; $OFFSYMXREF OFFSYMLIST *********************************************************************** * This program takes as reference the model: * "agg. demand / price adj. open economy flexible exchg. rate" * as it is defined in Robert Hall and John Taylor's "MACROSOLVE", * the software accompaning their "Macroeconomics" book * (fourth edition, 1993) * * Program developed by Ruben Mercado at the * Department of Economics - The University of Texas at Austin * Austin, TX, June 1996 * *********************************************************************** * This is a dynamic nonlinear model, the same as the original * Hall-Taylor open economy flexible exchange rate as it is in * MACROSOLVE. * * Run your experiments on different copies of this program, so you * will always start from the default values for parameters, policy * variables and exogenous variables *********************************************************************** * * This program has 4 sections * As in MACROSOLVE, you are encouraged to modify the values or * policy variables and exogenous variables, but not the values of * of the structural parameters (you will be able to do so in the program * ht3.gms) * * The results of your interest will be at the end of GAMS' output, * in Reports containing simulations' results * * Section 1: definition of parameter values for the original * nonlinear Hall-Taylor model * Section 2: definition of temporal horizon for simulation * Section 3: definition of changes in policy and in exogenous variables * Section 4: computation of solution for the original nonlinear dynamic * model as it is in MACROSOLVE *********************************************************************** *********************************************************************** *********************************************************************** * * SECTION 1 : DEFINITION OF PARAMETER VALUES FOR THE ORIGINAL * NONLINEAR HALL-TAYLOR MODEL * *********************************************************************** *********************************************************************** *********************************************************************** * The first number indicates "equation number" and the second * indicates "parameter number" in the equation. for example, e2p1 * means "second equation - first parameter (from left to right)" in * the original hall-taylor model * * You can modify the tax rate (between 0.16 and 0.2) for policy analysis * However, if you modify any other parameter, you will not obtain * comparable results to those of MACROSOLVE, since they are steady- * state invariant . You will be able to introduce comparable parameters' * modifications in the program ht3.gms *********************************************************************** SCALARS e2p1 constant do not modify / 1 / e2p2 tax rate / 0.1875 / e3p1 minimum consumption / 220 / e3p2 marg prop to consume / 0.7754 / e4p1 maximum investment / 1000 / e4p2 interest elast of invest. / 2000 / e5p0 constant / 0 / e5p1 income elast of money dem. / 0.1583 / e5p2 interest elast of mon dem. / 1000 / e6p1 coeff. on 1 lagged inflation / 0.4 / e6p2 coeff. on 2 lagged inflation / 0.2 / e7p1 coeff. on excess aggr dem / 0.8 / e8p1 constant do not modify / 1 / e9p1 constant / 0.75 / e9p2 constant / 5 / e10p1 constant / 600 / e10p2 income elast of net exp / 0.10 / e10p3 real ex rate elast of net exp / 100 / e11p1 tax rate (same as e2p2) / 0.1875 / e12p1 elast. of empl. w.r.t GDP / 0.33 / ; *********************************************************************** *********************************************************************** * SECTION 4: DEFINITION OF TEMPORAL HORIZON FOR SIMILATION *********************************************************************** *********************************************************************** * If you change the extension of the horizon, make the necessary * adjustments in the section of shocks' definition (Section 5) *********************************************************************** SETS T EXTENDED HORIZON / 0*30 / T0(T) PERIOD ZERO T1(T) PERIOD ONE ; T0(T) = YES$(ORD(T) EQ 1); T1(T) = YES$(ORD(T) EQ 2); DISPLAY T0, T1; *********************************************************************** *********************************************************************** * SECTION 5 : DEFINITION OF CHANGES IN POLICY AND IN EXOGENOUS VARIABLES *********************************************************************** *********************************************************************** PARAMETERS * definition of policy and exogenous variables (in percentage changes) M(T) money stock (in % change) G(T) Gov. expenditure (in % change) YN(T) potential GDP (in % change) PW(T) foreign prices (in % change) * definition of policy and exogenous variables (in levels) Mlev(T) money stock (in levels) Glev(T) Gov. expenditure (in levels) YNlev(T) potential GDP (in levels) plevw(T) foreign prices (in levels) ; * default values for policy and exogenous variables M(T) = 0 ; G(T) = 0 ; YN(T) = 0 ; PW(T) = 0 ; Mlev(T) = 900 ; Glev(T) = 1200 ; YNlev(T) = 6000 ; plevw(T) = 1 ; *********************************************************************** * Changes in policy and in exogenous variables * * You can modify the values of the policy and/or the exogenous * variables. You have to define the modifications in % changes. Their * equivalent in levels are automatically computed (these are used in * the simulation of the nonlinear dynamic model) * For example, to increase the money supply by 3%, change the * expression below from M(TS1) = 0.0 to M(TS1) = 0.03 * * You can also modify the duration of the modifications * If you do so, the modifications will have to be compatible with the * simulation horizon defined in Section 4 * Default modifications start in period 4, for you to contrast * the changes introduced by your experiments with the previous steady- * state of the system * * * You can define as many modifications as you want, following * the format below * * As in MACROSOLVE, you can modify the money supply, Gov. expenditure * and potential GDP. Here, you can also modify the foreign price. * However, you will not be able to shock the price level (an endogenous * variable). You will have the opportunity of shocking endogenous variables * when experimentign with stochastic control in DUALI. * *********************************************************************** ****************************** * CHANGE IN MONEY SUPPLY ****************************** SETS TS1(T) periods for shock 1 / 4*30 / ; M(TS1) = 0.0 ; **************************************** * CHANGE IN GOVERNMENT EXPENDITURE **************************************** SETS TS2(T) periods for shock 2 / 4*30 / ; G(TS2) = 0.0; ****************************** * CHANGE IN POTENTIAL GNP ****************************** SETS TS3(T) periods for shock 3 / 4*30 / ; YN(TS3) = 0.0; **************************** * CHANGE IN FOREIGN PRICES **************************** SETS TS4(T) periods for shock 4 / 4*30 / ; PW(TS4) = 0.0; * Transformation of shocks in % changes into shocks in levels Mlev(TS1) = 900 * (1 + M(TS1)) ; Glev(TS2) = 1200 * (1 + G(TS2)) ; YNlev(TS3) = 6000 * (1 + YN(TS3)) ; plevw(TS4) = 1 * (1 + PW(TS4)) ; * reporting policy and exogenous varialbles values used for the simulation PARAMETER REPORTEX POLICY AND EXOGENOUS VARIABLES VALUES; REPORTEX(T,"Money") = Mlev(T); REPORTEX(T,"Gov. Exp.") = Glev(T); REPORTEX(T,"Pot. GDP") = YNlev(T); REPORTEX(T,"Fgn Price") = plevw(T); *********************************************************************** *********************************************************************** * SECTION 6: COMPUTATION OF SOLUTION FOR THE ORIGINAL DYNAMIC * NONLINEAR MODEL AS IT IS IN MACROSOLVE ************************************************************************ *********************************************************************** PARAMETERS UN(T) natural rate of unemployment ; UN(T) = 0.05 ; VARIABLES Ylev(T) gdp Ydlev(T) disposable income Clev(T) consumption Ilev(T) investment Rlev(T) interest rate plev(T) price level P(T) inflation rate Pe(T) expected inflation rate Elev(T) nominal exchange rate Xlev(T) net exports GDlev(T) government deficit U(T) unemployment rate J2 performance index EQUATIONS nd1(T) gdp identity nd2(T) disposable income nd3(T) consumption nd4(T) investment nd5(T) money demand nd6(T) expected inflation nd7(T) inflation rate nd8(T) price level nd9(T) real exchange rate nd10(T) net exports nd11(T) government deficit nd12(T) unemployment rate JD2(T) performance index ; JD2(T).. J2 =E= 0 ; nd1(T+2).. Ylev(T+2) =E= Clev(T+2) + Ilev(T+2) + Glev(T+2) + Xlev(T+2) ; nd2(T+2).. YDlev(T+2) =E= (e2p1 - e2p2) * Ylev(T+2) ; nd3(T+2).. Clev(T+2) =E= e3p1 + e3p2 * YDlev(T+2) ; nd4(T+2).. Ilev(T+2) =E= e4p1 - e4p2 * Rlev(T+2) ; nd5(T+2).. Rlev(T+2) =E= (e5p0 + e5p1 * Ylev(T+2) - Mlev(T+2) / plev(T+2)) * (1/ e5p2) ; nd6(T+2).. Pe(T+2) =E= e6p1 * P(T+1) + e6p2 * P(T) ; nd7(T+2).. P(T+2) =E= Pe(T+2) + e7p1 * (Ylev(T+1) - YNlev(T+2)) / YNlev(T+2) ; nd8(T+2).. plev(T+2) =E= plev(T+1) * (e8p1 + P(T+2)) ; nd9(T+2).. Elev(T+2) =E= e9p1 * (plevw(T+2) / plev(T+2)) + e9p2 * Rlev(T+2) * (plevw(T+2) / plev(T+2)) ; nd10(T+2).. Xlev(T+2) =E= e10p1 - e10p2 * Ylev(T+2) - e10p3 * ( Elev(T+2) * plev(T+2) / plevw(T+2)) ; nd11(T+2).. GDlev(T+2) =E= Glev(T+2) - e11p1 * Ylev(T+2) ; nd12(T+2).. U(T+2) =E= UN(T+2) - e12p1 * (Ylev(T+2) - YNlev(T+2)) / YNlev(T+2) ; *********************************************************************** * In what follows, we will assign initial variables' values and lower bounds * WARNING: The order of declaration of assignments is very important * Succesive assignments to a same variable undo the previous * ones *********************************************************************** * Guess of initial values for the solution algorithm * Without them, the problem will be declared "infeasible" * That is, the algorithm will converge to a solution from some initial * positions but not from others * This is common in nonlinear problems Rlev.L(T+2) = 0.09 ; Ylev.L(T+2) = 6500 ; Elev.L(T+2) = 1.2 ; Clev.L(T+2) = 4500 ; Ilev.L(T+2) = 900 ; Xlev.L(T+2) = -100 ; GDlev.L(T+2) = 75 ; U.L(T+2) = 0.07 ; YDlev.L(T+2) = 4875 ; P.L(T+2) = 0.1 ; Pe.L(T+2) = 0.2 ; plev.L(T+2) = 1.1 ; * lower bound for plev, to avoid division by zero plev.LO(T) = 0.0001 ; * fixing initial steady-state values for lagged endogenous variables plev.FX(T1) = 1 ; P.FX(T0) = 0 ; P.FX(T1) = 0 ; Ylev.FX(T1) = 6000 ; MODEL NONLDYN /nd1,nd2,nd3,nd4,nd5,nd6, nd7,nd8,nd9,nd10, nd11, nd12 , JD2 / ; SOLVE NONLDYN MAXIMIZING J2 USING NLP; * Reporting solution values PARAMETER REPORTS SOLUTION VALUES IN LEVELS; REPORTS(T,"YDynNonLin") = Ylev.L(T); REPORTS(T,"RDynNonLin") = Rlev.L(T); REPORTS(T,"PDynNonLin") = plev.L(T); REPORTS(T,"EDynNonLin") = Elev.L(T); REPORTS(T,"GDynNonLin") = GDlev.L(T); REPORTS(T,"UDynNonLin") = U.L(T); * Showing final results DISPLAY REPORTEX; DISPLAY REPORTS;