%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Universidade de Brasília
% Tese - Modelo Geralli et all para uma Economia Aberta (Versão Rotemberg)
% Orientador: Joaquim P de Andrade
% Doutorando: Márcio Francisco da Silva
% model with: TWO WAGES; INVESTMENT ADJ. COSTS;  VARIABLE CAPITAL UTILIZATION;  CONSUMPTION HABITS
%             STICKY BANK RATES, PRICES & WAGES à la Rotemberg with indexation to both past and st.st. inflation
%             model blocks of eqns:    1) PATIENT HHs    2) IMPATIENT HHs    3) CAPITAL PRODUCERS  4) HOUSING PRODUCERS     
%                                      5) ENTREPRENEURS  6) BANKS            7) RETAILERS          8) LABOR MKT WITH ONE UNION FOR EACH LABOR TYPE     
%                                      9) AGGREGATION & EQUILIBRIUM          10) MONETARY POLICY  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

var 
lam_p     % preço sombra
lam_i     % preço sombra
lam_e     % preço sombra
s_ih      % preço sombra
s_iw      % preço sombra
s_e       % preço sombra
c_p       % consumo
c_i       % consumo
c_e       % consumo
h_p       % imóveis
h_i       % imóveis
h_e       % imóveis
h         % imóveis
d         % depósitos
b_ih      % empréstimos 
b_iw      % empréstimos
b_e       % empréstimos
debt_ih   % estoque de dívida
debt_iw   % estoque de dívida
debt_e    % estoque de dívida
B         % empréstimos
Ik        % investimento em capital
Ih        % investimento em imóveis
k         % capital
l_p       % trabalho
l_i       % trabalho
u         % taxa de utilização do capital
y_e       % bem intermediário
y         % bem final 
r_pol     % taxa de juros politica monetaria
r_d       % taxa de juros deposito
r_bih     % taxa de juros empréstimo imóveis
r_biw     % taxa de juros empréstimo consignado
r_be      % taxa de juros empréstimo empresários
R_b       % taxa de juros empréstimo banco atacadista
K_b       % capital bancário
pi        % inflação de preços
pi_wp     % inflação de salários  
pi_wi     % inflação de salários
pw         % preço relativo
C         % AGGREGATION & EQUILIBRIUM
Y         % AGGREGATION & EQUILIBRIUM
BH
w_p       % salário
w_i       % salário
q_k       % preço do capital
q_h       % preço do imóvel
J_B       % lucro
J_R       % lucro
PIW       % AGGREGATION & EQUILIBRIUM
ee_z      % EXOGENOUS PROCESSES
A_e       % EXOGENOUS PROCESSES
ee_j      % EXOGENOUS PROCESSES
ee_qk     % EXOGENOUS PROCESSES
ee_qh     % EXOGENOUS PROCESSES
m_ih      % EXOGENOUS PROCESSES (IMPATIENT LTV)
m_iw      % EXOGENOUS PROCESSES 
m_e       % EXOGENOUS PROCESSES (ENTREPRENEURS LTV)
eps_y     % EXOGENOUS PROCESSES
eps_l     % EXOGENOUS PROCESSES
%eps_d     % EXOGENOUS PROCESSES
%eps_be    % EXOGENOUS PROCESSES
%eps_bih   % EXOGENOUS PROCESSES
%eps_biw   % EXOGENOUS PROCESSES
eps_K_b   % EXOGENOUS PROCESSES
e_rpol

mk_d
mk_bih
mk_biw
mk_be

;

varexo e_z e_A_e e_j e_mih e_miw e_me e_qk e_qh e_y e_erpol e_l e_eps_K_b e_mk_d e_mk_be e_mk_bih e_mk_biw;

