%debt elastic interest rate premium:model(1)

 

var  c h y i k a lambda ${\lambda}$ util;  
varexo e;                                                                           
parameters  gamma ${\gamma}$
            omega ${\omega}$
            rho ${\gamma}$
            sigma_tfp ${\sigma_{a}}$
            delta ${\delta}$
            psi_2 ${\psi_2}$
            alpha ${\alpha}$
            phi ${\phi}$
            psi_3 ${\psi_3}$
            psi_4 ${\psi_4}$
            r_bar ${\bar r}$
            d_bar ${\bar d}$;
            
gamma  = 2; 
omega  = 2.5; 
alpha  = 0.4; 
phi    = 0.028; 
r_bar    = 0.04; 		
delta  = 0.139; 
rho    = 0.75; 
sigma_tfp = 0.009; 
psi_2    = 0.000742;
d_bar  = 0.7442;
psi_3  = 0.00074; 
psi_4  = 0; 
var d tb_y, ca_y, r riskpremium;
parameters beta ${\beta}$;
model;
    d = (1+exp(r(-1)))*d(-1)- exp(y)+exp(c)+exp(i)+(phi/2)*(exp(k)-exp(k(-1)))^2;
    exp(y) = exp(a)*(exp(k(-1))^alpha)*(exp(h)^(1-alpha));
    exp(k) = exp(i)+(1-delta)*exp(k(-1)); 
    exp(lambda)= beta*(1+exp(r))*exp(lambda(+1)); 
    (exp(c)-((exp(h)^omega)/omega))^(-gamma)   = exp(lambda);  
    ((exp(c)-((exp(h)^omega)/omega))^(-gamma))*(exp(h)^(omega-1))  = exp(lambda)*(1-alpha)*exp(y)/exp(h); 
    exp(lambda)*(1+phi*(exp(k)-exp(k(-1)))) = beta*exp(lambda(+1))*(alpha*exp(y(+1))/exp(k)+1-delta+phi*(exp(k(+1))-exp(k))); 
    a = rho*a(-1)+sigma_tfp*e; 
    exp(r) = r_bar+riskpremium;
    riskpremium = psi_2*(exp(d-d_bar)-1);
    tb_y = 1-((exp(c)+exp(i))/exp(y));
    ca_y = (1/exp(y))*(d(-1)-d);                                   
    util=(((exp(c)-omega^(-1)*exp(h)^omega)^(1-gamma))-1)/(1-gamma);
end;
steady_state_model;
    beta  = 1/(1+r_bar);
    r     = log((1-beta)/beta);
    d     = d_bar;
    h     = log(((1-alpha)*(alpha/(r_bar+delta))^(alpha/(1-alpha)))^(1/(omega-1)));
    k     = log(exp(h)/(((r_bar+delta)/alpha)^(1/(1-alpha))));
    y     = log((exp(k)^alpha)*(exp(h)^(1-alpha)));
    i     = log(delta*exp(k));
    c     = log(exp(y)-exp(i)-r_bar*d);
    tb_y    = 1-((exp(c)+exp(i))/exp(y));
    util=(((exp(c)-omega^(-1)*exp(h)^omega)^(1-gamma))-1)/(1-gamma);
    lambda= log((exp(c)-((exp(h)^omega)/omega))^(-gamma));
    a     = 0;
    ca_y    = 0;
    riskpremium = 0;
end;
resid(1);
check;
steady; 
shocks;
    var e; stderr 1;
end;





%portfolio holding costs:model(2)

var  c h y i k a lambda ${\lambda}$ util;  
varexo e;                                                                                
parameters  gamma ${\gamma}$
            omega ${\omega}$
            rho ${\gamma}$
            sigma_tfp ${\sigma_{a}}$
            delta ${\delta}$
            psi_2 ${\psi_2}$
            alpha ${\alpha}$
            phi ${\phi}$
            psi_3 ${\psi_3}$
            psi_4 ${\psi_4}$
            r_bar ${\bar r}$
            d_bar ${\bar d}$;
            
gamma  = 2; 
omega  = 2.5; 
alpha  = 0.4; 
phi    = 0.028; 
r_bar    = 0.04; 		
delta  = 0.139; 
rho    = 0.75; 
sigma_tfp = 0.009; 
psi_2    = 0.000742;
d_bar  = 0.7442;
psi_3  = 0.00074; 
psi_4  = 0; 
var d tb_y, ca_y, r;
parameters beta ${\beta}$;
model;
    d = (1+exp(r(-1)))*d(-1)- exp(y)+exp(c)+exp(i)+(phi/2)*(exp(k)-exp(k(-1)))^2+psi_3*(d-d_bar)^2;
    exp(y) = exp(a)*(exp(k(-1))^alpha)*(exp(h)^(1-alpha));
    exp(k) = exp(i)+(1-delta)*exp(k(-1)); 
    exp(lambda)*(1-psi_3*(d-d_bar))= beta*(1+exp(r))*exp(lambda(+1)); 
    (exp(c)-((exp(h)^omega)/omega))^(-gamma)   = exp(lambda);  
    ((exp(c)-((exp(h)^omega)/omega))^(-gamma))*(exp(h)^(omega-1))  = exp(lambda)*(1-alpha)*exp(y)/exp(h); 
    exp(lambda)*(1+phi*(exp(k)-exp(k(-1)))) = beta*exp(lambda(+1))*(alpha*exp(y(+1))/exp(k)+1-delta+phi*(exp(k(+1))-exp(k))); 
    a = rho*a(-1)+sigma_tfp*e; 
    exp(r) = r_bar;
    tb_y = 1-((exp(c)+exp(i))/exp(y));
    ca_y = (1/exp(y))*(d(-1)-d); 
    util=(((exp(c)-omega^(-1)*exp(h)^omega)^(1-gamma))-1)/(1-gamma);
end;
steady_state_model;
    beta  = 1/(1+r_bar);
    r     = log((1-beta)/beta);
    d     = d_bar;
    h     = log(((1-alpha)*(alpha/(r_bar+delta))^(alpha/(1-alpha)))^(1/(omega-1)));
    k     = log(exp(h)/(((r_bar+delta)/alpha)^(1/(1-alpha))));
    y     = log((exp(k)^alpha)*(exp(h)^(1-alpha)));
    i     = log(delta*exp(k));
    c     = log(exp(y)-exp(i)-r_bar*d);
    tb_y    = 1-((exp(c)+exp(i))/exp(y));
    util=(((exp(c)-omega^(-1)*exp(h)^omega)^(1-gamma))-1)/(1-gamma);
    lambda= log((exp(c)-((exp(h)^omega)/omega))^(-gamma));
    a     = 0;
    ca_y    = 0;
end;
resid(1);
check;
steady; 
shocks;
    var e; stderr 1;
end;


stoch_simul(order=1, irf=40);


