
%%%%%%%%%%%%%%%
%% ENDOGENOUS VARIABLES DECLARED
%%%%%%%%%%%%%%%

var c_hat r_hat pie_hat tau_c_hat wr_hat l_hat tau_l_hat c_h_hat pr_h_hat c_f_hat pr_f_hat e_del_hat zr_hat qr_hat i_hat i_h_hat i_f_hat tau_i_hat pr_i_hat k_hat mcr_hat pie_h_hat pie_f_hat rer_hat tau_star_f_hat pd_hat g_hat b_hat gdp_hat tau_g_hat x_hat m_hat y_h_hat tau_a_hat mark_hat y_star_hat pie_star_hat t_hat tau_t_hat;

%%%%%%%%%%%%%
%% OBSERVED VARIABLES
%%%%%%%%%%%%%

var c_obs x_obs inv_obs	gdp_obs	g_obs m_obs pie_obs	r_obs rer_obs e_del_obs;


%%%%%%%%%%%%%%
%% EXOGENOUS VARIABLES DECLARED
%%%%%%%%%%%%%%

varexo eps_c eps_i eps_a eps_g eps_f eps_mark eps_yf eps_pie_star eps_l eps_t;

%%%%%%%%%%%%%%
%% PARAMETERS DECLARED
%%%%%%%%%%%%%%

parameters h betta sigma_l eta_c gamma_c s_1 delta qr theta_i gamma_i allpha fi_h fi_f g_gdp t_gdp phi_gdp phi_b phi_pd c_gdp eta_star mu_r mu_h mu_f mu_e mu_gdp mu_pd rho_g rho_i rho_f rho_a rho_l rho_c rho_mark rho_yf rho_pie_star rho_t phi_gdp_t phi_b_t phi_pd_t phi_g phi_t;  


%%%%%%%%%%%%%%%
%% CALIBRATION OF PARAMETERS
%%%%%%%%%%%%%%%

h=0.45;


rho=0.01;

sigma_l=5;

betta=0.99;

eta_c=0.8;

gamma_c=0.65;

delta=0.069;

s_1=1;
qr=1;

theta_i=0.5;

gamma_i=0.5;

allpha=0.2;

fi_h=0.75;

fi_f=0.75;


c_gdp=0.6;

g_gdp=0.12;

t_gdp=0.07;

phi_gdp=0.1;

phi_pd=0.9;

phi_b=0.5;


phi_gdp_t=0.2;

phi_pd_t=0.5;

phi_b_t=0.3;


eta_star=0.01;

mu_r=0.5;

mu_h=0.4;

mu_f=0.1;

mu_e=0.5;

mu_gdp=0.5;

mu_pd=0.5;

rho_c=0.5; 

rho_l=0.5;

rho_g=0.5;

rho_i=0.5;

rho_f=0.5; 

rho_a=0.5;

rho_mark=0.5;

rho_yf=0.5;

rho_pie_star=0.5;

rho_t=0.5;

phi_g=0.5;

phi_t=0.5;

//khi_h=((1-betta*fi_h)*(1-fi_h))/fi_h;
//khi_f=((1-betta*fi_f)*(1-fi_f))/fi_f;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% DSGE MODEL %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

model(linear);

%%%%%%%%%%%%%%%%%%%%%
%% STEADY STATE RELATIONSHIPS
%%%%%%%%%%%%%%%%%%%%%

#R=1/betta;
#zr=qr*((1/betta)+delta-1);
#pd_gdp=g_gdp-t_gdp;
#i_gdp=1-c_gdp-g_gdp;
#m_gdp=((1-gamma_i)*i_gdp)+((1-gamma_c)*c_gdp);
#x_gdp=m_gdp;
#y_h_gdp=(gamma_c*c_gdp)+(gamma_i*i_gdp)+g_gdp+x_gdp;


%%CONSUMER%%

//Euler

c_hat=((h-1)/(1+h))*(r_hat-pie_hat)+(1/(1+h))*c_hat(+1)+(h/(1+h))*c_hat(-1)+((1-h)/(1+h))*(tau_c_hat-tau_c_hat(+1));


//Labour equation - flexible wages

wr_hat=tau_l_hat+(sigma_l*l_hat)+((c_hat-(h*c_hat(-1)))/(1-h));

