close all;

% Solution to Bean 2004 (AER)

var y c rk rn pai w h k i x yn z xi varsigma v;                                                                                     % define the "endogenous" variables (including the stochastic state variable)

varexo ez exi evarsigma ev;                                                                                                         % define the "exogenous" variables (the innovation to the stochastic state variable)

parameters rho_z rho_xi rho_varsigma rho_v alpha beta delta phi varepsilon theta paita paix kappa nu zeta Z RK P K H C I Y W;       % declare parameters

% Parameters

alpha   	= 0.36;				% share of capital in ouput
beta    	= 0.99;				% discount factor
delta  		= 0.05;             % depreciation of capital
phi 		= 1;				% Frisch elasticity parameter
varepsilon	= 10;				% substitutability/mark-up on prices
theta       = 2/3;              % Price stickiness  
paita       = 1.5;              % Taylor rule for Inflation  
paix		= 0.125;			% Taylor rule for Output Gap
kappa       = ((1-theta*beta)*(1-theta)*(alpha+phi))/(1-alpha)*theta;
nu          = (1+phi)/(phi+alpha);


% shock process

rho_z   	= 0.95; 			% productivity 
rho_xi   	= 0.95; 			% Demand Shock
rho_varsigma= 0.95;             % Cost Push Shock
rho_v       = 0.95;             % Policy Shock    


% steady states

zeta        = (varepsilon-1)/varepsilon;
Z           = 1;
RK          = 1/beta;
P           = 1;
K           = (((1-alpha)*zeta*Z*(beta*alpha*zeta*Z)^(alpha/(1-alpha))*beta*alpha*zeta)/(phi*(1-beta*alpha*zeta*delta)*(beta*alpha*zeta*Z)^((1-phi)/(1-alpha))))^(1/phi);
H           = K*(1/(beta*alpha*zeta*Z))^(1/(1-alpha));
C           = K*(1-beta*alpha*zeta*delta)/(beta*alpha*zeta);
I           = K*delta;
Y           = K*(1/(beta*alpha*zeta));
W           = (1-alpha)*Z*zeta*(beta*alpha*zeta*Z)^(alpha/(1-alpha));


%Describe the model

model(linear);
rk          = paita*pai + paix*x + v;                                        % Taylor Rule
psi(+1)     = -(I/Y)*(i(+1)-i);                                              % Investment dynamics
x           = x(+1) - (C/Y)*(rk - pai(+1) - rn) + psi(+1) + xi;              % NKIS
pai         = kappa*x + beta*pai(+1) + varsigma;                             % NKPC
x           = y - yn;                                                        % Output Gap
yn          = nu*(z + alpha*k(-1));                                          % Flex-price Output
y           = z + alpha*k(-1) + (1-alpha)*h;                                 % Output
rn          = (Y/C)*(yn(+1)-yn);                                             % Wicksellian Natural Rate   
k           = (I/K)*i + (1-delta)*k(-1);                                     % Capital Evolution
z           = rho_z*z(-1) + ez;                                              % Productivity  Shock
xi          = rho_xi*xi(-1) + exi;                                           % Demand Shock   
varsigma    = rho_varsigma*varsigma(-1) + evarsigma;                         % Cost Push Shock
v           = rho_v*v(-1) + ev;                                              % Monetary Policy Shock               
end;
check;
steady;

shocks;
var ez;                 stderr 0.01;
var exi;                stderr 0.01;
var evarsigma;          stderr 0.01;
var ev;                 stderr 0.01;
end;



stoch_simul(order=1,irf=50);
