%----------------------------------------------------------------
% 0. Housekeeping (close all graphic windows)
%----------------------------------------------------------------

close all;

%----------------------------------------------------------------
% 1. Defining variables
%----------------------------------------------------------------

var y c k i l y_l A StdA;
varexo eA eStdA;

parameters beta psi delta alpha 
           rhoA       StdeA       A_ss
           rhoStdA    StdeStdA    StdA_ss;
%----------------------------------------------------------------
% 2. Calibration
%----------------------------------------------------------------

alpha   = 0.33;
beta    = 0.99;
delta   = 0.023;
psi     = 1.75;
rho     = 0.95;  
sigma   = (0.007/(1-alpha));

rhoA    = 0.95;
StdeA   = (0.007/(1-alpha));
A_ss    = 0;

rhoStdA  = 0.3;
StdeStdA = 0.01;
StdA_ss  = 1;

%----------------------------------------------------------------
% 3. Model
%----------------------------------------------------------------

model; 
  (1/c) = beta*(1/c(+1))*(1+alpha*(k^(alpha-1))*(exp(A(+1))*l(+1))^(1-alpha)-delta);
  psi*c/(1-l) = (1-alpha)*(k(-1)^alpha)*(exp(A)^(1-alpha))*(l^(-alpha));
  c+i = y;
  y = (k(-1)^alpha)*(exp(A)*l)^(1-alpha);
  i = k-(1-delta)*k(-1);
  y_l = y/l;
  A = rhoA*A(-1)+ StdA*StdeA*eA;
  StdA = StdA_ss/(1-rhoStdA) + rhoStdA*StdA(-1) + StdeStdA*eStdA;
end;

%----------------------------------------------------------------
% 4. Computation
%----------------------------------------------------------------

initval;
  k = 9;
  c = 0.76;
  l = 0.3;
  A = 0; 
  eA = 0;
  A = A_ss;
  StdA = StdA_ss;

end;

shocks;
var eA = 1;
var eStdA = 1;
end;

steady;

stoch_simul(order=3,nomoments, nocorr, nograph);