parameters  a_i a_p a_e alphal alphak
            beta_p beta_i beta_e
            deltakb deltah deltak
            eksi_1 eksi_2 eps_lss eps_yss eps_d eps_bih eps_biw eps_be
            ind_w ind_p ind_d ind_be ind_bih ind_biw
            jh            
            m_ihss m_iwss m_ess mk_d_ss mk_be_ss mk_bih_ss mk_biw_ss
            mu
            phi phi_pi phi_y piss phi_dih phi_diw phi_de
            kappa_ik kappa_ih kappa_d kappa_be kappa_bih kappa_biw kappa_kb kappa_w kappa_p
            rho_rpol r_bess r_bihss r_biwss  r_polss
            rho_ee_z rho_A_e rho_ee_j rho_mih rho_miw rho_me rho_epsy rho_e_pol
            rho_mk_d rho_mk_be rho_mk_bih rho_mk_biw
            rho_ee_qk rho_ee_qh rho_epsl rho_eps_K_b
            vi

            ;

% *********************			
% CALIBRATED PARAMETERS
% *********************

beta_p = 0.989; %
beta_i = 0.96; %
beta_e =  beta_i; % 0.96; % 0.95; %
piss = 1.045^0.25; % 1; %  
m_ess = 0.05; %
m_ihss = 0.06; % 0.07;  %
m_iwss = 0.1; 
deltak = 0.035; % 0.045; % 
deltah = 0.025; % 0.02;
deltakb = 0.095;
jh = 0.2;
eps_lss = 3;
phi = 1;

phi_dih = 0.07; % 0.0625;
phi_diw = 0.07; % 0.0625;
phi_de  = 0.07; % 0.0625;

eps_yss = 11;
mu = 0.8;
alphal = 0.6;
alphak = 1 - alphal;
eps_d = - 2.62; %  
eps_biw = 4.5; % 6.53; % 
eps_bih = 5.36; % 6.53; %
eps_be = 2.73; % 6.53; %
mk_d_ss = eps_d/(eps_d - 1);
mk_be_ss = eps_be/(eps_be - 1);
mk_bih_ss = eps_bih/(eps_bih - 1);
mk_biw_ss = eps_biw/(eps_biw - 1);
r_dss = (piss/beta_p - 1);
r_polss = (piss/beta_p - 1) * (eps_d - 1)/eps_d ;                       % steady state gross nominal interest rate 
r_bess = r_polss*eps_be/(eps_be - 1) ;								   % steady state interest rate on loans to E
r_bihss = r_polss*eps_bih/(eps_bih - 1) ;								   % steady state interest rate on loans to H
r_biwss = r_polss*eps_biw/(eps_biw - 1) ;								   % steady state interest rate on loans to H

a_i	        = 0.7; % 0.867003766306404	; %	coeffs(25); %
a_e         = a_i;  % 0.0     ;   % degree of habit formation: entrepreneurs
a_p         = a_i;  % 0.0     ;   % degree of habit formation: patient households
kappa_p     = 33.7705265016395	; % coeffs(13); % 
kappa_w     = kappa_p;
kappa_ik    = 10.0305562248008	;	% coeffs(15); %
kappa_ih    = 10.0305562248008	;	% coeffs(15); %
kappa_d     = 2.77537377104213	; % coeffs(16); //100; % 
kappa_be	= 7.98005959044637	; %	coeffs(17); //100; % 
kappa_bih	= 9.04426718749482	; %	coeffs(18); //140; % 
kappa_biw	= 9.04426718749482	; %	coeffs(18); //140; % 
kappa_kb	= 8.91481958034669	; %	coeffs(19); %
phi_pi      = 2.00384780180824    ; %	coeffs(20); %
eksi_1      = 0.0075;                                                     % capital utilization cost parameter
eksi_2      = 0.1*eksi_1;                                                 % capital utilization cost parameter
vi          = 0.17; //0.09;                                                      % Banking Capital ratio over Loans (Basel II)
rho_ee_z	=	0.5; % 0.9; % coeffs(1);  % 0.385953438168178	;
rho_A_e     =	0.5; % 0.9; % coeffs(2);  % 0.93816527333294	;
rho_ee_j	=	0.5; % 0.9; % coeffs(3);  % 0.921872719102206	;
rho_me      =	0.5; % 0.9; % coeffs(4);  % 0.90129485520182	;
rho_mih     =	0.5; % 0.9; % coeffs(5);  % 0.922378382753078	;
rho_miw     =	0.5; % 0.9; % coeffs(5);  % 0.922378382753078	;
rho_ee_qk	=	0.5; % 0.9; % coeffs(9);  % 0.571692383714171	;
rho_ee_qh	=	0.5; % 0.9; % coeffs(9);  % 0.571692383714171	;
rho_epsy	=	0.5; % 0.9; % coeffs(10); % 0.294182239567384	;
rho_epsl	=	0.5; % 0.9; % coeffs(11); % 0.596186440884132	;
rho_eps_K_b	=	0.5; % 0.9; % coeffs(12); % 0.813022758608552	;
rho_e_pol	= 0.5; % 0.9; % coeffs(12); % 0.813022758608552	;
rho_rpol    = 0.5; % 0.750481873084311	; %	coeffs(21); %
phi_y       = 0.303247771697294	; %	coeffs(22); %

