%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 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
Bstar     % empréstimos
Ik        % investimento em capital
Ih        % investimento em imóveis
k         % capital
l_p       % trabalho
l_i       % trabalho
Q         % insumo importado
u         % taxa de utilização do capital
y_e       % bem intermediário
y_exp     % bem exportado
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
Rstar     % taxa de juros empréstimo externo
premium   % premio de risco
er        % taxa de câmbio
K_b       % capital bancário
pi        % inflação de preços
pi_star   % inflação de preços externa  
pi_wp     % inflação de salários  
pi_wi     % inflação de salários
x         % 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_prem   % 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
eps_premium
pQ
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_eps_premium e_Rstar e_pistar e_pQ e_mk_d e_mk_be e_mk_bih e_mk_biw;
% e_epsd e_epsbe e_epsbih e_epsbiw 

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_dss eps_bihss eps_biwss eps_bess
            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
            ni
            phi phi_pi phi_y piss piss_star 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 Rstarss
            rho_ee_z rho_A_e rho_ee_j rho_mih rho_miw rho_me rho_epsy rho_e_pol rho_Rstar rho_pistar
           % rho_epsbiw rho_epsbe rho_epsbih rho_epsd
            rho_mk_d rho_mk_be rho_mk_bih rho_mk_biw
            rho_ee_qk rho_ee_qh rho_epsl rho_eps_K_b rho_eps_premium rho_pQ
            vi
            zeta

            ;

% *********************			
% CALIBRATED PARAMETERS
% *********************

beta_p = 0.989; %
beta_i = 0.96; %
beta_e =  beta_i; % 0.96; % 0.95; %
Rstarss = 0.005; % 0.007; % 
piss = 1.045^0.25; % 1; %  
piss_star = 1.024^0.25; % 1; % 1.045^0.25; %  
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;
ni = 0.8;
alphal = 0.5;
alphak = 0.3;
eps_dss = - 2.62; %  
eps_biwss = 4.5; % 6.53; % 
eps_bihss = 5.36; % 6.53; %
eps_bess = 2.73; % 6.53; %
mk_d_ss = eps_dss/(eps_dss - 1);
mk_be_ss = eps_bess/(eps_bess - 1);
mk_bih_ss = eps_biwss/(eps_bihss - 1);
mk_biw_ss = eps_biwss/(eps_biwss - 1);
zeta = -0.1; %
r_dss = (piss/beta_p - 1);
r_polss = (piss/beta_p - 1) * (eps_dss - 1)/eps_dss ;                       % steady state gross nominal interest rate 
r_bess = r_polss*eps_bess/(eps_bess - 1) ;								   % steady state interest rate on loans to E
r_bihss = r_polss*eps_bihss/(eps_bihss - 1) ;								   % steady state interest rate on loans to H
r_biwss = r_polss*eps_biwss/(eps_biwss - 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_epsd	=	0.5; % 0.9; % coeffs(6);  % 0.892731352899547	;
%rho_epsbih	=	0.5; % 0.9; % coeffs(7);  % 0.851229673864555	;
%rho_epsbiw	=	0.5; % 0.9; % coeffs(7);  % 0.851229673864555	;
%rho_epsbe	=	0.5; % 0.9; % coeffs(8);  % 0.873901213475799	;
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_Rstar	=	0.5; % 0.9; % coeffs(12); % 0.813022758608552	;
rho_pistar	=	0.5; % 0.9; % coeffs(12); % 0.813022758608552	;
rho_pQ   	=	0.5; % 0.9; % coeffs(12); % 0.813022758608552	;
rho_eps_premium	= 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 ;

  % exp(w_i) = (exp(l_i)^phi)/(exp(lam_i) + exp(s_iw)*exp(m_iw));

  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(x(+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) =    ni  * (1 - alphal) * exp(y_e) / ( exp(l_p) * exp(x) );

  exp(w_i) = (1 - ni) * (1 - alphal) * exp(y_e) / ( exp(l_i) * exp(x) );

  exp(Q) = (1 - alphal - alphak)*exp(y_e)/( exp(x)*exp(er)*exp(pQ) );

  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)^ni * exp(l_i)^(1 - ni) ) ^ (1 - alphal) * (exp(Q) ^ (1 - alphal - alphak) ) /exp(x) = eksi_1 + eksi_2 * (exp(u) - 1);

  exp(y_e) = exp(A_e) * (exp(u)*exp(k(-1)))^(alphak) * ( exp(l_p)^ni * exp(l_i)^(1 - ni) ) ^ (1 - alphal) * (exp(Q) ^ (1 - alphal - alphak) );

  (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(pQ) * exp(Q) =  exp(y_e) / exp(x) + 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(premium) = exp(-zeta*exp(er)*exp(Bstar)/exp(K_b))*exp(eps_premium);

  exp(b_ih) + exp(b_iw) + exp(b_e) = exp(d) + exp(K_b) + exp(er)*exp(Bstar);

  exp(R_b) = - kappa_kb * ( exp(K_b) / exp(B) - vi ) * (exp(K_b)/exp(B)) ^2  + exp(r_pol) ; 

  (1 + exp(Rstar)) * exp(premium) * (1 - zeta*exp(er)*exp(Bstar)/exp(K_b)) * (exp(er(+1))/exp(er)) * (exp(pi(+1))/exp(pi_star(+1))) = 1 + 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;

%  1 - exp(eps_bih) + exp(eps_bih)*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) - 1) * ((exp(r_bih(+1))/exp(r_bih))^2) * (exp(b_ih(+1))/exp(b_ih)) = 0;

