// 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
//            Banking dynamics
// 9 blocks of eqns:    1) PATIENT HHs    2) IMPATIENT HHs    3) CAPITAL PRODUCERS     
//      4) ENTREPRENEURS     5) BANKS     6) RETAILERS        7) LABOR MKT WITH ONE UNION FOR EACH LABOR TYPE     
//      8) AGGREGATION & EQUILIBRIUM      9) MONETARY POLICY  


// BBS has all items dated (t) 
// Banking capital in real terms is defined as: K_B(t)/p(t)
// Banking profits are defined in the model code at time (t)

var 
c_p       // 1  PATIENT   HHs
h_p       // 2  PATIENT   HHs
d_p       // 3  PATIENT   HHs
l_p       // 4  PATIENT   HHs
lam_p     // 5  PATIENT   HHs
J_R       // 6  PATIENT   HHs
j_B       // 7  PATIENT   HHs
pie_wp    // 8  PATIENT   HHs  
c_i       // 9  IMPATIENT HHs
h_i       // 10 IMPATIENT HHs
b_i       // 11 IMPATIENT HHs 
l_i       // 12 IMPATIENT HHs
lam_i     // 13 IMPATIENT HHs
s_i       // 14 IMPATIENT HHs
pie_wi    // 15 IMPATIENT HHs
I         // 16 CAPITAL PRODUCERS
q_k       // 17 CAPITAL PRODUCERS
c_e       // 18 ENTREPRENEURS
k_e       // 19 ENTREPRENEURS
l_pd      // 20 ENTREPRENEURS
l_id      // 21 ENTREPRENEURS
b_ee      // 22 ENTREPRENEURS
y_e       // 23 ENTREPRENEURS
lam_e     // 24 ENTREPRENEURS
s_e       // 25 ENTREPRENEURS
u         // 26 ENTREPRENEURS Capital utilization rate
d_b       // 27 BANKS
b_h       // 28 BANKS
b_e       // 29 BANKS
r_d       // 30 BANKS
r_bh      // 31 BANKS
r_be      // 32 BANKS
R_b       // 33 BANKS
K_b       // 34 BANKS

N         // 34 BANKS
 
pie       // 35 RETAILERS
x         // 36 RETAILERS
C         // 37 AGGREGATION & EQUILIBRIUM
Y         // 38 AGGREGATION & EQUILIBRIUM
D         // 39 AGGREGATION & EQUILIBRIUM
BE        // 40 AGGREGATION & EQUILIBRIUM
BH        // 41 AGGREGATION & EQUILIBRIUM
B         // 42 AGGREGATION & EQUILIBRIUM
w_p       // 43 AGGREGATION & EQUILIBRIUM
w_i       // 44 AGGREGATION & EQUILIBRIUM
J_B       // 45 AGGREGATION & EQUILIBRIUM
q_h       // 46 AGGREGATION & EQUILIBRIUM
K         // 47 AGGREGATION & EQUILIBRIUM
PIW       // 48 AGGREGATION & EQUILIBRIUM
r_ib      // 49 MONETARY POLICY
r_k       // 50 CAPITAL RENTAL RATE
ee_z      // 51 EXOGENOUS PROCESSES
A_e       // 52 EXOGENOUS PROCESSES
ee_j      // 53 EXOGENOUS PROCESSES
mk_d      // 54 EXOGENOUS PROCESSES
mk_be     // 55 EXOGENOUS PROCESSES
mk_bh     // 56 EXOGENOUS PROCESSES
ee_qk     // 57 EXOGENOUS PROCESSES
m_i       // 58 EXOGENOUS PROCESSES (IMPATIENT LTV)
m_e       // 59 EXOGENOUS PROCESSES (ENTREPRENEURS LTV)
eps_y     // 60 EXOGENOUS PROCESSES
eps_l     // 61 EXOGENOUS PROCESSES
eps_K_b   // 62 EXOGENOUS PROCESSES

// e_N       // 62 EXOGENOUS PROCESSES

Y1        // 63 output a prezzi di ss
rr_e      // 64 Entrep. Real Rate
aux1      // 65 auxiliary variable
bm        // 66 banks intermediation margins
spr_b     // 67 average bank spread (active-passive)
data_C    // 68 dataseries
data_I    // 69 dataseries
data_rBH  // 70 dataseries
data_rBE  // 71 dataseries
data_rD   // 72 dataseries
data_rIB  // 73 dataseries
data_D    // 74 dataseries
data_BH   // 75 dataseries
data_BE   // 76 dataseries
data_PIW  // 77 dataseries
data_PIE  // 78 dataseries
data_HP   // 79 dataseries
data_N   // 80 dataseries
;

varexo e_z e_A_e e_j e_mi e_me e_mk_d e_mk_be e_mk_bh e_qk e_y e_r_ib e_l e_eps_K_b e_N;


parameters  beta_p j phi beta_i m_i_ss beta_e m_e_ss alpha eksi_1 eksi_2    // HOUSEHOLDS & ENTREPRENEURS
            h a_i a_p a_e gamma_p gamma_i gamma_e    ni                     // HOUSEHOLDS & ENTREPRENEURS
            eps_l_ss kappa_w                                                // HOUSEHOLDS (labor params)
            eps_d eps_bh eps_be                                             // BANKS 
            ind_d ind_bh ind_be                                             // BANKS 
            mk_d_ss mk_bh_ss mk_be_ss r_be_ss  r_bh_ss r_k_ss N_ss              // BANKS (SS)
            gamma_b beta_b delta_kb vi kappa_kb                             // BANKS 
            eps_y_ss kappa_p ind_p ind_w                                    // RETAILERS
            kappa_i kappa_d kappa_be kappa_bh deltak                        // OTHERS
            rho_ib phi_pie phi_y                                            // POLICY
            piss  r_ib_ss                                                   // STEADY STATE
            rho_ee_z rho_A_e rho_ee_j rho_mi rho_me rho_eps_y rho_N         // SHOCKS
            rho_mk_d rho_mk_be rho_mk_bh rho_ee_qk rho_eps_l rho_eps_K_b    // SHOCKS
            ;