rho_mk_d	=	0.9; 
rho_mk_be	=	0.9; 
rho_mk_bih	=	0.9; 
rho_mk_biw 	=	0.9; 
ind_d       = 0.0;                   % indexation deposit rates
ind_be      = 0.0;                   % indexation rates on loans to firms
ind_bih     = 0.0;                   % indexation rates on loans to households
ind_biw     = 0.0;                   % indexation rates on loans to households
ind_p       = 0.158112794106546	; %	coeffs(23); %
ind_w       = 0.300197804017489	; %	coeffs(24); %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Model equations
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

model;

////***********   1) PATIENT HHs ********************************************************6

  (1 - a_p) * exp(ee_z)*(exp(c_p) - a_p*exp(c_p(-1)))^(-1) = exp(lam_p); 

  jh * exp(ee_j) / ( exp(lam_p) * exp(q_h) - (1 - deltah) * beta_p * exp(lam_p(+1)) * exp(q_h(+1)) ) = exp(h_p);

  exp(lam_p)  = beta_p * exp(lam_p(+1)) * (1 + exp(r_d)) / exp(pi(+1));

  (1 - exp(eps_l)) * exp(l_p) + exp(l_p)^(1 + phi) / exp(w_p) * exp(eps_l) / exp(lam_p) - kappa_w *( exp(pi_wp)     - exp(pi(-1)) ^ ind_w * piss ^ (1 - ind_w) ) * exp(pi_wp) +  beta_p * exp(lam_p(+1))/exp(lam_p) * kappa_w *( exp(pi_wp(+1)) - exp(pi) ^ ind_w * piss ^ (1 - ind_w) ) * exp(pi_wp(+1))^2 / exp(pi(+1)) = 0 ;

  exp(pi_wp) = exp(w_p) / exp(w_p(-1)) * exp(pi);

  exp(c_p) + exp(q_h) * ( exp(h_p) - (1 - deltah) * exp(h_p(-1)) ) + exp(d) = exp(w_p) * exp(l_p) + (1 + exp(r_d(-1)))*exp(d(-1))/exp(pi) + exp(J_R);


////***********   2) IMPATIENT HHs ********************************************************9

  (1 - a_i)*exp(ee_z)*(exp(c_i) - a_i*exp(c_i(-1)))^(-1)  = exp(lam_i);

  jh * (exp(ee_j))  / ( exp(lam_i) * exp(q_h) - (1 - deltah) * exp(q_h(+1)) * ( beta_i * exp(lam_i(+1)) + exp(s_ih) * exp(m_ih) * exp(pi(+1)) ) ) = exp(h_i);

  exp(lam_i) - beta_i * exp(lam_i(+1)) * (1 + exp(r_bih)) / exp(pi(+1)) = exp(s_ih) * (1 + exp(r_bih));

  exp(lam_i) - beta_i * exp(lam_i(+1)) * (1 + exp(r_biw)) / exp(pi(+1)) = exp(s_iw) * (1 + exp(r_biw));

 (1 - exp(eps_l)) * exp(l_i) + exp(l_i)^(1 + phi) / exp(w_i) * exp(eps_l) / exp(lam_i) - kappa_w *( exp(pi_wi) - exp(pi(-1)) ^ ind_w * piss ^ (1 - ind_w) ) * exp(pi_wi) +  beta_i * exp(lam_i(+1))/exp(lam_i) * kappa_w *( exp(pi_wi(+1)) - exp(pi) ^ ind_w * piss ^ (1 - ind_w) ) * exp(pi_wi(+1))^2 / exp(pi(+1)) = 0 ;

