
var c k y g h u z y_h i w r lb;
predetermined_variables k;
varexo eps_z eps_g;

parameters mu_g sigma rho_g delta psi alpha rho_z beta chi;

% Parameter Values 

beta = 0.95;        % Discount factor
psi = 2;            %Inverse of labor supply elasticity
alpha = 0.68;       %capital elasticity
sigma = 2;          %Intertemporal elasticity of subst 
delta = 0.05;       %depreciation rate
mu_g = log(1.0066);
rho_z = 0.95;
rho_g = 0.01;

% Compute Steady State Values
Rbar=1/beta*exp(mu_g)^(-sigma)-(1-delta)
KHbar=((1-beta*exp(mu_g)^(-sigma)*(1-delta))/(1-alpha)*beta*exp(mu_g)^(-sigma)*exp(mu_g)^alpha)^(-1/alpha)
KYbar=(1-alpha)*exp(mu_g)/Rbar
IYbar=KYbar*(1-(1-delta)*exp(mu_g)^(-1))
CYbar=1-IYbar
Hbar=1
Ybar=KYbar^(1-alpha)/alpha*Hbar*exp(mu_g)^(alpha-1)/alpha
Cbar=CYbar*Ybar
Ibar=IYbar*Ybar
Kbar=KYbar*Ybar
Wbar=alpha*Ybar/Hbar
Lbbar=Cbar^(-sigma)
Chi=Lbbar*Wbar*Hbar^(-psi)

Model;
lb = c^(-sigma);    %consumption
chi*h^psi = lb*w;   %labor supply
lb = beta*lb(+1)*(1+r(+1)-delta);  %euler equation
k(+1)=i+(1-delta)*k;  %capital accumulation
y = c + i;   %market clearing
y = exp(z)*k^(1-alpha)*(exp(g)*h)^alpha; %production function
w = exp(z)*alpha*k^(1-alpha)*h^(alpha-1)*exp(g)^alpha;  %labor demand
r = exp(z)*(1-alpha)*k^(-alpha)*(exp(g)*h)^alpha;  %capital demand
z = rho_z*z(-1)+eps_z; %temporary shock
g = (1-rho_g)*mu_g+rho_g*g(-1)+eps_g;  %permanent shock
u = c^(1-sigma)/(1-sigma)-chi*h^(1+psi)/(1+psi);
y_h = y/h;
end; 
 

initval;
z = 0;
g = mu_g;
y = Ybar;
c = Cbar;
i=Ibar; 
k = Kbar;
h = Hbar;
lb=Lbbar;
w=Wbar;
r = Rbar;
u = (c^(1-sigma)/(1-sigma)-chi*h^(1+psi)/(1+psi));
y_h=y/h;
end;

shocks;
var eps_g; stderr 1; 
var eps_z; stderr 1;
end;
resid(1);
steady;

check;

stoch_simul(order=1);