//Home and Foreign bifurcation

c_h_hat=c_hat-eta_c*pr_h_hat;
c_f_hat=c_hat-eta_c*pr_f_hat;
(gamma_c*pr_h_hat)+((1-gamma_c)*pr_f_hat)=0;


%%INVESTOR FIRM%%

i_hat=(1/(1+betta))*(((qr_hat+tau_i_hat-pr_i_hat)/s_1)+i_hat(-1)+betta*i_hat(+1));

qr_hat=pie_hat(+1)-r_hat+((1-delta)*betta*qr_hat(+1))+((betta*zr/qr)*zr_hat(+1));

k_hat(+1)=(1-delta)*k_hat+delta*(i_hat+tau_i_hat);

//k_hat=(1-delta)*k_hat(-1)+delta*(i_hat(-1)+tau_i_hat(-1));

//Home and Foreign bifurcation

i_h_hat=i_hat-theta_i*(pr_h_hat-pr_i_hat);
i_f_hat=i_hat-theta_i*(pr_f_hat-pr_i_hat);
pr_i_hat=gamma_i*pr_h_hat+(1-gamma_i)*pr_f_hat;


%%FIRMS%%

k_hat-l_hat=wr_hat-zr_hat;

mcr_hat=allpha*zr_hat+(1-allpha)*wr_hat-tau_a_hat;

//pie_h_hat=betta*pie_h_hat(+1)+(((1-betta*fi_h)*(1-fi_h))/fi_h)*(mcr_hat+mark_hat-pr_h_hat);

betta*pie_h_hat=pie_h_hat(-1)-(((1-betta*fi_h)*(1-fi_h))/fi_h)*(mcr_hat(-1)+mark_hat(-1)-pr_h_hat(-1));

//pie_f_hat=betta*pie_f_hat(+1)+(((1-betta*fi_f)*(1-fi_f))/fi_f)*(rer_hat+tau_star_f_hat-pr_f_hat);

betta*pie_f_hat=pie_f_hat(-1)-(((1-betta*fi_f)*(1-fi_f))/fi_f)*(rer_hat(-1)+tau_star_f_hat(-1)-pr_f_hat(-1));

pie_h_hat=pr_h_hat-pr_h_hat(-1)+pie_hat;

pie_f_hat=pr_f_hat-pr_f_hat(-1)+pie_hat;

e_del_hat=rer_hat-rer_hat(-1)+pie_hat-pie_star_hat;


%%GOVERNMENT%%

pd_gdp*pd_hat=(g_gdp*g_hat)-(t_gdp*t_hat);

b_hat=b_hat(-1)+R*(r_hat(-1)+b_hat(-1))+R*pd_hat(-1);

g_hat=(phi_g*g_hat(-1))+(1-phi_g)*((phi_gdp*gdp_hat)-(phi_pd*pd_hat)-(phi_b*b_hat))+tau_g_hat;

t_hat=(phi_t*t_hat(-1))+(1-phi_t)*((phi_gdp_t*gdp_hat)-(phi_pd_t*pd_hat)-(phi_b_t*b_hat))+tau_t_hat;

%%MARKET CLEARING%%

//GDP

(pr_h_hat+gdp_hat)=(c_gdp*c_hat)+(g_gdp*(g_hat+pr_h_hat))+(i_gdp*(i_hat+pr_i_hat))+(x_gdp*(pr_h_hat+x_hat))-(m_gdp*(pr_f_hat+m_hat));

x_hat=y_star_hat-(eta_star*(pr_h_hat-rer_hat));

m_gdp*(pr_f_hat+m_hat)=((1-gamma_c)*c_gdp*(pr_f_hat+c_f_hat))+((1-gamma_i)*i_gdp*(pr_f_hat+i_f_hat));

//Balance of Payments

pr_h_hat+x_hat=pr_f_hat+m_hat;

//Aggregate Demand

y_h_gdp*(pr_h_hat+y_h_hat)=(gamma_c*c_gdp*(pr_h_hat+c_h_hat))+(gamma_i*i_gdp*(pr_h_hat+i_h_hat))+(g_gdp*(pr_h_hat+g_hat))+(x_gdp*(pr_h_hat+x_hat));