%  (1 - exp(eps_l)) * exp(l_i) + exp(eps_l) * exp(l_i)^(1 + phi) / (exp(w_i) * (exp(lam_i) + exp(m_iw) * exp(s_iw))) - kappa_w *( exp(pi_wi) - exp(pi(-1)) ^ ind_w * piss ^ (1 - ind_w) ) * exp(pi_wi) +  beta_i * (exp(lam_i(+1)) + exp(s_iw(+1)) + exp(m_iw(+1)))/(exp(lam_i) + exp(s_iw) + exp(m_iw)) * kappa_w *( exp(pi_wi(+1)) - exp(pi) ^ ind_w * piss ^ (1 - ind_w) ) * exp(pi_wi(+1))^2 / exp(pi(+1)) = 0 ;

  exp(pi_wi) = exp(w_i) / exp(w_i(-1)) * exp(pi);

  exp(c_i) + exp(q_h) * (exp(h_i) - (1 - deltah) * exp(h_i(-1))) + (1 + exp(r_bih(-1)))*exp(debt_ih(-1))/exp(pi) +  (1 + exp(r_biw(-1)))*exp(debt_iw(-1))/exp(pi) = exp(w_i) * exp(l_i) + exp(debt_ih) + exp(debt_iw);

 (1 + exp(r_bih)) * exp(b_ih) = exp(m_ih) * exp(q_h(+1)) * (1 - deltah) * exp(h_i) * exp(pi(+1)) - exp(debt_ih); 

 (1 + exp(r_biw)) * exp(b_iw) = exp(m_iw) * exp(w_i(+1)) * exp(l_i(+1)) * exp(pi(+1)) - exp(debt_iw); 

  exp(debt_ih) = (1 - phi_dih)*exp(debt_ih(-1)) + exp(b_ih);

  exp(debt_iw) = (1 - phi_diw)*exp(debt_iw(-1)) + exp(b_iw);

////***********  3) CAPITAL PRODUCERS *****************************************************2

 exp(k) = (1 - deltak) * exp(k(-1)) + ( 1 - kappa_ik/2 * (exp(Ik)*exp(ee_qk)/exp(Ik(-1)) - 1)^2 ) * exp(Ik) ;   

 1 = exp(q_k) * ( 1 -  kappa_ik/2 * (exp(Ik)*exp(ee_qk)/exp(Ik(-1)) - 1)^2  - kappa_ik * (exp(Ik) * exp(ee_qk)/exp(Ik(-1)) - 1) * exp(Ik) * exp(ee_qk)/exp(Ik(-1)) ) + beta_e * exp(lam_e(+1)) / exp(lam_e) * exp(q_k(+1)) *   kappa_ik * (exp(Ik(+1))*exp(ee_qk(+1))/exp(Ik) - 1) * exp(ee_qk(+1)) * (exp(Ik(+1))/exp(Ik))^2 ; 

////***********  4) HOUSING PRODUCERS *****************************************************2

 exp(h) = (1 - deltah) * exp(h(-1)) + ( 1 - kappa_ih/2 * (exp(Ih) * exp(ee_qh)/exp(Ih(-1)) - 1)^2 ) * exp(Ih) ;   

 1 = exp(q_h) * ( 1 -  kappa_ih/2 * (exp(Ih)*exp(ee_qh)/exp(Ih(-1)) - 1)^2  - kappa_ih * (exp(Ih) * exp(ee_qh)/exp(Ih(-1)) - 1) * exp(Ih) * exp(ee_qh)/exp(Ih(-1)) ) + beta_e * exp(lam_e(+1)) / exp(lam_e) * exp(q_h(+1)) *   kappa_ih * (exp(Ih(+1))*exp(ee_qh(+1))/exp(Ih) - 1) * exp(ee_qh(+1)) * (exp(Ih(+1))/exp(Ih))^2 ; 

