%Modeling Sterlized Inerventions and Balance Sheet Effects of Monetary Policy in a New-Keynesian Framework
%
% By Felipe Montano Campos,2015
%-----------------------------------------------------------
% 1.Definiendo Variables
%-----------------------------------------------------------

// Endogenous variables (19)
var l ii q c_m p_x y_x p_m c c_n j pi y w pi_m pi_n i f s tot ; //
// Exogenous variables (2)
varexo u_ii u_tot;
// Parameters (23)
parameters BETA ETA TB OMEGA_n ZETA VARRHO PHI GAMMA XI XI_m OMEGAM;
parameters RHO ALPHA DELTA CHI RHO_f VARTHETA OMEGA RHO_II RHO_TOT;
parameters SIGMA_ii SIGMA_tot;


%----------------------------------------------------------------
% 2. Calibracion
%----------------------------------------------------------------
// Parametros calibrados
PHI=0.5;
VARRHO=0.01;
OMEGA_n=0.5;
BETA=0.9975;
ALPHA=1.5;
DELTA=0;
RHO=0.7;
OMEGAM=0.1;
ZETA=0.0025;
XI=0.1;
XI_m=0.5;
RHO_II=0.8;
RHO_TOT=0.8;
GAMMA=0.7;
RHO_f=0.7;
ETA=0.4987;
CHI=0;
OMEGA=0;
VARTHETA=0;
TB=0.0025;
SIGMA_ii=0.01;
SIGMA_tot=0.01;





%----------------------------------------------------------------
% 3. Modelo  (19 ecuaciones)
%----------------------------------------------------------------
Model(linear);
l= (BETA^(-1))*l(-1)+1*(BETA^(-1))*(ii(-1)+q-q(-1))+(1-ETA-TB)*(q+c_m)-(1-ETA)*(p_x+y_x);
c_m=-p_m+c;
c_n=((1-OMEGA_n)/OMEGA_n)*p_m+c;
c=c(+1)-(j-pi(+1))-(1+ZETA)*VARRHO*l;
PHI*(GAMMA^(-1))*y=w-c;
pi_n=(1/(1+BETA))*pi_n(-1)+(BETA/(1+BETA))*pi_n(+1)+(XI/(1+BETA))*(w+((1-GAMMA)/GAMMA)*c_n+((1-OMEGA_n)/OMEGA_n)*p_m);
pi_m=(1/(1+BETA))*pi_m(-1)+(BETA/(1+BETA))*pi_m(+1)+(XI_m/(1+BETA))*(q-p_m);
pi=OMEGA_n*pi_m+(1-OMEGA_n)*pi_n;
y_x=(GAMMA/(1-GAMMA))*(w-p_x);
p_m-p_m(-1)=pi_m-pi;
y=ETA*c_n+(1-ETA)*y_x;
i=ii+q(+1)-q+pi(+1)+OMEGAM*(1+ZETA)*f;
j=i;
i=RHO*i(-1)+(1-RHO)*(ALPHA*pi+DELTA*y+CHI*s);
f=RHO_f*f(-1)-(1-RHO_f)*(OMEGA*s+VARTHETA*(s-s(-1)));
q=q(-1)+s-s(-1)-pi;
p_x=((1-ETA)^(-1))*tot+q;
tot=RHO_TOT*tot(-1)+u_tot;
ii=RHO_II*ii(-1)+u_ii;

end;
%----------------------------------------------------------------
% 4. Steady State
%----------------------------------------------------------------

steady_state_model; 
  
c_n_ss=0;
c_m_ss=0;
y_ss=0;
w_ss=0;
i_ss=0;
j_ss=0;
ii_ss=0;
y_x_ss=0;
pi_m_ss=0;
pi_n_ss=0;
TB_ss=0;
f_ss=0;
c_ss=0;
p_m_ss=0;
q_ss=0;
p_x_ss=0;
pi_ss=0;
s_ss=0;
tot_ss=0;
l_ss=0;


end;


%----------------------------------------------------------------
% 4. Computation
%----------------------------------------------------------------



shocks;
var u_ii = SIGMA_ii^2;
var u_tot = SIGMA_tot^2;
end;

stoch_simul(periods=0, irf = 50, order = 1);
save TrabajoFinal.mat;



