% 1. Défnition des variables et paramètres

var y c nfa pi pi_h pi_f mc psi s q d i z y_star pi_star i_star mu_c mu_f mu_i d_y d_y_star;
 
varexo eps_z eps_c eps_f eps_i eps_y_star eps_pi_star eps_i_star; 

parameters alpha beta chi delta h sigma neta phi theta mvarrho mvarrho_pi mvarrho_dy mvarrho_d rho_z rho_c rho_f rho_i rho_y_star rho_pi_star rho_i_star;  	


% 2. Calibrage de certains paramètres

alpha=0.70;
beta=0.93;
chi=0.01;
delta=0.6;
h=0.5;
neta=1.5;
sigma=2;
theta=0.5;
rho_i=0;
phi=2;
mvarrho_d=0*1000;



% 3. Modèle

model(linear);

c-h*c(-1) = c(+1)-h*c - ((1-h)/sigma)*(i - pi(+1)) + mu_c; 

y = (1-alpha)*c + (neta*alpha*(2-alpha))*s + alpha*y_star + neta*alpha*psi; 

nfa -(1/beta)*nfa(-1) = y - c - alpha*(s + psi);

pi_h = (delta/(1+delta*beta))*pi_h(-1) + (beta/(1+delta*beta))*pi_h(+1) + (((1-theta)*(1-theta*beta))/(theta*(1+delta*beta)))*mc;

mc = phi*y - (1+phi)*z + alpha*s + ((sigma)/(1-h))*(c-h*c(-1)); 

pi_f = (beta/(1+delta*beta))*pi_f(+1) + (delta/(1+delta*beta))*pi_f(-1) + (((1-theta)*(1-theta*beta))/(theta*(1+delta*beta)))*psi + mu_f;

i - i_star = d(+1)- chi*nfa;

//REGIME DE CHANGE FIXE

//i = mvarrho*i(-1) + (1-mvarrho)*(mvarrho_pi*pi(+1) + mvarrho_dy*d_y + mvarrho_d*d);

//i = mvarrho*i(-1) + (1-mvarrho)*(mvarrho_pi*pi(+1) + mvarrho_dy*d_y + mvarrho_d*d) +mu_i;

//d=0;


//REGIME DE CHANGE DIRIGE

//i = mvarrho*i(-1) + (1-mvarrho)*(mvarrho_pi*pi(+1) + mvarrho_dy*d_y + mvarrho_d*d )+mu_i;


//REGIME DE CHANGE FLOTTANT

i = mvarrho*i(-1) + (1-mvarrho)*(mvarrho_pi*pi(+1) + mvarrho_dy*d_y)+mu_i;

pi = (1-alpha)*pi_h + alpha*pi_f; 
q = (1-alpha)*s + psi;
s = s(-1) + pi_f - pi_h; 
q = q(-1) +  d + pi_star - pi;
d_y = y - y(-1);
d_y_star = y_star - y_star(-1);

z = rho_z*z(-1) + eps_z;
mu_c = rho_c*mu_c(-1) + eps_c;
mu_f = rho_f*mu_f(-1) + eps_f;
mu_i = rho_i*mu_i(-1) + eps_i;

y_star = rho_y_star*y_star(-1) + eps_y_star; 
pi_star = rho_pi_star*pi_star(-1) + eps_pi_star; 
i_star = rho_i_star*i_star(-1) + eps_i_star; 

end;


% 4. Distributions à priors

estimated_params;

mvarrho,     beta_pdf, 0.75, 0.15; 
mvarrho_pi,  gamma_pdf, 1.5, 0.25; 
mvarrho_dy,  gamma_pdf, 0.7, 0.1; 
mvarrho_d,   gamma_pdf, 0.7, 0.1; 


rho_z,       beta_pdf, 0.5, 0.2; 
rho_c,       beta_pdf, 0.5, 0.2;  
rho_f,       beta_pdf, 0.5, 0.2; 
rho_i,       beta_pdf, 0.5, 0.2; 
rho_y_star,  beta_pdf, 0.5, 0.2; 
rho_pi_star, beta_pdf, 0.5, 0.2; 
rho_i_star,  beta_pdf, 0.5, 0.2; 


stderr eps_z,        	inv_gamma_pdf, 1, inf; 
stderr eps_c,       	inv_gamma_pdf, 1, inf; 
stderr eps_f,       	inv_gamma_pdf, 1, inf; 
stderr eps_i,       	inv_gamma_pdf, 1, inf;
stderr eps_y_star,      inv_gamma_pdf, 1, inf;  
stderr eps_pi_star,     inv_gamma_pdf, 1, inf;  
stderr eps_i_star,      inv_gamma_pdf, 1, inf; 

end;


% 7. Variables observables

varobs y pi i y_star i_star pi_star; 

% 8. Estimation

estimation (order=1, datafile=data_hp_arg_us, mode_compute=4, mh_nblocks=1, mh_replic=15000, mh_drop=0.45, mh_jscale=0.35) y pi;  

stoch_simul(order=1,periods=25000,drop=100); 