% *********************			
% CALIBRATED PARAMETERS
% *********************

beta_p       = 0.9960;                                                     % discount factor patient households
beta_i       = 0.975;                                                      % discount factor impatient households     
beta_b       = beta_p;                                                     % discount factor bankers (not used in this version of the model)
beta_e       = beta_i;                                                     % discount factor entrepreneurs
j            = 0.2;                                                        % weight of housing in utility function
phi          = 1.0;                                                        % inverse Frisch elasticity of labor supply
m_i_ss       = 0.8  ;                                                      % loan-to-value ratio impatient households
m_e_ss       = 0.35 ;                                                      % loan-to-value ratio entrepreneurs
alpha        = 0.250;                                                      % capital share in the production function

eps_d        = 0.02441042;                                                % elast. of subst. of deposits
eps_bh       = -0.004718071;                                                 % elast. of subst. of loans to I
eps_be       = -0.004339128;                                                 % elast. of subst. of loans to E

// eps_d        = - 0.02441042;                                                % elast. of subst. of deposits
// eps_bh       = 0.004718071;                                                 % elast. of subst. of loans to I
// eps_be       = 0.004339128;                                                 % elast. of subst. of loans to E

N_ss = 0.002440489;                                                            % Average log deviation of number of banks

//*********   mk_d_ss      = eps_d   / (eps_d  + 1) ;                      % steady state markdown on D (ok if eps_d<0; if eps_d>0 it should be eps_d/(eps_d+1) )
// mk_d_ss      = eps_d   / (eps_d  - 1) ;
// mk_bh_ss     = eps_bh  / (eps_bh - 1) ;                                    % steady state markup on loans to I
// mk_be_ss     = eps_be  / (eps_be - 1) ;                                    % steady state markup on loans to E

mk_d_ss      = (- eps_d *N + eps_d) / (- eps_d *N + eps_d + N) ;            % EXTENSION: steady state markdown on D
mk_bh_ss     = (- eps_bh *N + eps_bh) / (- eps_bh *N + eps_bh + N) ;        % EXTENSION: steady state markup on loans to I
mk_be_ss     = (- eps_be *N + eps_be) / (- eps_be *N + eps_be + N) ;        % EXTENSION: steady state markup on loans to E
book_ss      = 0; %-35                                                      % steady state value of (B-M)/D in the bank balance shhet
eps_y_ss     = 6;                                                          % 
eps_l_ss     = 5;                                                          % 
gamma_p      = 1;                                                          % shares of patient households
gamma_i      = 1; //1/3;                                                   % shares of impatient households
ni           = 0.8;                                                        % wage share of patient households
gamma_b      = 1; //0.10;												   % shares of bankers
gamma_e      = 1; //1 - gamma_p - gamma_i;								   % shares of entrepreneurs
deltak       = 0.025;                                                      % depreciation rate for physical capital
piss         = 1;                                                          % steady state gross inflation rate
//*********    r_ib_ss      = (piss/beta_p - 1) * (eps_d+1)/eps_d ;                       % steady state gross nominal interest rate 

// r_ib_ss      = (piss/beta_p - 1) * (eps_d-1)/eps_d ;
// r_be_ss      = r_ib_ss*eps_be/(eps_be-1) ;								   % steady state interest rate on loans to E
// r_bh_ss      = r_ib_ss*eps_bh/(eps_bh-1) ;								   % steady state interest rate on loans to H

r_ib_ss      = (piss/beta_p - 1) * (- eps_d *N + eps_d  + N)/(- eps_d *N + eps_d) ;
r_be_ss      = r_ib_ss* (- eps_be *N + eps_be) / (- eps_be *N + eps_be + N);								   % EXTENSION: steady state interest rate on loans to E
r_bh_ss      = r_ib_ss* (- eps_bh *N + eps_bh) / (- eps_bh *N + eps_bh + N) ;								   % EXTENSION: steady state interest rate on loans to H

r_k_ss       = -(1-deltak)-m_e_ss*(1-deltak)*piss/beta_e*
               (1/(1+r_be_ss)-beta_e/piss)+1/beta_e;                       % steady state rental rate of capital
h            = 1;                                                          % fixed supply housing
eksi_1       = r_k_ss;                                                     % capital utilization cost parameter
eksi_2       = 0.1*r_k_ss;                                                 % capital utilization cost parameter

vi           = 0.09;                                                      % Banking Capital ratio over Loans (Basel II)
eps_b        = mean([eps_bh,eps_be]);
% delta_kb     = r_ib_ss/vi * (eps_d - eps_b + vi*(eps_b-1))/((eps_b-1)*(eps_d-1));  % j_B with terms in r_ib                            
// delta_kb     = r_ib_ss/vi * (eps_d - eps_b + vi*eps_d*(eps_b-1))/((eps_b-1)*(eps_d-1)); 

delta_kb     = r_ib_ss/vi * ((- eps_d *N + eps_d) - (- eps_b *N + eps_b) + vi*(- eps_d *N + eps_d)*(- eps_b *N + eps_b + N))/((- eps_d *N + eps_d + N)*(- eps_b *N + eps_b + N));   // EXTENSION: Changed due to new markups                           


% ********************			
% ESTIMATED PARAMETERS
% ********************

