%% Endogenous variables and exogenous shocks
var c H m mct q u v i k rk w d tax y lc lh l z n rf g TI gdp b Rl;
varexo  A e Rd f;

%% Parameterisation

parameters beta rho alpha delta theta gamma zeta xi phi psi s
beta=0.90;
rho=0.95;
alpha=0.48;
delta=0.025;
theta=5.5;
gamma=0.80;
zeta=0.5;
xi=0.08;
phi=0.05;
psi=0.25;
s=0.25.

%% Model
model;
rk=1/beta-(1-delta);
b=(theta-1)/theta;
u=beta/(1-Rd);
v=u;
y=[A*(((1-psi)*alpha)/(b*rk))^((1-psi)*alpha)*(psi/(b*Rl))^psi]^(1/((1-alpha)*(1-psi)));
k(+1)=(1-psi)*alpha*b*y/rk;
w=(1-psi)*(1-alpha)*b*y;
lc=psi*b*y/Rl;
i=delta*k;
lh=(rho*w)/((1-xi)*(1-rho)*Rl);
H=A*(lh^rho)*f^(xi*(1-rho));
q=w/((1-xi)*(1-rho)*H);
rf=(beta*xi*(w/(1-xi)))/f;
l=lc+lh;
n=(phi+s)*l;
z=zeta*l;
d=(l-z)/(1-e);
c=(H^(-gamma)/q)^(-1/sigma);
mc=((c^sigma)/Rd)^(1/chi);
m=mc+d;
TI=i+n-s*l;
g=y-TI-c;
tax=g-rf*f ;
gdp=y+q*H;
Rl=(phi+Rd*((1-xi)/(1-e)))/(1-phi);

end;

%% Initial calibration
initval;
c=0;
H=0;
m=0;
mct=0;
q=0;
u=0;
v=0;
i=0;
k=0;
rk=0;
w=0;
d=0;
tax=0;
y=0;
lc=0;
lh=0;
l=0;
z=0;
n=0;
rf=0;
g=0;
TI=0;
gdp=0;
b=0;
Rd=0;
Rl=0;
A=0;
e=0;
f=0;
end;


// Declare shocks in period 1
shocks;
var A stderr 0.02;
var e stderr 0.063;
var Rd stderr 0.0018
var f  stderr 0.46;
end;

// Check that this is indeed the steady state
steady;

// Check the Blanchard-Kahn conditionscheck;
check;

stoch_simul;























