%----------------------------------------------------------------
% 0. Housekeeping (close all graphic windows)
%----------------------------------------------------------------

close all;

%----------------------------------------------------------------
% 1. Defining variables
%----------------------------------------------------------------

var c p y r i m h A epsilon;
varexo e_a e_epsilon;

parameters beta theta lambda rho phi_p phi_y rho_a rho_epsilon sigma_a sigma_epsilon;

%----------------------------------------------------------------
% 2. Calibration
%----------------------------------------------------------------
beta = 0.99;
theta = 0.1;
lambda = 0.5;
rho = 1/beta-1;
phi_p = 1.5;
phi_y = 0.5/4;
rho_a = 0.95;  
rho_epsilon = 0.95;
sigma_a = 0.01;
sigma_epsilon = 0.01;
%----------------------------------------------------------------
% 3. Model
%----------------------------------------------------------------

model; 
//Consumption Euler Equation
    (1/c) = beta*(1/c(+1))*(1+i)*(p/p(+1)); 
//Money Demand   
    1/m/(1/c) = i/(1+i);
//Real Interest Rate                    
    1+r = (1+i)*p/p(+1);                     
//Output  
    y = A*h;
//AS equation                                 
    (theta-1)/theta = 1/h/(A*(1/c)); 
//Calvo Pricing      
    p = beta*(lambda*p(-1)+(1-lambda)*p(+1));
// Taylor Rule
    i = rho+phi_p*p+phi_y*y; 
//Shocks
    A = rho_a*A(-1)+e_a;                      
    epsilon = rho_epsilon*epsilon(-1)+e_epsilon;
end;

%----------------------------------------------------------------
% 4. Computation
%----------------------------------------------------------------

%----------------------------------------------------------------
%initval;
  %c = 1;
  %h = 1;
  %p = 1; 
  %i = 0.04;
  %r = 0.04;
%end;
%-----------------------------------------------------------------
shocks;
var e_a = sigma_a^2;
var e_epsilon = sigma_epsilon^2;
end;

check;
steady;

stoch_simul(hp_filter = 1600, order = 1);

%----------------------------------------------------------------
% 5. Some Results
%----------------------------------------------------------------

%statistic1 = 100*sqrt(diag(oo_.var(1:6,1:6)))./oo_.mean(1:6);
%dyntable('Relative standard deviations in %',strvcat('VARIABLE','REL. S.D.'),M_.endo_names(1:6,:),statistic1,10,8,4);