//Aggregate Supply

y_h_hat=tau_a_hat+(allpha*k_hat)+((1-allpha)*l_hat);


%%CENTRAL BANK%%

r_hat=(mu_r*r_hat(-1))+(1-mu_r)*((mu_h*pie_h_hat)+(mu_f*pie_f_hat)+(mu_e*rer_hat)+(mu_gdp*gdp_hat)+(mu_pd*pd_hat));


%%SHOCKS%%

tau_a_hat=rho_a*tau_a_hat(-1)+eps_a;
tau_c_hat=rho_c*tau_c_hat(-1)+eps_c;
tau_l_hat=rho_l*tau_l_hat(-1)+eps_l;
tau_i_hat=rho_i*tau_i_hat(-1)+eps_i;
tau_g_hat=rho_g*tau_g_hat(-1)+eps_g;
tau_star_f_hat=rho_f*tau_star_f_hat(-1)+eps_f;
mark_hat=rho_mark*mark_hat(-1)+eps_mark;

y_star_hat=rho_yf*y_star_hat(-1)+eps_yf;
pie_star_hat=rho_pie_star*pie_star_hat(-1)+eps_pie_star;
tau_t_hat=rho_t*tau_t_hat(-1)+eps_t;




%%MEASUREMENT EQUATIONS%%

r_obs=r_hat;
c_obs=c_hat;
x_obs=x_hat;
inv_obs=i_hat;
gdp_obs=gdp_hat;
m_obs=m_hat;
g_obs=g_hat;
rer_obs=rer_hat;
pie_obs=pie_hat;
e_del_obs=e_del_hat;

end;


check;
steady;

%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%SPECIFICATION OF SHOCKS%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
shocks;
var eps_a; stderr 1.00;
var eps_c; stderr 1.00;
var eps_i; stderr 1.00;
var eps_l; stderr 1.00;
var eps_g; stderr 1.00;
var eps_f; stderr 1.00;
var eps_mark; stderr 1.00;
var eps_t; stderr 1.00;

var eps_yf; stderr 1.00;
var eps_pie_star; stderr 1.00;

end;

%% BAYESIAN ESTIMATION

estimated_params;

//stderr eps_a,     INV_GAMMA_PDF,3.00, 3.00; //technology shock
//stderr eps_c,     INV_GAMMA_PDF,3.00, 3.00; //consumption shock
//stderr eps_i,     INV_GAMMA_PDF,3.00, 3.00; //investment shock
//stderr eps_l,     INV_GAMMA_PDF,3.00, 3.00; //investment shock

//stderr eps_g,    INV_GAMMA_PDF,3.00, 3.00; //government spending shock
//stderr eps_f,     INV_GAMMA_PDF,3.00, 3.00; //shock to relative price of imported goods in abroad
//stderr eps_mark,     INV_GAMMA_PDF,3.00, 3.00; //markup shock
//stderr eps_yf,     INV_GAMMA_PDF,3.00, 3.00; //foreign demand for exports shock
//stderr eps_pie_star,    INV_GAMMA_PDF,3.00, 3.00; //global inflation shock
//stderr eps_rf,     INV_GAMMA_PDF,3.00, 3.00; //foreign interest rate shock

//stderr eps_a,     INV_GAMMA_PDF,0.01, 0.01; //technology shock
//stderr eps_c,     INV_GAMMA_PDF,0.01, 0.01; //consumption shock
//stderr eps_i,     INV_GAMMA_PDF,0.01, 0.01; //investment shock
//stderr eps_l,     INV_GAMMA_PDF,0.01, 0.01; //labour shock

//stderr eps_t,     INV_GAMMA_PDF,0.01, 0.01; //tax shock

//stderr eps_g,    INV_GAMMA_PDF,0.01, 0.01; //government spending shock
//stderr eps_f,     INV_GAMMA_PDF,0.01, 0.01; //shock to relative price of imported goods in abroad
//stderr eps_mark,     INV_GAMMA_PDF,0.01, 0.01; //markup shock
//stderr eps_yf,     INV_GAMMA_PDF,0.01, 0.01; //foreign demand for exports shock
//stderr eps_pie_star,    INV_GAMMA_PDF,0.01, 0.01; //global inflation shock
//stderr eps_rf,     INV_GAMMA_PDF,0.01, 0.01; //foreign interest rate shock