%  1 - exp(eps_biw) + exp(eps_biw)*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) - 1) * ((exp(r_biw(+1))/exp(r_biw))^2) * (exp(b_iw(+1))/exp(b_iw)) = 0;

%  1 - exp(eps_be) + exp(eps_be)*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) - 1) * ((exp(r_be(+1))/exp(r_be))^2) * (exp(b_e(+1))/exp(b_e)) = 0;

%  - 1 + exp(eps_d) - exp(eps_d)*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) - 1) * ((exp(r_d(+1))/exp(r_d))^2) * (exp(d(+1))/exp(d)) = 0;

exp(J_B) = + exp(r_bih)  *  exp(b_ih)
           + exp(r_biw)  *  exp(b_iw)
           + exp(r_be)  *  exp(b_e)
           + exp(er)*exp(Bstar) 
           - exp(r_d)   *  exp(d)
           - (1 + exp(Rstar(-1)))*exp(premium(-1))*exp(er)*exp(Bstar(-1))/exp(pi_star)           
           - 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(x))    - (kappa_p/2) * (exp(pi) - ( exp(pi(-1)) ^ ind_p * piss ^ (1 - ind_p) ))^2 ) ;

1 - exp(eps_y) + exp(eps_y) / exp(x) -    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(er)*exp(pQ)*exp(Q);
exp(Y)              = exp(c_p) + exp(c_i) + exp(c_e) + exp(Ik) + exp(Ih) + exp(y_exp) - exp(er)*exp(pQ)*exp(Q);
exp(y)              = exp(c_p) + exp(c_i) + exp(c_e) + exp(Ik) + exp(Ih) + exp(y_exp);  
exp(h)              = exp(h_p) + exp(h_i) + exp(h_e);
exp(er)*exp(Bstar)  = exp(y_exp)/exp(x) - exp(er)*exp(pQ)*exp(Q) - (1 + exp(Rstar(-1)))*exp(premium(-1))*exp(er)*exp(Bstar(-1))/exp(pi_star); 
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(eps_d)    = (1 - rho_epsd) * eps_dss       + rho_epsd   * exp(eps_d(-1))   + e_epsd;
%exp(eps_be)   = (1 - rho_epsbe)* eps_bess      + rho_epsbe  * exp(eps_be(-1))  + e_epsbe;
%exp(eps_bih)  = (1 - rho_epsbih)*eps_bihss     + rho_epsbih * exp(eps_bih(-1)) + e_epsbih;
%exp(eps_biw)  = (1 - rho_epsbiw)*eps_biwss     + rho_epsbiw * exp(eps_biw(-1)) + e_epsbiw;
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(eps_premium)  = (1 - rho_eps_premium)*1    + rho_eps_premium* exp(eps_premium(-1)) + e_eps_premium;
exp(Rstar)    = (1 - rho_Rstar)*   Rstarss     + rho_Rstar  * exp(Rstar(-1))   + e_Rstar;
exp(pi_star)  = (1 - rho_pistar)*   piss_star  + rho_pistar * exp(pi_star(-1)) + e_pistar;
exp(pQ)       = (1 - rho_pQ)*        1         + rho_pQ     * exp(pQ(-1))      + e_pQ;

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

initval; 