kappa_p      = 100;                   % adjustment cost parameter for prices
kappa_w      = 50;                    % adjustment cost parameter for nominal wages
kappa_i      = 10;                    % adjustment cost parameter for investment
kappa_d      = 110;                   % adjustment cost parameter for deposit rates
kappa_be     = 50;                    % adjustment cost parameter for rates on loans to firms
kappa_bh     = 60;                    % adjustment cost parameter for rates on loans to households
ind_d        = 0.0;                   % indexation deposit rates
ind_be       = 0.0;                   % indexation rates on loans to firms
ind_bh       = 0.0;                   % indexation rates on loans to households
kappa_kb     = 10;                    % adjustment cost parameter for Banking Capital (Basel II)
rho_ib       = 0.75;                  % monetary policy response to lagged interest rate
phi_pie      = 1.8;                   % monetary policy response to inflation 
phi_y        = 0.2;                   % monetary policy response to output
ind_p        = 0.0;                  % degree of indexation of prices
ind_w        = 0.5;                   % degree of indexation of nominal wages to inflation
a_i          = 0.0;                   % degree of habit formation: impatient households
a_e          = 0.0;                   % degree of habit formation: entrepreneurs
a_p          = 0.0;                   % degree of habit formation: patient households
rho_ee_z     = 0.95;                  % AR(1) coefficient intertemporal preference shock
rho_A_e      = 0.95;                  % AR(1) coefficient neutral technology shock
rho_ee_j     = 0.95;                  % AR(1) coefficient housing demand shock
rho_me       = 0.95;                  % AR(1) coefficient LTV (entrepreneurs) shock
rho_mi       = 0.95;                  % AR(1) coefficient LTV (households)    shock
rho_mk_d     = 0.0;                  % AR(1) coefficient banking markup (deposits) shock
rho_mk_bh    = 0.0;                  % AR(1) coefficient banking markup (loans HH) shock
rho_mk_be    = 0.0;                  % AR(1) coefficient banking markup (loans E) shock
rho_ee_qk    = 0.95;                  % AR(1) coefficient investment specific technology shock
rho_eps_y    = 0.0;                  % AR(1) coefficient cost push shock
rho_eps_l    = 0.0;                  % AR(1) coefficient labor supply shock
rho_eps_K_b  = 0.90;                  % AR(1) coefficient Bank Balance Sheet shock
rho_N  = 0.95;                      % AR(1) coefficient bank number shock

//%------------------------------------------------------------
//% Model equations
//%------------------------------------------------------------

// EXTENSION: 
// model(block, bytecode);
model;

////1***********   1) PATIENT HHs ********************************************************6

(1-a_i)*exp(ee_z)*(exp(c_p) - a_i*exp(c_p(-1)))^(-1) = exp(lam_p); // WITH rescaling. a_i used. 
j * (exp(ee_j))  / exp(h_p) - exp(lam_p) * exp(q_h) + beta_p * exp(lam_p(+1)) * exp(q_h(+1))   = 0; // Housing decision with rescaling parameter j