////************  5) ENTREPRENEURS *********************************************************11

  (1 - a_e)*(exp(c_e) - a_e*exp(c_e(-1)))^(-1) = exp(lam_e); 

  jh * (exp(ee_j))  / ( exp(lam_e) * exp(q_h) - (1 - deltah) * exp(q_h(+1)) * ( beta_e * exp(lam_e(+1)) + exp(s_e) * exp(m_e) * exp(pi(+1)) ) ) = exp(h_e);

  exp(s_e)  * exp(m_e) * exp(q_k(+1)) * exp(pi(+1)) * (1 - deltak) + beta_e * exp(lam_e(+1)) * ( exp(q_k(+1))*(1 - deltak) + alphak * exp(y_e(+1)) * exp(u(+1))/(exp(pw(+1)) * exp(k(+1))) - ( eksi_1*(exp(u(+1)) - 1) + eksi_2/2*( (exp(u(+1)) - 1)^2 ) ) )   = exp(lam_e) * exp(q_k) ;

  exp(w_p) =    mu  * (1 - alphal) * exp(y_e) / ( exp(l_p) * exp(pw) );

  exp(w_i) = (1 - mu) * (1 - alphal) * exp(y_e) / ( exp(l_i) * exp(pw) );

  exp(lam_e) - exp(s_e)  * (1 + exp(r_be)) = beta_e * exp(lam_e(+1)) * (1 + exp(r_be)) / exp(pi(+1));

  alphak * exp(A_e) * exp(u)^(alphak - 1) * exp(k(-1))^(alphak) * ( exp(l_p)^mu * exp(l_i)^(1 - mu) ) ^ (1 - alphal)  /exp(pw) = eksi_1 + eksi_2 * (exp(u) - 1);

  exp(y_e) = exp(A_e) * (exp(u)*exp(k(-1)))^(alphak) * ( exp(l_p)^mu * exp(l_i)^(1 - mu) ) ^ (1 - alphal) ;

  (1 + exp(r_be)) * exp(b_e) = exp(m_e) * ( exp(q_k(+1)) * exp(pi(+1)) * exp(k) * (1 - deltak) + exp(q_h(+1)) * exp(pi(+1)) * exp(h_e) * (1 - deltah)) - exp(debt_e); 

  exp(c_e) + ((1 + exp(r_be(-1))) * exp(debt_e(-1)) / exp(pi) ) +  (exp(w_p)*exp(l_p) + exp(w_i)*exp(l_i)) + exp(q_k) * exp(k) + exp(q_h) * (exp(h_e) - (1 - deltah)*exp(h_e(-1))) + ( eksi_1*(exp(u) - 1) + eksi_2/2*(exp(u) - 1)^2 ) * exp(k(-1)) =  exp(y_e) / exp(pw) + exp(debt_e) + exp(q_k) * (1 - deltak) * exp(k(-1)) ;

  exp(debt_e) = (1 - phi_de)*exp(debt_e(-1)) + exp(b_e); 

////*************  6)BANKS **************************************************************** 10

  exp(K_b) * exp(pi) = (1 - deltakb) * exp(K_b(-1))/ exp(eps_K_b) + exp(J_B(-1)) ;

  exp(b_ih) + exp(b_iw) + exp(b_e) = exp(d) + exp(K_b);

  exp(R_b) = - kappa_kb * ( exp(K_b) / exp(B) - vi ) * (exp(K_b)/exp(B)) ^2  + exp(r_pol) ; 