lam_p     = log(2.3464);
lam_i     = log(11.1645);
lam_e     = log(6.8762);
s_ih      = log(0.1562);
s_iw      = log(0.1383);
s_e       = log(0.0283);
c_p       = log(0.4262);
c_i       = log(0.0896);
c_e       = log(0.1454);
h_p       = log(2.3859);
h_i       = log(0.2836);
h_e       = log(0.4559);
h         = log(2.3859 + 0.2836 + 0.4559);
d         = log(0.1386);
b_ih      = log(0.0151); 
b_iw      = log(0.0088);
b_e       = log(0.1850);
debt_ih   = log(phi_dih*0.0151);
debt_iw   = log(phi_dih*0.0088);
debt_e    = log(phi_de*0.1850);
Bstar     = log(0.0111);
k         = log(3.7945);
l_p       = log(0.7779);
l_i       = log(0.8484);
Q         = log(0.3306);
u         = 0.0; % taxa de utilização do capital
y_e       = log(1.0638);
y_exp     = log(0.2);
r_pol     = log(r_polss); % taxa de juros politica monetaria
r_d       = log(r_dss); % taxa de juros deposito
r_bih     = log(r_bihss); % taxa de juros empréstimo imóveis
r_biw     = log(r_biwss); % taxa de juros empréstimo consignado
r_be      = log(r_bess); % taxa de juros empréstimo empresários
R_b       = log(r_polss); % taxa de juros empréstimo banco atacadista
Rstar     = log(0.005); % taxa de juros empréstimo externo
premium   = log(1.0102);
er        = log(0.5850);
K_b       = log(0.0638);
pi        = log(piss); % inflação de preços
pi_star   = log(piss_star); % inflação de preços externa  
pi_wp     = pi; % log(piss); % inflação de salários  
pi_wi     = pi; % log(piss); % inflação de salários
w_p       = log(0.4973);
w_i       = log(0.1140);
q_k       = 0.0; % preço do capital
q_h       = 0.0; % preço do imóvel
pQ        = 0.0;
J_B       = log(0.0068);
J_R       = log(0.0975);
ee_z      = 0.0; % EXOGENOUS PROCESSES
A_e       = 0.0; % EXOGENOUS PROCESSES
ee_j      = 0.0; % EXOGENOUS PROCESSES
ee_qk     = 0.0; % EXOGENOUS PROCESSES
ee_qh     = 0.0; % EXOGENOUS PROCESSES
e_rpol    = 0.0; % EXOGENOUS PROCESSES
eps_K_b   = 0.0; % EXOGENOUS PROCESSES
eps_premium = 0.0; % EXOGENOUS PROCESSES
m_ih      = log(m_ihss); % EXOGENOUS PROCESSES (IMPATIENT LTV)
m_iw      = log(m_iwss); % EXOGENOUS PROCESSES 
m_e       = log(m_ess); % EXOGENOUS PROCESSES (ENTREPRENEURS LTV)
eps_y     = log(eps_yss); % EXOGENOUS PROCESSES
eps_l     = log(eps_lss); % EXOGENOUS PROCESSES
%eps_d     = -0.9632; % log(eps_dss); % EXOGENOUS PROCESSES
%eps_be    = 1.0043; % log(eps_bess); % EXOGENOUS PROCESSES
%eps_bih   = 1.6790; % log(eps_bihss); % EXOGENOUS PROCESSES
%eps_biw   = 1.5041; % log(eps_biwss);  % EXOGENOUS PROCESSES
x         = log(eps_yss/(eps_yss - 1)); % preço relativo
C         = log(0.4262 + 0.0896 + 0.1454);
Y         = log(0.8787);
PIW       = pi; % AGGREGATION & EQUILIBRIUM
B         = log(0.0151 + 0.0088 + 0.1850);
BH        = log(0.0151 + 0.0088);
Ik        = log(deltak*3.7945);
Ih        = log(deltah*(2.3859 + 0.2836 + 0.4559));
y         = log(1.0721);  

mk_d      = log(mk_d_ss);
mk_be     = log(mk_be_ss);
mk_bih    = log(mk_bih_ss);
mk_biw    = log(mk_biw_ss); 

end;

steady;

check;

model_diagnostics;

/*                 
disp(' ');disp('%%% Display some SS results (BK model): %%%%')
SSincome        = exp(Y);
disp(['total income in ss: ',num2str(SSincome)]);
disp(['C/Y: ',num2str(exp(C)/exp(Y))]);
disp(['Ik/Y: ',num2str(exp(I)/exp(Y))]);
disp(['Ih/Y: ',num2str(exp(I)/exp(Y))]);
disp(['k/Y: ',num2str(exp(K)/exp(Y))]);
disp(['r_d (%annual): ',num2str(exp(r_d)*400)]);
disp(['r_ib (%annual): ',num2str(exp(r_ib)*400)]);
disp(['r_bh (%annual): ',num2str(exp(r_bh)*400)]);
disp(['r_be (%annual): ',num2str(exp(r_be)*400)]);
disp(['bih/(bih + be + biw)(%): ',num2str(exp(b_ih)/(exp(b_ih) + exp(b_iw) + exp(b_e))*100)]);
disp(['biw/(bih + be + biw)(%): ',num2str(exp(b_iw)/(exp(b_ih) + exp(b_iw) + exp(b_e))*100)]);
disp(['be/(bih + be + biw)(%): ',num2str(exp(b_e)/(exp(b_ih) + exp(b_iw) + exp(b_e))*100)]);
disp(['B/Y: ',num2str(exp(B)/exp(Y))]);
disp(['d/Y: ',num2str(exp(d)/exp(Y))]);
disp(['K_b/B: ',num2str(exp(K_b)/exp(B))]);
disp(['K_b/Y: ',num2str(exp(K_b)/exp(Y))]);
disp(['w_i*l_i: ',num2str(exp(w_i)*exp(l_i))]);
disp(['w_p*l_p: ',num2str(exp(w_p)*exp(l_p))]);
disp(['w_i: ',num2str(exp(w_i))]);
disp(['w_p: ',num2str(exp(w_p))]);
*/

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_epsd      = 0.01^2; % 0.0488^2;
%var e_epsbih    = 0.01^2; % 0.0051^2;
%var e_epsbiw    = 0.01^2; % 0.0051^2;
%var e_epsbe     = 0.01^2; % 0.1454^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_eps_premium   =  0.01^2; %0.050^2;
var e_Rstar     = 0.01^2; % 0.050^2;
var e_pistar    = 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;


// Stochastic simulations 
stoch_simul(order = 1,irf = 20);