exp(lam_p)  = beta_p * exp(lam_p(+1)) * (1+exp(r_d)) / exp(pie(+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(pie_wp)     - exp(pie(-1)) ^ ind_w * piss ^ (1-ind_w) ) * exp(pie_wp)
   +  beta_p * exp(lam_p(+1))/exp(lam_p) * kappa_w *( exp(pie_wp(+1)) - exp(pie)     ^ ind_w * piss ^ (1-ind_w) ) * exp(pie_wp(+1)) ^2 / exp(pie) = 0 ;

exp(pie_wp) = exp(w_p) / exp(w_p(-1)) * exp(pie);

exp(c_p) + exp(q_h) * ( exp(h_p) - exp(h_p(-1)) ) + exp(d_p)  = exp(w_p) * exp(l_p)
   + (1+exp(r_d(-1)))*exp(d_p(-1))/exp(pie) + exp(J_R)/gamma_p ;  //


////7***********   2) IMPATIENT HHs ********************************************************7

  (1-a_i)*exp(ee_z)*(exp(c_i) - a_i*exp(c_i(-1)))^(-1)  = exp(lam_i); // CON rescaling

j * (exp(ee_j))  / exp(h_i) - exp(lam_i) * exp(q_h) + beta_i * exp(lam_i(+1)) * exp(q_h(+1))  + exp(s_i) * exp(m_i) *exp(q_h(+1))   * exp(pie(+1))  = 0;    // 
exp(lam_i) - beta_i * exp(lam_i(+1)) * (1+exp(r_bh)) / exp(pie(+1)) = exp(s_i) * (1+exp(r_bh)); // 

(1 - exp(eps_l)) * exp(l_i) + exp(l_i) ^(1+phi) / exp(w_i) * exp(eps_l)/exp(lam_i) 
                                         - kappa_w *( exp(pie_wi)     - exp(pie(-1))^ind_w * piss ^ (1-ind_w) ) * exp(pie_wi)
   +  beta_i * exp(lam_i(+1))/exp(lam_i) * kappa_w *( exp(pie_wi(+1)) - exp(pie)    ^ind_w * piss ^ (1-ind_w) ) * exp(pie_wi(+1)) ^2 / exp(pie) = 0;

exp(pie_wi) = exp(w_i) / exp(w_i(-1)) * exp(pie);

exp(c_i) + exp(q_h) * (exp(h_i) - exp(h_i(-1))) + (1+exp(r_bh(-1)))*exp(b_i(-1))/exp(pie) =  
   exp(w_i) * exp(l_i) + exp(b_i)  ;  // 

(1+exp(r_bh)) * exp(b_i) = exp(m_i) * exp(q_h(+1))   *exp(h_i) * exp(pie(+1));     // 


////14***********  3) CAPITAL PRODUCERS *****************************************************

exp(K) = (1-deltak) * exp(K(-1)) + ( 1 - kappa_i/2 * (exp(I)*exp(ee_qk)/exp(I(-1)) - 1)^2 ) * exp(I) ;   

1 = exp(q_k) * ( 1 -  kappa_i/2 * (exp(I)*exp(ee_qk)/exp(I(-1)) - 1)^2  - kappa_i * (exp(I)*exp(ee_qk)/exp(I(-1)) - 1) * exp(I)*exp(ee_qk)/exp(I(-1)) ) 
  + beta_e * exp(lam_e(+1)) / exp(lam_e) * exp(q_k(+1)) *   kappa_i * (exp(I(+1))*exp(ee_qk(+1))/exp(I) - 1) * exp(ee_qk(+1)) * (exp(I(+1))/exp(I))^2 ; //   13                              //   15



////16************  4) ENTREPRENEURS *********************************************************

  (1-a_i)*(exp(c_e) - a_i*exp(c_e(-1)))^(-1) = exp(lam_e);         // CON rescaling

exp(s_e)  * exp(m_e) * exp(q_k(+1)) * exp(pie(+1)) * (1-deltak) 
     + beta_e * exp(lam_e(+1)) * ( exp(q_k(+1))*(1-deltak) + exp(r_k(+1))*exp(u(+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-alpha) * exp(y_e) / ( exp(l_pd) * exp(x) );
exp(w_i) = (1-ni) * (1-alpha) * exp(y_e) / ( exp(l_id) * exp(x) );

exp(lam_e) - exp(s_e)  * (1+exp(r_be)) = beta_e * exp(lam_e(+1)) * (1+exp(r_be)) / exp(pie(+1));  //
exp(r_k)  = eksi_1 + eksi_2 * (exp(u)-1);//

exp(c_e) + ((1+exp(r_be(-1))) * exp(b_ee(-1)) / exp(pie) ) +  (exp(w_p)*exp(l_pd) + exp(w_i)*exp(l_id)) + exp(q_k) * exp(k_e) 
   + ( eksi_1*(exp(u)-1)+eksi_2/2*(exp(u)-1)^2 ) * exp(k_e(-1)) = 
    exp(y_e) / exp(x) + exp(b_ee) + exp(q_k) * (1-deltak) * exp(k_e(-1))  ;   //    20

exp(y_e) = exp(A_e) * (exp(u)*exp(k_e(-1)))^(alpha) * ( exp(l_pd)^ni * exp(l_id)^(1-ni) ) ^ (1-alpha);

(1+exp(r_be)) * exp(b_ee) = exp(m_e) * exp(q_k(+1))  *exp(pie(+1)) * exp(k_e) * (1-deltak); //

exp(r_k) = alpha * exp(A_e) * exp(u)^(alpha-1) * exp(k_e(-1))^(alpha-1) * ( exp(l_pd)^ni * exp(l_id)^(1-ni) ) ^ (1-alpha) /exp(x);  // 23

////26*************  5)BANKS ****************************************************************

exp(R_b) = - kappa_kb * ( exp(K_b) / exp(B) - vi ) * (exp(K_b)/exp(B)) ^2  + exp(r_ib) ; // eq 27

exp(K_b) * exp(pie) = (1-delta_kb) * exp(K_b(-1)) + exp(j_B(-1)) ;

gamma_b * exp(d_b)  = gamma_p * exp(d_p) ;                                      
gamma_b * exp(b_h)  = gamma_i * exp(b_i) ; 
gamma_b * exp(b_e)  = gamma_e * exp(b_ee); 

exp(b_h) + exp(b_e)  =  exp(d_b) + exp(K_b) + eps_K_b;

/// PRICING in terms of MK ///

// - 1 + exp(mk_d)/(exp(mk_d)-1)  - exp(mk_d)/(exp(mk_d)-1)  * exp(r_ib)/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_b(+1))/exp(d_b)) = 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;//   30
  
// + 1 - exp(mk_bh)/(exp(mk_bh)-1)  +  exp(mk_bh)/(exp(mk_bh)-1)  * exp(R_b)/exp(r_bh) - kappa_bh * (exp(r_bh)/exp(r_bh(-1)) - 1 ) * exp(r_bh)/exp(r_bh(-1)) 
//   + beta_p * ( exp(lam_p(+1))/exp(lam_p) ) * kappa_bh * ( exp(r_bh(+1))/exp(r_bh) - ( exp(r_bh)/exp(r_bh(-1)))^ind_bh ) * ( (exp(r_bh(+1))/exp(r_bh))^2 ) * (exp(b_h(+1))/exp(b_h)) = 0;//

/// CHANGES BECAUSE OF EXTENSION ///

% Without taking into account that the bank influences the market rate r_d
//  - 1/exp(N) + 1/exp(N) * exp(mk_d)* exp(N) /(1- exp(N) - exp(mk_d) + exp(mk_d)*exp(N)) - 1/exp(N) * exp(mk_d)* exp(N) /(1- exp(N) - exp(mk_d) + exp(mk_d)*exp(N)) * exp(r_ib)/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_b(+1))/exp(d_b)) = 0;// 
  
//  + 1/exp(N) - 1/exp(N) * exp(mk_be)* exp(N) /(1- exp(N) - exp(mk_be) + exp(mk_be)*exp(N))  +  1/exp(N) * exp(mk_be)* exp(N) /(1- exp(N) - exp(mk_be) + exp(mk_be)*exp(N))  * 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;//   30
  
//  + 1/exp(N) - 1/exp(N) * exp(mk_bh)* exp(N) /(1- exp(N) - exp(mk_bh) + exp(mk_bh)*exp(N))  +  1/exp(N) * exp(mk_bh)* exp(N) /(1- exp(N) - exp(mk_bh) + exp(mk_bh)*exp(N))  * exp(R_b)/exp(r_bh) 
//      - kappa_bh * (exp(r_bh)/exp(r_bh(-1)) - 1 ) * exp(r_bh)/exp(r_bh(-1)) 
//      + beta_p * ( exp(lam_p(+1))/exp(lam_p) ) * kappa_bh * ( exp(r_bh(+1))/exp(r_bh) - ( exp(r_bh)/exp(r_bh(-1)))^ind_bh ) * ( (exp(r_bh(+1))/exp(r_bh))^2 ) * (exp(b_h(+1))/exp(b_h)) = 0;//


// eq 32
 - 1/exp(N)
     - kappa_d  * ( exp(r_d)/exp(r_d(-1)) - 1  )  * exp(r_d)/exp(r_d(-1)) - kappa_d/2  * ( exp(r_d)/exp(r_d(-1)) - 1  )^2
     + 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_b(+1))/exp(d_b)) = 0;// 

// eq 33
  1/exp(N)
     - kappa_bh  * ( exp(r_bh)/exp(r_bh(-1)) - 1  )  * exp(r_bh)/exp(r_bh(-1)) - kappa_bh/2  * ( exp(r_bh)/exp(r_bh(-1)) - 1  )^2
     + beta_p * ( exp(lam_p(+1))/exp(lam_p) ) * kappa_bh  * ( exp(r_bh(+1))/exp(r_bh) - ( exp(r_bh)/exp(r_bh(-1)))^ind_bh )   * ( (exp(r_bh(+1))/exp(r_bh))^2 )   * (exp(b_h(+1))/exp(b_h)) = 0;// 

// eq 34
 1/exp(N)
     - kappa_be  * ( exp(r_be)/exp(r_be(-1)) - 1  )  * exp(r_be)/exp(r_be(-1)) - kappa_be/2  * ( exp(r_be)/exp(r_be(-1)) - 1  )^2
     + 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;// 





exp(j_B) = + exp(r_bh)  *  exp(b_h)
           + exp(r_be)  *  exp(b_e) 
           - exp(r_d)   *  exp(d_b)           
           - kappa_d/2  * ( (exp(r_d)/exp(r_d(-1))-1)^2)   * exp(r_d) *exp(d_b) 
           - kappa_be/2 * ( (exp(r_be)/exp(r_be(-1))-1)^2) * exp(r_be)*exp(b_e) 
           - kappa_bh/2 * ( (exp(r_bh)/exp(r_bh(-1))-1)^2) * exp(r_bh)*exp(b_h)
           - kappa_kb/2 * ( (exp(K_b) / exp(B)  - vi ) ^2) * exp(K_b); //  

////36***********  6)RETAILERS **************************************************************

exp(J_R)  = exp(Y)*(1 - (1/exp(x))    - (kappa_p/2) * (exp(pie) - ( exp(pie(-1)) ^ ind_p * piss ^ (1-ind_p) ))^2 ) ;

1 - exp(eps_y) + exp(eps_y) / exp(x) -    kappa_p * (exp(pie)     - ( exp(pie(-1)) ^ ind_p * piss ^ (1-ind_p) )) * exp(pie) 
    + beta_p*(exp(lam_p(+1))/exp(lam_p))* kappa_p * (exp(pie(+1)) - ( exp(pie)     ^ ind_p * piss ^ (1-ind_p) )) * exp(pie(+1)) * (exp(Y(+1))/exp(Y)) = 0;  // 34

////38************  7) AGGREGATION & EQUILIBRIUM  ************************************************

exp(C)              = gamma_p * exp(c_p) + gamma_i * exp(c_i) + gamma_e * exp(c_e);
exp(BH)             = gamma_b * exp(b_h);
exp(BE)             = gamma_b * exp(b_e);
exp(B)              = (exp(BH) + exp(BE)); // eq 42
exp(D)              = gamma_p * exp(d_p) ; // oppure: (gamma_b * exp(d_b))
exp(Y)              = gamma_e * exp(y_e); //
exp(J_B)            = gamma_b * exp(j_B);  // 
gamma_e * exp(l_pd) = gamma_p * exp(l_p);
gamma_e * exp(l_id) = gamma_i * exp(l_i);
h                   = gamma_p * exp(h_p) + gamma_i * exp(h_i); //
exp(K)              = gamma_e * exp(k_e); //
% exp(Y1)             = exp(C) +    1     * (exp(K)-(1-deltak)*exp(K(-1))) + delta_kb * exp(K_b(-1)); //   
exp(Y1)             = exp(C) +    1     * (exp(K)-(1-deltak)*exp(K(-1))) ; //   
//exp(Y)              = exp(C) + exp(q_k) * (exp(K)   - (1-deltak)   * exp(K(-1))) 
//                             + delta_kb * exp(K_b(-1)) / exp(pie)
//                      + (eksi_1*(exp(u)-1) + eksi_2/2*((exp(u)-1)^2)) * exp(k_e(-1))
//                      + kappa_p/2  * (  exp(pie) - ( exp(pie(-1)) ^ ind_p * piss ^ (1-ind_p) ))^2 * exp(Y)
//                      + kappa_d/2  * ( (exp(r_d(-1))/exp(r_d(-2))-1)^2)   * exp(r_d(-1)) *exp(d_b(-1)) 
//                      + kappa_be/2 * ( (exp(r_be(-1))/exp(r_be(-2))-1)^2) * exp(r_be(-1))*exp(b_e(-1)) 
//                      + kappa_bh/2 * ( (exp(r_bh(-1))/exp(r_bh(-2))-1)^2) * exp(r_bh(-1))*exp(b_h(-1))
//                      + kappa_kb/2 * ( (exp(K_b(-1)) / exp(B(-1))  - vi ) ^2) * exp(K_b(-1))
//                      + errorflag ;  //
exp(PIW)            = ( exp(w_p) + exp(w_i) )  / ( exp(w_p(-1)) + exp(w_i(-1)) ) * exp(pie);

////51***********  8) TAYLOR RULE & PROFITS CB *****************************************************                                                  

(1+exp(r_ib)) = (1+r_ib_ss)^(1 - rho_ib ) * (1+exp(r_ib(-1)))^rho_ib * (( exp(pie) / piss ) ^phi_pie *  
             (exp(Y1)/exp(Y1(-1)))^phi_y  ) ^ ( 1 - rho_ib ) * (1+e_r_ib) ;//   

////52***********  9) EXOGENOUS PROCESSES ****************************************************13

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_i)      = (1-rho_mi)     *  m_i_ss       + rho_mi     * exp(m_i(-1))     + e_mi;
exp(m_e)      = (1-rho_me)     *  m_e_ss       + rho_me     * exp(m_e(-1))     + e_me;