- 1 + exp(mk_d)/(exp(mk_d) - 1)  - exp(mk_d)/(exp(mk_d) - 1)  * exp(r_pol)/exp(r_d)  - kappa_d  * ( exp(r_d)/exp(r_d(-1)) - 1  )  * exp(r_d)/exp(r_d(-1)) + beta_p * ( exp(lam_p(+1))/exp(lam_p) ) * kappa_d  * ( exp(r_d(+1))/exp(r_d) - ( exp(r_d)/exp(r_d(-1)))^ind_d )   * ( (exp(r_d(+1))/exp(r_d))^2 )   * (exp(d(+1))/exp(d)) = 0;
  
+ 1 - exp(mk_be)/(exp(mk_be) - 1)  +  exp(mk_be)/(exp(mk_be) - 1)  * exp(R_b)/exp(r_be) - kappa_be * (exp(r_be)/exp(r_be(-1)) - 1 ) * exp(r_be)/exp(r_be(-1)) + beta_p * ( exp(lam_p(+1))/exp(lam_p) ) * kappa_be * ( exp(r_be(+1))/exp(r_be) - ( exp(r_be)/exp(r_be(-1)))^ind_be ) * ( (exp(r_be(+1))/exp(r_be))^2 ) * (exp(b_e(+1))/exp(b_e)) = 0;
  
+ 1 - exp(mk_bih)/(exp(mk_bih) - 1)  +  exp(mk_bih)/(exp(mk_bih) - 1)  * exp(R_b)/exp(r_bih) - kappa_bih * (exp(r_bih)/exp(r_bih(-1)) - 1 ) * exp(r_bih)/exp(r_bih(-1)) + beta_p * ( exp(lam_p(+1))/exp(lam_p) ) * kappa_bih * ( exp(r_bih(+1))/exp(r_bih) - ( exp(r_bih)/exp(r_bih(-1)))^ind_bih ) * ( (exp(r_bih(+1))/exp(r_bih))^2 ) * (exp(b_ih(+1))/exp(b_ih)) = 0;

+ 1 - exp(mk_biw)/(exp(mk_biw) - 1)  +  exp(mk_biw)/(exp(mk_biw) - 1)  * exp(R_b)/exp(r_biw) - kappa_biw * (exp(r_biw)/exp(r_biw(-1)) - 1 ) * exp(r_biw)/exp(r_biw(-1)) + beta_p * ( exp(lam_p(+1))/exp(lam_p) ) * kappa_biw * ( exp(r_biw(+1))/exp(r_biw) - ( exp(r_biw)/exp(r_biw(-1)))^ind_biw ) * ( (exp(r_biw(+1))/exp(r_biw))^2 ) * (exp(b_iw(+1))/exp(b_iw)) = 0;

exp(J_B) = + exp(r_bih)  *  exp(b_ih)
           + exp(r_biw)  *  exp(b_iw)
           + exp(r_be)  *  exp(b_e)
           - exp(r_d)   *  exp(d)
           - kappa_d/2  * ( (exp(r_d)/exp(r_d(-1))-1)^2)   * exp(r_d) *exp(d) 
           - kappa_be/2 * ( (exp(r_be)/exp(r_be(-1))-1)^2) * exp(r_be)*exp(b_e) 
           - kappa_bih/2 * ( (exp(r_bih)/exp(r_bih(-1))-1)^2) * exp(r_bih)*exp(b_ih)
           - kappa_biw/2 * ( (exp(r_biw)/exp(r_biw(-1))-1)^2) * exp(r_biw)*exp(b_iw)
           - kappa_kb/2 * ( (exp(K_b) / exp(B)  - vi ) ^2) * exp(K_b);

////***********  7)RETAILERS ************************************************************** 2

exp(J_R)  = exp(y)*(1 - (1/exp(pw))    - (kappa_p/2) * (exp(pi) - ( exp(pi(-1)) ^ ind_p * piss ^ (1 - ind_p) ))^2 ) ;

