% Basic RBC Model 
%
% nuevo modelo tradables 26 de enero 2009
%

%----------------------------------------------------------------
% 0. Housekeeping (close all graphic windows)
%----------------------------------------------------------------

close all;

%----------------------------------------------------------------
% 1. Defining variables
%----------------------------------------------------------------

var ctr cn y pn k w ca ltr l gtr gn p niu a;
varexo m j h;

parameters beta delta alpha gamma omega lamda yp rstar epsilon;

%----------------------------------------------------------------
% 2. Calibration
%----------------------------------------------------------------

alpha   = 0.4;
beta    = 0.99;
delta   = 0.085;
epsilon = 0.6;
gamma   = 0.94;
omega  =0.9;
lamda  =0.9;
desvest = 0.23;
yp = 1.3;
rstar = 0.0654;
%----------------------------------------------------------------
% 3. Model
%----------------------------------------------------------------

model; 
  rstar=(alpha*a*k^(alpha-1)*ltr^(1-alpha))-delta;
  (1/pn)=(niu/w);
  w=(a*k^(alpha)*ltr^(-alpha))*(1-alpha);
  ctr=beta*(1+rstar)*ctr(-1);
  cn=(niu/((a*k^(alpha)*ltr^(-alpha))*(1-alpha))*epsilon*ctr);
  ctr+pn*cn=w+rstar*k+p*yp-k(+1)+(1-delta)*k+ca-gtr-pn*gn;
  p*yp=gtr+pn*gn;
  y=p*yp+(a*k^(alpha)*ltr^(1-alpha))+niu*l;
  ca=(a*k^(alpha)*ltr^(1-alpha))-ctr-k(+1)+(1-delta)*k-gtr;
  niu*l=cn+gn;
  ltr+l=1;
  p = gamma*p(-1)+m;
  a= omega*a(-1)+j;
  niu= lamda*niu(-1)+h;
end;

%----------------------------------------------------------------
% 4. Computation
%----------------------------------------------------------------

initval;
  k = 3.7;
  ctr = 0.4229;
  cn = 0.4144;
  gtr = 0.0859;
  gn = 0.0288;
  ca = 0.0017;
  w = 14.6;
  ltr = 0.3;
  l=0.7;
  m = 0;
  j = 0;
  h = 0;
  p = 0.2327;
  a = 0.2;
  niu = 0.2;
  pn =0.01369863;
end;

shocks;
var m = desvest^2;
var j = desvest^2;
var h = desvest^2;
end;

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);
table('Relative standard deviations in %',strvcat('VARIABLE','REL. S.D.'),lgy_(1:6,:),statistic1,10,8,4);