// 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_bh)    = (1-rho_mk_bh)  * mk_bh_ss      + rho_mk_bh  * exp(mk_bh(-1))   + e_mk_bh;

// EXTENSION: Exogenous process of the markup. NEED TO CHANGE??
exp(mk_d)     = (1-rho_mk_d)   * mk_d_ss       + rho_mk_d   * exp(mk_d(-1))    + e_mk_d; // eq 58
exp(mk_be)    = (1-rho_mk_be)  * mk_be_ss      + rho_mk_be  * exp(mk_be(-1))   + e_mk_be;
exp(mk_bh)    = (1-rho_mk_bh)  * mk_bh_ss      + rho_mk_bh  * exp(mk_bh(-1))   + e_mk_bh;

exp(ee_qk)    =  1-rho_ee_qk   *    1          + rho_ee_qk  * exp(ee_qk(-1))   + e_qk;
exp(eps_y)    = (1-rho_eps_y)  * eps_y_ss      + rho_eps_y  * exp(eps_y(-1))   + e_y;
exp(eps_l)    = (1-rho_eps_l)  * eps_l_ss      + rho_eps_l  * 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;

// EXTENSION: New process of number of banks introduced
exp(N)        = (1-rho_N)        *    N_ss          + rho_N      * exp(N(-1))       + e_N; // eq 64