rho_a,          BETA_PDF,0.75,0.10; 
rho_c,          BETA_PDF,0.75,0.10;
rho_i,          BETA_PDF,0.75,0.10;
rho_l,          BETA_PDF,0.75,0.10;
rho_g,          BETA_PDF,0.75,0.10;
rho_f,          BETA_PDF,0.75,0.10;
rho_mark,          BETA_PDF,0.75,0.10;
rho_yf,          BETA_PDF,0.75,0.10;
rho_pie_star,          BETA_PDF,0.75,0.10;
//rho_rf,          BETA_PDF,0.75,0.10;

rho_t,          BETA_PDF,0.75,0.10;

eta_c, INV_GAMMA_PDF, 1.00, 3.00;  
gamma_c, INV_GAMMA_PDF, 1.00, 3.00;
theta_i, INV_GAMMA_PDF, 1.00, 3.00;
gamma_i, INV_GAMMA_PDF, 1.00, 3.00;
fi_h, BETA_PDF, 0.75, 0.15;
fi_f, BETA_PDF, 0.75, 0.15;


mu_r, BETA_PDF, 0.75, 0.10;
mu_h, NORMAL_PDF, 2.00, 1.00;
mu_f, NORMAL_PDF, 2.00, 1.00;
mu_e, NORMAL_PDF, 2.00, 1.00;
mu_gdp, NORMAL_PDF, 2.00, 1.00;


phi_g, NORMAL_PDF, 0.00, 1.00;
phi_t, NORMAL_PDF, 0.00, 1.00;

phi_gdp, NORMAL_PDF, 0.00, 1.00;
phi_b, NORMAL_PDF, 0.00, 1.00;
phi_pd, NORMAL_PDF, 0.00, 1.00;

phi_gdp_t, NORMAL_PDF, 0.00, 1.00;
phi_b_t, NORMAL_PDF, 0.00, 1.00;
phi_pd_t, NORMAL_PDF, 0.00, 1.00;

//phi_gdp, UNIFORM_PDF, , ,0,3;
//phi_b, UNIFORM_PDF, , ,0,3;
//phi_pd, UNIFORM_PDF, , ,0,3;
//phi_gdp_t, UNIFORM_PDF, , ,0,3;
//phi_b_t, UNIFORM_PDF, , ,0,3;
//phi_pd_t, UNIFORM_PDF, , ,0,3;

//for_rho, INV_GAMMA_PDF, 0.01, 4.00;

end;

%%DECLARE OBSERVABLE VARIABLES

varobs c_obs x_obs inv_obs	gdp_obs	g_obs m_obs pie_obs	r_obs rer_obs e_del_obs;

estimated_params_init(use_calibration);
end;

options_.plot_priors=0;
estimation(datafile=Final,xls_sheet=Sheet1,xls_range=A1:K58,mode_compute=6,first_obs=1,presample=4,nobs=57,prefilter=0,mh_replic=2001,mh_nblocks=1,mh_jscale=0.40,mh_drop=0.1);
%%estimation(datafile=Final,xls_sheet=Sheet1,xls_range=A1:K58,mode_compute=4,first_obs=1,mcmc_jumping_covariance=identity_matrix,presample=4,nobs=57,prefilter=0,mh_replic=50,mh_nblocks=1,mh_jscale=0.40,mh_drop=0.1); 

//estimation(datafile=Final,xls_sheet=Sheet1,xls_range=A1:K58,mode_compute=0,first_obs=1,presample=4,nobs=57,mode_file=Bay1_Markup_tax_mode,prefilter=0,mh_replic=2001,mh_nblocks=1,mh_jscale=0.40,mh_drop=0.1);

stoch_simul(irf=20,ar=10) c_obs x_obs inv_obs gdp_obs g_obs pie_obs	r_obs rer_obs c_hat x_hat i_hat gdp_hat g_hat pie_hat r_hat rer_hat;

identification;

shock_decomposition (parameter_set=posterior_mode) c_obs x_obs inv_obs	gdp_obs	g_obs m_obs pie_obs	r_obs rer_obs e_del_obs;

