var c l d w g rts c1t k b f rtk rtf ltv y a x rt pie;
varexo eta_g eta_rtf eta_a eta_rt eta_ltv;
parameters beta sigma fai kai s alpha delta Rr Rpai Ry theta failtv fai3c fai2c rhoa rhog rhortf rhort rholtv;
beta=0.98;
sigma=2;
mu=1;
fai=2;
kai=0.95;
s=0.12;
alpha=0.64;
delta=0.025;
Rr=0.5;
Rpai=0.5;
Ry=0.5;
theta=0.75;
failtv=0.9;
fai3c=0.9;
fai2c=0.9;
rhoa=0.5;
rhog=0.5;
rhortf=0.5;
rhort=0.5;
rholtv=0.5;
model;
//family
exp(l)^fai=exp(w)/(exp(c)^(sigma));
exp(rts)=exp(c(+1))^sigma*exp(pie(+1))/(beta*exp(c)^sigma);
//enterpiser
-1/exp(c1t)+kai*1/exp(c1t(+1))*((1-delta)+exp(rtk(+1)))=0;
exp(pie(+1))/exp(c1t)-kai*exp(rt)/exp(c1t(+1))=exp(rt)*(1/exp(c1t)-kai*exp(rtf(+1))/exp(c1t(+1)))/(kai*exp(ltv));
exp(b)*exp(rt)=exp(ltv)*exp(f(+1))*exp(pie(+1));
//banks
exp(rt)=(1-s)*exp(rts)+s*exp(rtk);
//firms
exp(y)=exp(a)*exp(k(-1))^alpha*exp(l(-1))^(1-alpha);
exp(rtk)=alpha*exp(y)/exp(k(-1))*exp(x);
exp(w)=(1-alpha)*exp(y)/exp(l(-1))*exp(x);
//demand
exp(y)=exp(c)+exp(c1t)+exp(k)-(1-delta)*exp(k(-1))+exp(g);
//central bank
exp(pie)=beta*(exp(pie(+1)))-(1-theta)*(1-beta*theta)/theta*exp(x);
exp(rt)=Rr*exp(rt(-1))+(1-Rr)*((1+Rpai)*exp(pie(-1))+Ry*exp(y(-1)));
//endogenous ltv
exp(ltv)=exp(ltv(-1))*failtv+(exp(y)/exp(y(-1)))*fai3c+(exp(b)/exp(b(-1)))^fai2c;
//shocks
exp(a)=rhoa*exp(a(-1))+eta_a;
exp(rtf)=rhortf*exp(rtf(-1))+eta_rtf;
exp(ltv)=rholtv*exp(ltv(-1))+eta_ltv;
exp(g)=rhog*exp(g(-1))+eta_g;
exp(rts)=rhort*exp(rts(-1))+eta_rt;
end;
initval;
c=0;
l=0;
d=0;
w=0;
g=0;
rts=0;
c1t=0;
k=0;
b=0;
f=0;
rtk=0;
rtf=0;
ltv=0;
y=0;
a=0;
x=0;
rt=0;
pie=0;
eta_g=0;
eta_rtf=0;
eta_a=0;
eta_rt=0;
eta_ltv=0;
end;
steady;
shocks;
var eta_g=1;
var eta_rtf=1;
var eta_a=1;
var eta_rt=1;
var eta_ltv=1;
end;
stoch_simul(order=1,irf=50);