////65***********  10) AUXILIARY VARIABLES *****************************************************4

exp(rr_e)     = (1+exp(r_be))/exp(pie(+1)) - 1;
exp(aux1)     =  exp(C) + 1  * (exp(K)-(1-deltak)*exp(K(-1)));
exp(bm)       = (exp(b_h(-1))/(exp(b_h(-1))+exp(b_e(-1))) * exp(r_bh(-1)) + exp(b_e(-1))/(exp(b_h(-1))+exp(b_e(-1))) * exp(r_be(-1))) - exp(r_d(-1));
exp(spr_b)    =  0.5*exp(r_bh) + 0.5*exp(r_be) - exp(r_d);                                 //64

////69***********  11) MEASUREMENT EQUATIONS (VARIABLES TAKEN TO THE DATA)  ******************************13

data_C       =  C         - steady_state(C); 
data_I       =  I         - steady_state(I); 
data_rBH     =  exp(r_bh) - r_bh_ss;
data_rBE     =  exp(r_be) - r_be_ss;
data_rD      =  exp(r_d)  - (piss/beta_p - 1);
data_rIB     =  exp(r_ib) - r_ib_ss;
data_D       =  D         - steady_state(D);   
data_BH      =  BH        - steady_state(BH);
data_BE      =  BE        - steady_state(BE);
data_PIW     =  exp(PIW)  - piss;
data_PIE     =  exp(pie)  - piss;
//data_PIE     = exp(pie) * exp(pie(-1)) * exp(pie(-2)) * exp(pie(-3)) - piss;
data_HP      =  q_h       - steady_state(q_h);
// EXTENSION: Number of banks, new observable
data_N       =  N         - steady_state(N);

end;   //model


initval;

/////////// Initial values. Spain Extension ///////////////////

c_p      	=	-0.10314	;
h_p      	=	-0.0524999	;
d_p      	=	1.29143	;
l_p      	=	-0.263578	;
lam_p    	=	0.10314	;
J_R      	=	-1.50576	;
j_B      	=	-3.73481	;
c_i      	=	-1.90526	;
h_i      	=	-2.97308	;
b_i      	=	0.656068	;
l_i      	=	-0.055665	;
lam_i    	=	1.90526	;
s_i      	=	-2.23308	;
I        	=	-1.87535	;
c_e      	=	-2.26228	;
k_e      	=	1.81353	;
l_pd     	=	-0.263578	;
l_id     	=	-0.055665	;
b_ee     	=	0.72836	;
y_e      	=	0.285995	;
lam_e    	=	2.26228	;
s_e      	=	-1.93617	;
d_b      	=	1.29143	;
b_h      	=	0.656068	;
b_e      	=	0.72836	;
r_d      	=	-5.51745	;
r_bh     	=	-4.69582	;
r_be     	=	-4.59701	;
R_b      	=	-5.42671	;
// r_d      	=	1.1	;
// r_bh     	=	1.3	;
// r_be     	=	1.3	;
// R_b      	=	1.2	;

K_b      	=	-1.01914	;
pie      	=	-3.44179E-16	;
x        	=	0.182322	;
C        	=	0.144011	;
Y        	=	0.285995	;
D        	=	1.29143	;
BE       	=	0.72836	;
BH       	=	0.656068	;
B        	=	1.38601	;
w_p      	=	-0.143575	;
w_i      	=	-1.73778	;
J_B      	=	-3.73481	;
q_h      	=	3.86138	;
K        	=	1.81353	;
r_ib     	=	-5.42205	;

// r_ib     	=	1.05	;
r_k      	=	-3.09259	;
mk_d    	=	log(mk_d_ss)   	;
mk_be   	=	log(mk_be_ss)  	;
mk_bh   	=	log(mk_bh_ss)	;
m_i     	=	log(m_i_ss)	;
m_e     	=	log(m_e_ss)	;
Y1       	=	0.268651	;
rr_e     	=	-4.59701	;
aux1     	=	0.268651	;
bm       	=	-5.18344	;
spr_b    	=	-5.1865	;
eps_y    	=	1.79176	;
eps_l  	=	log(eps_l_ss)	;
data_C   	=	0	;
data_I   	=	0	;
data_rBH 	=	0	;
data_rBE 	=	0	;
data_rD  	=	0	;
data_rIB 	=	0	;
data_D   	=	0	;
data_BH  	=	0	;
data_BE  	=	0	;
data_PIW 	=	0	;
data_PIE 	=	0	;
data_HP  	=	0	;

