%variables
var
y %output tilde, where tilde is the gap from the natural rate
k %capital tilde
psi %quality of capital
r %real interest rate
rn %natural interest rate
Pi %inflation
a %productivity
y_f %natural level of output
k_f %natural level of capital
q %price of capital
q_f
inv %investment tilde
inv_f %natural level of investments
theta_hat %leverage ratio
nw %net worth
s_p %total securities tilde
s
v_hat 
mu_hat
Omega_hat
r_k
z_hat
z_fhat
s_g
d_hat
varrho_hat
phi_ct
qnom
r_fk 
theta_fhat nw_f s_fp s_f v_fhat mu_fhat Omega_fhat s_fg d_fhat varrho_fhat phi_fct
spread_t
k_aux
Delta_f_aux
Delta_f_aux_lead
r_f
spread_ft
spread_net
k_net
i_net
y_net
r_knet
q_net
nw_net
r_tilde;

varexo
e_a %stochastic component of productivity
e_psi; %stochastic component of quality of capital

parameters
beta %static discount factor
alpha %capital share
varphi %Frisch inverse elasticity of labour
delta %depreciation of capital
gamma %elasticity of substitution among the differentiated goods (to match the markup)
M %markup
chi %parameter in convex adjustment cost function
Psi %steady-state of quality of capital shock
A %steady-state of productivity shock
Q %price of new-capital good (tobin's q) steady-state, calculated from capital good producers optimal decision
phi %price flexibility value of real marginal cost (inverse of mark-up)
omega %degree of nominal price rigidity, to match quarterly data
rho_a %degree of autocorrelation, productivity shock
rho_psi %degree of autocorrelation, capital quality shock
sigma %survival rate of bankers
xi %transfer to entering bankers, perfect interbank
lambda %fraction of divertable assets
theta %levarage ratio, fixed according Gerlter Kiyotaki/ Gertler Karadi 
R %real interest rate steady state
Qnom %from fischer equation, steady state value of nominal interest rate determination
Omega
mu %excess value 
V
R_k %steady state value of intrabanking rate
Z %steady state value of Z
yk %ratios useful to calculate the steady state of quantity variables (like RBC)
ck 
N %steady state of employment
K %steady state of capital
Y %steady state of output
C %steady state of consumption
S_p %steady state of private securities
S_g
S
NW %steady state of net worth
I %steady state of investments
D %steady state of deposits
rho_q %smoothing parameter of interest rate
kappa_pi %taylor rule weight on inflation
kappa_y %taylor rule weight on output 
kappa_varrho %credit policy parameter
kappa_varrhof %credit policy parameter
varrho %steady state of credit policy tool
kappa_i
kappa_k
kappa_yi
kappa_yk
delta_1
delta_2
delta_3
delta_4
delta_5
delta_6
delta_7
delta_8
delta_p %elasticity of inflation wrt the real marginal cost
nwk
dk
spread;

%Parameter values

beta=0.99; %static discount factor
R=1/beta; %euler equation
nwk=0.2437;
Omega=1.3433;
R_k=1.0120;

theta=4.1029;
mu= 0.0026;
dk=1-nwk;

spread=R_k-R;
sigma=0.97; %survival rate of bankers
xi=0.003; %transfer to entering bankers, perfect interbank

lambda=0.33; %fraction of divertable assets
kappa_pi=1.5;
kappa_y=0.5/4;
kappa_i=0;
kappa_k=0;
kappa_yi=0;
kappa_yk=0;
kappa_varrho=0;
kappa_varrhof=0;

rho_a=0.95;
rho_psi=0.66;
rho_q=0.2;
varrho=0.1;

Qnom=R-1; %Fischer equation
alpha=0.33; %capital share
varphi=0.1; %Frisch inverse elasticity of labour
delta=0.025; %depreciation of capital
gamma=6; %elasticity of substitution among the differentiated goods (to match the markup)
M=gamma/(gamma-1); %markup

omega=0.75; %degree of nominal price rigidity, to match quarterly data
delta_p=((1-omega*beta)*(1-omega)/(omega)); %elasticity of inflation wrt the real marginal cost

%steady-state values
chi=1; %parameter in convex adjustment cost function
Psi=1; %steady-state of quality of capital shock
A=1; %steady-state of productivity shock
Q=1; %price of new-capital good (tobin's q) steady-state, calculated from capital good producers optimal decision
phi=1/M; %price flexibility value of real marginal cost (inverse of mark-up)

V=Omega;
Z=(R_k - (1-delta))*Q;
yk=(1/(alpha*phi))*Z;
ck=yk - delta;
N=(phi*(1-alpha)*yk*(ck)^(-1))^(1/(1+varphi));
K=N*(yk)^((-1/(1-alpha)));
I=delta*K;
C=ck*K;
Y=yk*K;
S=K;
NW=nwk*K;
%dk=1-nwk;
D=dk*K;

S_p=(1-varrho)*S;
S_g=S-S_p;

delta_1 = (gamma/2)*(delta_p/(1-delta_p));
delta_2 = (1/2)*(Y/C)*(((alpha+varphi)/(1-alpha)));
delta_3 = (1/2)*(I*Y)/(C^2);
delta_4 = (1/2)*((1+varphi)/(1-alpha))*(alpha^2)*(Y/C);
delta_5 = (alpha*Y/C)*((1+varphi)/(1-alpha));
delta_6=2*delta_3;
delta_7=(K*Y)/(C^2);
delta_8=(alpha*Y)/C;

model (linear);

%standard equations of NK with capital

%auxiliary variables
k_aux=k(-1);
Delta_f_aux=y_f - inv_f;
Delta_f_aux_lead=Delta_f_aux(+1);

%measure of variables_extra
k_net = k + k_f; 
i_net = inv + inv_f;
y_net = y + y_f;
r_knet = r_k + r_fk;
q_net = q + q_f;
nw_net = nw + nw_f;
r_tilde = r - r_f;

%spread

spread_t = ((R_k/spread)*r_k(+1) - (R/spread)*r_tilde(+1))/100;
spread_ft = ((R_k/spread)*r_fk(+1) - (R/spread)*r_f(+1))/100;
spread_net = spread_t + spread_ft;

%dynamic IS with capital (deviations from natural rate)
y=y(+1)-I/Y*(inv(+1)-inv)- (r - rn);

%natural interest rate
rn=y_f(+1)-y_f- I/Y*(inv_f(+1)-inv_f);

%flexible price equilibrium
(((alpha+varphi)/(1-alpha))+(Y/C))*y_f=(I/C)*inv_f + ((alpha*(1+varphi))/(1-alpha))*k_f(-1) + ((1+varphi)/(1-alpha))*a;

%NKPC with capital (deviations from natural rate)
Pi=beta*Pi(+1) + delta_p*(((Y/C)+((alpha+varphi)/(1-alpha)))*y - (I/C)*inv - ((alpha*(1+varphi))/(1-alpha))*k(-1));

%Fischer equation
r=qnom - Pi(+1);

%Interest rate rule(Taylor), characterisation of monetary policy
qnom=rho_q*qnom(-1) + (1-rho_q)*(kappa_pi*Pi + kappa_y*y + kappa_i*inv + kappa_k*k);

%law of motion of capital efficient
inv_f=(1/delta)*(k_f-(1-delta)*k_f(-1) - psi(+1));
inv=(1/delta)*k-((1-delta)/(delta))*k(-1);

%AR(1) technology shock
a=rho_a*a(-1)-e_a;

%asset price  determination
q=chi*(inv-inv(-1))-beta*chi*(inv(+1)-inv);
q_f=chi*(inv_f-inv_f(-1))-beta*chi*(inv_f(+1)-inv_f);

%Demand for total bank assets
q+s=phi_ct+nw;
phi_ct=theta_hat+((varrho)/(1-varrho))*varrho_hat;

q_f + s_f=phi_fct + nw_f;
phi_fct=theta_fhat+((varrho)/(1-varrho))*varrho_fhat;

%determination of gross earnings from capital
z_hat=(Y/C+((1+varphi)/(1-alpha)))*y-(I/C)*inv-((1+(alpha*varphi))/(1-alpha))*k(-1);
z_fhat=y_f-k_f(-1);

%determination of leverage ratio net of interbank borrowing, theta_hat
theta_hat=v_hat+(mu/(lambda-mu))*mu_hat;
theta_fhat=v_fhat+(mu/(lambda-mu))*mu_fhat;

%linearity condition 1
v_hat=Omega_hat(+1);
v_fhat=Omega_fhat(+1);

%linearity condition 2
mu_hat=((Omega*beta*R_k)/mu)*r_k(+1) - (((Omega*beta*R)/mu)+1)*r(+1) + Omega_hat(+1);
mu_fhat=((Omega*beta*R_k)/mu)*r_fk(+1) - (((Omega*beta*R)/mu)+1)*r_f(+1) + Omega_fhat(+1);

%marginal value of net worth
Omega_hat=((sigma*V)/Omega)*v_hat + ((sigma*theta*mu)/Omega)*(theta_hat+mu_hat);
Omega_fhat=((sigma*V)/Omega)*v_fhat + ((sigma*theta*mu)/Omega)*(theta_fhat+mu_fhat);

%gross rate of return on bank assets
r_k = - q(-1) + (Z/R_k)*z_hat + ((1-delta)/R_k)*q;
r_fk = psi - q_f(-1) + (Z/R_k)*z_fhat + ((1-delta)/R_k)*q_f;

%Total securities on investing and non investing islands
s=k;
s_f=k_f;

%deposits
d_hat=(Q*S/D)*(q + s_p) - (NW/D)*nw;
d_fhat=(Q*S/D)*(q_f + s_fp) - (NW/D)*nw_f;

%law of motion of net worth

nw=(sigma+xi)*(R_k*Q*S/NW)*(r_k + q(-1) + s_p(-1)) - ((sigma*R*D)/NW)*(r + d_hat(-1));
nw_f=(sigma+xi)*(R_k*Q*S/NW)*(r_fk + q_f(-1) + s_fp(-1)) - ((sigma*R*D)/NW)*(r_f + d_fhat(-1));

r_f=rn;

%credit policy
s_g= varrho_hat + s;
s=(S_p/S)*s_p+(S_g/S)*s_g;
%varrho_hat=kappa_varrho*(spread_t);

varrho_hat=kappa_varrho*(spread_net);

s_fg=varrho_fhat + s_f;
s_f=(S_p/S)*s_fp+(S_g/S)*s_fg;
varrho_fhat=kappa_varrhof*(spread_ft);

%AR(1) quality of capital shock
psi=rho_psi*psi(-1) - e_psi;

end;

shocks;
var e_psi;
stderr 0.05;
end;

planner_objective(delta_1*(Pi^2) + delta_2*(y^2) + delta_3*(inv^2) + delta_4*(k_aux)^2 - delta_5*y*k_aux - delta_6*y*inv - delta_7*k*Delta_f_aux + delta_7*k*Delta_f_aux_lead -delta_8*k_aux*Delta_f_aux);
%ramsey_policy(planner_discount=0.99);
discretionary_policy(planner_discount=0.99, instruments=(r));
stoch_simul (irf=0);
oo_.planner_objective_value
 