
%%DECLARATION OF ENDOGENOUS VARIABLES
var   lamda c A z k b i r q y;

%%DECLARATION OF EXOGENOUS VARIABLES%%
varexo epsz epsr;

%%DECLARATION OF PARAMETERS
parameters h alp delta eta rhoz rhor sigma theta sigmar betta Phi dPhi;

h=0.12;//target ss hours worked
alp=0.33;
delta=0.0088;
eta=1/15;
rhoz=0.99;
rhor=0.37;
sigma=0.5;
theta=1;
sigmar=0.006;
betta=0.99;
Phi=1; 
dPhi=0;

model;

%%equation 1 
lamda = c^(-theta); 

%%equation 2 
A*(1-h)^(-sigma) = c^(theta)*alp*z*k^(1-alp)*h^(alp-1);

%%equation 3 
q=1/dPhi;
%dPhi=(1/(delta^eta))*((i/k)^(eta+1-1));

%%equation 4
k(+1)=(1-delta)*k+Phi*k;
Phi = (1/((delta^eta)*(eta+1)))*(((i/k)^(eta+1))+eta*delta^(eta+1));

%%equation 5 
b(+1) = z*k^(1-alp)*h^(alp)+b*(1+r)-c-i;

%%equation 6
lamda = betta*(lamda(+1)*(1+r(+1)));

%%equation 7
q=betta*((lamda(+1)/lamda)*(1-alp)*z(+1)*k(+1)^(-alp)*h(+1)^(alp)+q(+1)*(1-delta-dPhi(+1)*(i(+1)/k(+1))+Phi(+1)));

%%equation 8
log(z(+1)) = rhoz*log(z)+epsz(+1);

%%equation 9
log(r(+1))=c+rhor*log(r)+epsr(+1);

%%equation 10 
%y=z*k^(1-alp)*h^(alp);

end;

%%coefficients 
yk=((1/betta)+delta-1)/(1-alp);
%cy=1+(b/y)*r-delta*k/y;
ky=(1-alp)/((1/betta)+delta-1);
by=-0.005;
hk=yk^(1/alp);


%%ANALYTICAL STEADY-STATE COMPUTATION
initval;
c=k^(1-alp)*h^(alp)+b*r-i;
i=delta*k;
lamda = c^(-theta);
A=(1-h)^(delta)*(1-delta*(ky)- by*r)^(-theta)*(1-alp)*h^(-theta)*(y/h)^(1-theta);
q=1;
z=1;
r=1/betta;
y=z*k^(1-alp)*h^(alp);

end; 

%%SPECIFICATION OF SHOCKS
shocks;
var epsz; stderr 1;
var epsr; stderr 1;
end;


steady;

check;


stoch_simul(order=1,irf=40) y c i k r b;