// EXTENSION:
// mk_d    	=	0.908907246   	;
// mk_be   	=	2.292598027  	;
// mk_bh   	=	2.076970128 	;
N           =   0.002440489;
data_N      =   0   ;

/////////////////////////////////////////

end;

fprintf('\n...solve for the SS...\n')
% steady(solve_algo=0);
steady(solve_algo=4,maxit=100000);

resid(1);

%%%% get the SS values %%%%
ss_vector = oo_.steady_state;
n_vars    = length(ss_vector);
ss_cell   = mat2cell(ss_vector,ones(1,n_vars));
tmp       = [M_.endo_names,ones(n_vars,1)*44]';
varnames  = ['[',tmp(:)',']'];
eval([varnames,' = deal(ss_cell{:});'])

                 
disp(' ');disp('%%% Display some SS results (BK model): %%%%')
SSexpenditures  = exp(C) + exp(q_k) * (exp(K)-(1-deltak)*exp(K)) + ...
                         + delta_kb * exp(K_b) / exp(pie) + ...
                         + (eksi_1*(exp(u)-1) + eksi_2/2*((exp(u)-1)^2))*exp(k_e) + ...
                         + kappa_kb/2 * ( (exp(K_b) / exp(B)  - vi ) ^2) * exp(K_b);
