%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 0. Housekeeping
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clc;
close all;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 1. Variables
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

var  y c i k l r z;
varexo e;

parameters alpha beta delta eta psi rho stde
           kbar lbar rbar ykbar ybar cbar ibar zbar;
alpha=0.36;
beta=1/1.01;
delta=0.025;
eta=1.0;
rho=0.95;
stde=0.00712;
lbar=1/3;
rbar=1.01;
ykbar=(rbar+delta-1)/alpha;
kbar=ykbar^(1/(alpha-1))*lbar;
ibar=delta*kbar;
ybar=ykbar*kbar;
cbar=ybar-ibar;
psi=cbar^(-eta)*(1-alpha)*ybar/lbar;
zbar=1;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 2. Model
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
model;
 c+i=y;
 k=(1-delta)*k(-1)+i;
 y=z*k(-1)^alpha*l^(1-alpha);
 psi=c^(-eta)*(1-alpha)*y/l;
 r=alpha*y/k(-1)+1-delta;
 c^-eta=beta*c(+1)^-eta*r(+1);
 log(z)=(1-rho)*log(zbar)+rho*log(z(-1))+e;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 3. Computation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
initval;
 k=kbar;
 l=lbar;
 y=ybar;
 c=cbar; 
 i=ibar; 
 r=rbar; 
 z=zbar; 
end;
steady;
check;
shocks;
var e; stderr stde;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 4. Simulation
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

stoch_simul(order=1, hp_filter=1600) y c i r l;