1 - exp(eps_y) + exp(eps_y) / exp(pw) -    kappa_p * (exp(pi)     - ( exp(pi(-1)) ^ ind_p * piss ^ (1 - ind_p) )) * exp(pi) + beta_p*(exp(lam_p(+1))/exp(lam_p))* kappa_p * (exp(pi(+1)) - ( exp(pi)     ^ ind_p * piss ^ (1 - ind_p) )) * exp(pi(+1)) * (exp(y(+1))/exp(y)) = 0;

////************  8) AGGREGATION & EQUILIBRIUM  ************************************************ 8

exp(C)              = exp(c_p) + exp(c_i) + exp(c_e);
exp(BH)             = exp(b_ih) + exp(b_iw);
exp(B)              = (exp(BH) + exp(b_e));
exp(Y)              = exp(y);
%exp(Y)             = exp(c_p) + exp(c_i) + exp(c_e) + exp(Ik) + exp(Ih);
exp(y)              = exp(c_p) + exp(c_i) + exp(c_e) + exp(Ik) + exp(Ih);  
exp(h)              = exp(h_p) + exp(h_i) + exp(h_e);
exp(PIW)            = ( exp(w_p) + exp(w_i) )  / ( exp(w_p(-1)) + exp(w_i(-1)) ) * exp(pi);

////***********  9) TAYLOR RULE & PROFITS CB ***************************************************** 1                                                 

(1 + exp(r_pol)) = (1 + r_polss)^(1 - rho_rpol ) * (1 + exp(r_pol(-1)))^rho_rpol * (( exp(pi) / piss ) ^phi_pi * (exp(Y)/exp(Y(-1)))^phi_y  ) ^ ( 1 - rho_rpol ) * exp(e_rpol) ;

////***********  10) EXOGENOUS PROCESSES ****************************************************12

exp(ee_z)     = 1 - rho_ee_z   *    1          + rho_ee_z   * exp(ee_z(-1))    + e_z;
exp(A_e)      = 1 - rho_A_e    *    1          + rho_A_e    * exp(A_e(-1))     + e_A_e;
exp(ee_j)     = 1 - rho_ee_j   *    1          + rho_ee_j   * exp(ee_j(-1))    + e_j;
exp(m_ih)     = (1 - rho_mih)  *  m_ihss       + rho_mih    * exp(m_ih(-1))    + e_mih;
exp(m_iw)     = (1 - rho_miw)  *  m_iwss       + rho_miw    * exp(m_iw(-1))    + e_miw;
exp(m_e)      = (1 - rho_me)   *  m_ess        + rho_me     * exp(m_e(-1))     + e_me;
exp(ee_qk)    =  1 - rho_ee_qk  *    1         + rho_ee_qk  * exp(ee_qk(-1))   + e_qk;
exp(ee_qh)    =  1 - rho_ee_qh  *    1         + rho_ee_qh  * exp(ee_qh(-1))   + e_qh;
exp(eps_y)    = (1 - rho_epsy)  * eps_yss      + rho_epsy   * exp(eps_y(-1))   + e_y;
exp(eps_l)    = (1 - rho_epsl)  * eps_lss      + rho_epsl   * exp(eps_l(-1))   + e_l;
exp(eps_K_b)  = (1 - rho_eps_K_b)*   1         + rho_eps_K_b* exp(eps_K_b(-1)) + e_eps_K_b;
exp(e_rpol)   = (1 - rho_e_pol) *   1          + rho_e_pol * exp(e_rpol(-1))  + e_erpol;

exp(mk_d)     = (1 - rho_mk_d) * mk_d_ss     + rho_mk_d   * exp(mk_d(-1))    + e_mk_d;
exp(mk_be)    = (1 - rho_mk_be)* mk_be_ss    + rho_mk_be  * exp(mk_be(-1))   + e_mk_be;
exp(mk_bih)   = (1 - rho_mk_bih)* mk_bih_ss  + rho_mk_bih * exp(mk_bih(-1))  + e_mk_bih;
exp(mk_biw)   = (1 - rho_mk_biw)* mk_biw_ss  + rho_mk_biw * exp(mk_biw(-1))  + e_mk_biw;

