var y c q v m lam pi R theta f u u_m n J w A phi LC er sig X; 

varexo mua mur;

parameters eta mu m_zero rho_zero sigma_a rhoa kappa_v beta gamma sigma kappa_p epsilon_p 
 phipi phiy Rs ys sigma_r rhoer b us vs ms fs qs As phis lams cs thetas 
ns ws pis rhor Js LCs sigs Xs phic;

load parameter_mainlininput4;

set_param_value('sigs',sigs);

set_param_value('Xs',Xs);

set_param_value('phic',phic);
set_param_value('Js',Js);
set_param_value('LCs',LCs);
set_param_value('thetas',thetas);
set_param_value('b',b);
set_param_value('phipi',phipi);
set_param_value('phiy',phiy);
set_param_value('rhoer',rhoer);
set_param_value('eta',eta);
set_param_value('rhor',rhor);
set_param_value('sigma_r',sigma_r);
set_param_value('sigma_a',sigma_a);
set_param_value('rho_zero',rho_zero);
set_param_value('mu',mu);
set_param_value('m_zero',m_zero);
set_param_value('rhoa',rhoa);
set_param_value('kappa_p',kappa_p);
set_param_value('kappa_v',kappa_v);
set_param_value('epsilon_p',epsilon_p);
set_param_value('beta',beta);
set_param_value('gamma',gamma);
set_param_value('sigma',sigma);
set_param_value('us',us);
set_param_value('ns',ns);
set_param_value('vs',vs);
set_param_value('ms',ms);
%set_param_value('u_ms',u_ms);
set_param_value('fs',fs);
set_param_value('qs',qs);
set_param_value('ys',ys);
set_param_value('As',As);
set_param_value('phis',phis);
set_param_value('pis',pis);
set_param_value('lams',lams);
set_param_value('Rs',Rs);
set_param_value('ws',ws);
set_param_value('cs',cs);


model;
%(1) equation ressource constraint
exp(y)=exp(c);   %% logiquement y=c+kappa_v*v
%(2) mt
exp(m)=exp(q)*exp(v);
%(3) cpo c household
exp(lam)=exp(c)^(-sigma);
%(4) cpo d Euler eq
exp(lam)=beta*R*exp(lam(+1))/exp(pi(+1));
%(5) employment low of motion
exp(n)=(1-rho_zero)*exp(n(-1))+exp(q)*exp(v);
%(6) Total number of job seekers
exp(u)=1-(1-rho_zero)*exp(n(-1));
%(7) unemployment rate
exp(u_m)=1-exp(n);
%(8) tigtness
exp(theta)=exp(v)/exp(u);
%(9) job finding rate
exp(f)=m_zero*(exp(theta)^(1-mu));
%(10) vacancy filling rate
exp(q)=m_zero*exp(theta)^(-mu);
%(11) hiring decision  %%changed
kappa_v/exp(q)=exp(phi)*(1-phic)*exp(A)*(exp(sig)^(phic))*(exp(n)^(-phic))
-(1-gamma+gamma*R)*exp(w)+(1-rho_zero)*beta*(exp(lam(+1))/exp(lam))*(kappa_v/exp(q(+1)));

%(12) J
exp(J)=kappa_v/exp(q);
%(13) production function %%changed
exp(X)=exp(A)*(sig^(phic))*(exp(n)^(1-phic));
%(14) productivity shock
exp(A)=(exp(A(-1))^(rhoa))*exp(mua);
%(15)pi  %%changed
 epsilon_p*(1-exp(phi))=1-kappa_p*(exp(pi)-pis)*exp(pi)
+beta*(exp(lam(+1))/exp(lam))*kappa_p*(exp(pi(+1))-pis)*exp(pi(+1))*(exp(X(+1))/exp(X));
%(16) wage  %%changed
(1-gamma+gamma*R)*exp(w)=eta*exp(phi)*exp(A)*(1-phic)*(exp(sig)^(phic))*(exp(n)^(-phic))
+(1-gamma+gamma*R)*(1-eta)*b
+eta*(1-rho_zero)*beta*(exp(lam(+1))/exp(lam))*(kappa_v/exp(q(+1)))
-eta*(1-gamma+gamma*R)*beta*(exp(lam(+1))/exp(lam))
*((1-rho_zero)*(1-exp(f(+1)))/(1-gamma+gamma*R(+1)))*(kappa_v/exp(q(+1)));
%(17) Taylor rule:
(R/Rs)=(((R(-1))/Rs)^(rhor))*((((exp(pi)/pis)^(phipi))*(exp(y)/ys)^(phiy))^(1-rhor))
*exp(er);
%(18)monetary shock
exp(er) = exp(er(-1))^(rhoer)*exp(mur);
%(19)
exp(LC)=(1-gamma+gamma*R)*exp(w);
%eq(20) cpo sig
(1-gamma+gamma*R)=phic*exp(phi)*exp(A)*(exp(sig)^(phic-1))*(exp(n)^(1-phic));
%21 aggregate output
exp(y)=exp(X)-exp(sig);
end;

initval;
sig=log(sigs);
X=log(Xs);
u=log(us);
J=log(Js);
LC=log(LCs);
theta=log(thetas);
n=log(ns);
v=log(vs);
m=log(ms);
u_m=log(u_ms);
f=log(fs);
q=log(qs);
y=log(ys);
A=log(As);
phi=log(phis);
pi=log(pis);
lam=log(lams);
w=log(ws);
c=log(cs);
er=0;
R=Rs;

end;

resid(1)
steady;
check;

shocks;

var mua= sigma_a^2;

var mur= sigma_r^2;

end;
stoch_simul(order=1,irf=20,nograph,hp_filter=1600);