SSincome        = exp(Y);
disp(['expenditures in ss: ',num2str(SSexpenditures)]);
disp(['total income in ss: ',num2str(SSincome)]);
disp(['C/Y: ',num2str(exp(C)/exp(Y))]);
disp(['I/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(['spread(%annual): ',num2str(exp(spr_b)*400)]);
disp(['bh/(bh+be)(%): ',num2str(exp(b_h)/(exp(b_h)+exp(b_e))*100)]);
disp(['be/(bh+be)(%): ',num2str(exp(b_e)/(exp(b_h)+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(['delta_kb: ',num2str(delta_kb)]);
disp(['check_i: ',num2str(beta_i*(1+exp(r_bh))/piss)]);
disp(['check_e: ',num2str(beta_e*(1+exp(r_be))/piss)]);
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))]);


%------------------------------------------------------------
% Check indeterminacy with STOCH_SIMUL 
%------------------------------------------------------------

check;
% return;

Std_e = [0.0025   0     0       0       0       0        0        0      0              % r_ib
          0      0.20    0       0       0       0        0        0      0              % A_e
          0        0     0.537   .90     .90    .90      .90        0      0              % e_mk_be
          0        0      .90   0.01    .90     .90      .90        0      0              % m_e
          0        0      .90     .90    0.44   .90      .90        0      0              % e_mk_b
          0        0      .90     .90     .90    0.01   .90         0      0              % m_i
          0        0      .90     .90     .90     .90    0.6422     0      0              % e_mk_d
          0        0       0       0       0        0        0     0.10   0              % e_j
          0        0       0       0       0        0        0       0    0.000756];      % BB 


shocks;
var e_r_ib           =  Std_e(1,1)^2;
var e_A_e            =  Std_e(2,2)^2;
% var e_mk_be          =  Std_e(3,3)^2;
% var e_me             =  Std_e(4,4)^2;
var e_mk_bh          =  Std_e(5,5)^2;
var e_mi             =  Std_e(6,6)^2;
var e_mk_d           =  Std_e(7,7)^2;
var e_j              =  Std_e(8,8)^2;
% var e_j              =  0.001^2;
end;

// Stochastic simulations 
% options_.nograph   = 1;
% options_.nomoments = 1;
% options_.noprint   = 1;
stoch_simul(order=1,irf=20) C I Y   r_ib r_be r_d   pie B D    K r_k PIW q_h J_B K_b;

% return



//%------------------------------------------------------------
//% BAYESIAN ESTIMATION  
//%------------------------------------------------------------

//% defining which dataseries are used in estimation

varobs data_C data_I data_rBH data_rBE data_rD data_rIB data_D data_BH data_BE data_PIW data_PIE data_HP data_N;

load(['data',filesep,'Data_spain.mat']); % load dataseries from file
% load(['data',filesep,'end_period_MRO.txt']); % load dataseries from file

% mro = (1+end_period_MRO./100).^0.25 - mean( (1+end_period_MRO./100).^0.25 );

% delete initial/final dates if there are NaN in the data used ...

BEG_OBS          = 2;                          % 2003:Q1
END_OBS          = length(DATES);              % 2013:Q4    
DATES            = DATES(BEG_OBS:END_OBS,:);
datadescr.DATES  = DATES;
datadescr.MODEL  = M_.fname;

% give the dataseries the names listed in the 'varobs' command ...

dataseries.data_C    = C_HP (BEG_OBS:END_OBS);
datadescr.data_C     = 'Real Consumption';

dataseries.data_I    = I_HP  (BEG_OBS:END_OBS);
datadescr.data_I     = 'Real Investment';

dataseries.data_rBH  = RBH (BEG_OBS:END_OBS) - mean(RBH (BEG_OBS:END_OBS));
datadescr.data_rBH   = 'Interest rate on loans to households';

dataseries.data_rBE  = RBE (BEG_OBS:END_OBS) - mean(RBE (BEG_OBS:END_OBS));
datadescr.data_rBE   = 'Interest rate on loans to firms';

dataseries.data_rD   = RD  (BEG_OBS:END_OBS) - mean(RD  (BEG_OBS:END_OBS));
datadescr.data_rD    = 'Interest rate on deposits';

dataseries.data_rIB  = EONIA (BEG_OBS:END_OBS) - mean(EONIA (BEG_OBS:END_OBS));
datadescr.data_rIB   = 'Short-term interest rate';

dataseries.data_D    = DR_HP  (BEG_OBS:END_OBS);
datadescr.data_D     = 'Real deposits';

dataseries.data_BH   = BHR_HP (BEG_OBS:END_OBS);
datadescr.data_BH    = 'Real loans to households';

dataseries.data_BE   = BER_HP (BEG_OBS:END_OBS);
datadescr.data_BE    = 'Real loans to firms';

dataseries.data_PIW  = PIW (BEG_OBS:END_OBS)  - mean(PIW (BEG_OBS:END_OBS));
datadescr.data_PIW   = 'Wage inflation';

dataseries.data_PIE  = PIE (BEG_OBS:END_OBS) - mean(PIE (BEG_OBS:END_OBS));
datadescr.data_PIE   = 'Inflation (q/q)';

dataseries.data_HP   = HP_HP  (BEG_OBS:END_OBS);
datadescr.data_HP    = 'Real house prices';

dataseries.data_N   = N_HP  (BEG_OBS:END_OBS);
datadescr.data_N    = 'Banking competition';


//% saving the renamed series for Dynare
save ('data/DYNARE_estimdata','-STRUCT','dataseries')


estimated_params ;

//%               Initial conditions    PRIOR shape     MEAN     STD
stderr e_z       ,       0.010,       inv_gamma_pdf,   0.0100,   0.05  ;      
stderr e_A_e     ,       0.007,       inv_gamma_pdf,   0.0100,   0.05  ;  
stderr e_j       ,       0.020,       inv_gamma_pdf,   0.0100,   0.05  ;  
stderr e_me      ,      0.0030,       inv_gamma_pdf,   0.0100,   0.05  ;  
stderr e_mi      ,      0.0041,       inv_gamma_pdf,   0.0100,   0.05  ;  
stderr e_mk_d    ,        0.09,       inv_gamma_pdf,   0.0100,   0.05  ;  
stderr e_mk_bh   ,      0.0049,       inv_gamma_pdf,   0.0100,   0.05  ;  
stderr e_mk_be   ,      0.0835,       inv_gamma_pdf,   0.0100,   0.05  ;	//10
stderr e_qk      ,      0.0136,       inv_gamma_pdf,   0.0100,   0.05  ;      
stderr e_r_ib    ,      0.0020,       inv_gamma_pdf,   0.0100,   0.05  ;  
stderr e_y       ,        0.90,       inv_gamma_pdf,   0.0100,   0.05  ;	
stderr e_l       ,       0.348,       inv_gamma_pdf,   0.0100,   0.05  ;	
stderr e_eps_K_b ,       0.008,       inv_gamma_pdf,   0.0100,   0.05  ;
// EXTENSION: Estimate the std of the innovation of new process	
stderr e_N       ,       0.008,       inv_gamma_pdf,   0.0100,   0.05  ;

rho_ee_z         ,        0.55,            beta_pdf,     0.80,   0.10  ;                   
rho_A_e          ,        0.95,            beta_pdf,     0.80,   0.10  ;                   
rho_ee_j         ,        0.98,            beta_pdf,     0.80,   0.10  ;
rho_me           ,        0.95,            beta_pdf,     0.80,   0.10  ;
rho_mi           ,        0.95,            beta_pdf,     0.80,   0.10  ;                   
rho_mk_d         ,        0.95,            beta_pdf,     0.80,   0.10  ;                   
rho_mk_bh        ,        0.85,            beta_pdf,     0.80,   0.10  ;                   
rho_mk_be        ,        0.85,            beta_pdf,     0.80,   0.10  ;                   
rho_ee_qk        ,        0.55,            beta_pdf,     0.80,   0.10  ;                   
rho_eps_y        ,        0.80,            beta_pdf,     0.80,   0.10  ;                   
rho_eps_l        ,        0.60,            beta_pdf,     0.80,   0.10  ;                   
rho_eps_K_b      ,        0.80,            beta_pdf,     0.80,   0.10  ;     
kappa_p 		 ,          50,           gamma_pdf,       50,    20   ;   			
kappa_w 		 ,          50,           gamma_pdf,       50,    20   ;			
kappa_i 		 ,         4.5,           gamma_pdf,      2.5,    1.0  ;			
kappa_d 		 ,          10,           gamma_pdf,       10,    2.5  ;
kappa_be		 ,           3,           gamma_pdf,        3,    2.5  ;
kappa_bh		 ,           6,           gamma_pdf,        6,    2.5  ;
kappa_kb         ,           5,           gamma_pdf,     10.0,    5.0  ;
phi_pie          ,         2.0,           gamma_pdf,      2.0,    0.5  ; 
rho_ib           ,        0.75,            beta_pdf,     0.75,    0.10 ;   
phi_y            ,         0.2,          normal_pdf,     0.10,    0.15 ;     
ind_p            ,        0.20,            beta_pdf,     0.50,    0.15 ;
ind_w            ,        0.25,            beta_pdf,     0.50,    0.15 ;
a_i              ,         0.6,            beta_pdf,     0.50,    0.10 ; 

 end;

 estimation(datafile='data/DYNARE_estimdata'
                 ,mode_compute = 9 %9
 //               ,mode_file    = ''
                 ,mh_jscale    = 0.2            
                 ,presample    = 1
                 ,prefilter    = 0
                 ,prior_trunc  = 1e-14
                 ,mh_replic    = 200 %put 500 for test and a big number (like 100000) when serious
                 ,mh_nblocks   = 1   %put 1   for test and 5 or 10 when serious
                 ,filtered_vars
                 ,lik_init     = 2 % 1
                 ,order        = 1
                 ,mode_check
                 )                
                 C I Y1 r_ib r_be r_bh r_d pie B D J_B K_b;
             
save([M_.fname '_results.mat'],'oo_','M_','estim_params_','options_','dataseries','datadescr');