end;   //model

steady_state_model;

[lam_p,lam_i,lam_e,s_ih,s_iw,s_e,c_p,c_i,c_e,h_p,h_i,h_e,b_ih,b_iw,b_e,w_p,w_i,y_e,y,k,l_p,l_i,K_b] = tese_steadystate_helper(beta_p, beta_i, beta_e, piss, m_ess, m_ihss, m_iwss, deltak, deltah, deltakb, jh, eps_lss, phi, eps_yss, mu, alphal, alphak, eps_d, eps_biw, eps_bih, eps_be, phi_dih, phi_diw, phi_de);

r_d = log(piss/beta_p - 1);
r_pol = log(((eps_d - 1)/eps_d)*(piss/beta_p - 1));
R_b  = log(((eps_d - 1)/eps_d)*(piss/beta_p - 1));
r_biw = log((eps_biw/(eps_biw - 1))*((eps_d - 1)/eps_d)*(piss/beta_p - 1));
r_bih = log((eps_bih/(eps_bih - 1))*((eps_d - 1)/eps_d)*(piss/beta_p - 1));
r_be = log((eps_be/(eps_be - 1))*((eps_d - 1)/eps_d)*(piss/beta_p - 1));
pw = log(eps_yss/(eps_yss - 1));
mk_d = log(mk_d_ss);
mk_be = log(mk_be_ss);
mk_bih = log(mk_bih_ss);
mk_biw = log(mk_biw_ss);
pi   = log(piss);
pi_wp  = log(piss);
pi_wi  = log(piss);
PIW  = log(piss);
m_ih  = log(m_ihss);
m_iw  = log(m_iwss);
m_e  = log(m_ess);
eps_y  = log(eps_yss);
eps_l  = log(eps_lss);
h = log(h_p + h_i + h_e);
d = log(b_ih + b_iw + b_e - K_b);
debt_ih = log(b_ih/phi_dih);
debt_iw = log(b_iw/phi_diw);
debt_e = log(b_e/phi_de);
Y = log(y);
C = log(c_p + c_i + c_e);
Ik = log(deltak*k);
Ih = log(deltah*(h_p + h_i + h_e));
B = log(b_ih + b_iw + b_e);
BH = log(b_ih + b_iw);
J_R = (1 - 1/(eps_yss/(eps_yss - 1)))*y;
J_B = (piss - 1 + deltakb)*K_b;
q_h = 0.0;
q_k = 0.0;
u = 0.0;
ee_z  = 0.0;
A_e  = 0.0;
ee_j  = 0.0;
ee_qk  = 0.0;
ee_qh  = 0.0;
e_rpol  = 0.0;
eps_K_b  = 0.0;

end;

check;

model_diagnostics;

shocks;
//estimated st.dev.
var e_z         = 0.01^2; % 0.0144^2;
var e_A_e       = 0.01^2; % 0.185807999596714^2;
var e_j         = 0.01^2; % 0.0658^2;
var e_me        = 0.01^2; %0.0034^2;
var e_mih       = 0.01^2; % 0.0023^2;
var e_miw       = 0.01^2; % 0.0023^2;
var e_qk        = 0.01^2; % 0.0125^2;
var e_qh        = 0.01^2; % 0.0125^2;
var e_erpol     = 0.01^2; % 0.0013^2;
var e_y         = 0.01^2; % 1.0099^2;
var e_l         = 0.01^2; % 0.3721^2;
var e_eps_K_b   = 0.01^2; % 0.050^2;

var e_mk_d   = 0.01^2; % 0.050^2;
var e_mk_be  =  0.01^2; %0.050^2;
var e_mk_bih = 0.01^2; % 0.050^2;
var e_mk_biw = 0.01^2; % 0.050^2;

end;

//use command to generate TeX-Files with dynamic and static model equations
%write_latex_dynamic_model;
%write_latex_static_model;

// Stochastic simulations 
stoch_simul(order = 1,irf = 20);
