% Foreign aid and its volatility
%__________________________________________________________________________
%1. Defining variables
%__________________________________________________________________________

% List of endogenous variables
var yt yn Y Ct Cn C Kt Kn K  Lt Ln epst epsn epsx xt 

% List of exogenuous variables

varexo et,en,ex;

parameters beta omega mu k sigma alpha eta delta nu At An sigma(epst) sigma(epsn) sigma(epsx) X;

%__________________________________________________________________________
% 2. Calibration
%__________________________________________________________________________

beta  = 0.95;
omega = 0.26;
1/(1+mu) = 0.76;
delta =  0.05;
alpha = 0.3;
eta   = 0.5;
sigma = 5.00;
1/(1+nu)= -0.11;
At    = 1;
An    = 1.52;
sigma(epst)= sigma(epsn)= 0.11;
X     = 1.32;
sigma(epsx) = 0.74;


klt=(1-beta_beta*delta)/(alpha*beta*At);                                        %Kt/Lt
kln=(1-alpha/(1-eta))*(eta/alpha)*[delta-1+1/beta]^(1/(alpha-1));               %Kn/Ln

ky_t= (beta*alpha)/(1+beta*delta-beta);                                         %Kt/yt
kpy_n= (eta*beta)/(1+beta*delta-beta);                                          %Kn/pn*yn
knkt=1/(1+nu);                                                                  %Kn/Kt
pn=((1-alpha)/(1-eta))*(At/An)*((KLt)^alpha)*(KLn)^(-eta);                      %marginal rate of substitution between consumption of tradable and non-tradable secotrs

                     

%__________________________________________________________________________
% 3. Model
%__________________________________________________________________________


beta*[(C(+1)^(-sigma))/(Ct(+1)^(mu+1))*(At*exp(expt(+1))*alpha*((Kt/Lt)^(alpha-1)) + 1- delta)] =(C^(-sigma))/Ct^(mu+1);     % Euler equation

At*exp(epst)*alpha*(Kt/Lt)^(apha-1) = pn*An*exp(epsn)*eta*(Kn/Ln)^(eta-1));       % Marginal productivity of capital/The rate of return
At*exp(epst)*(1-alpha)*(Kt/Lt)^alpha = pn*An*exp(epsn)*(1-eta)*(Kn/Ln)^eta;       % Marginal productivity of labor/ The wage rate 
pn = ((1-omega)/omega)*(Cn/Ct)^(-(1+eta));                                        % Marginal rate of substitution between consumptin of tradable and non-tradable goods

yt = At*exp(epst)*(Kt^alpha)*Lt^(1-alpha);                                        % Output in tradable sector
yn = An*exp(epsn)*(Kn^eta)*Ln^(1-eta);                                            % Output in non-tradable sector
Y= pn*yn+yt;                                                                      % GDP


Cn = An*(Kn^eta)*Ln^(1-eta);                                                      % Market clearing condition in the sector of non-tradable goods
Ct + i = yt + xt;                                                                 % Maret clearing condition in the sector of tradable goods


K= i+ (1-delta)*K(-1);                                                            % Capital Accumulation
K=[Kt^(-nu)+Kn^(-nu)]^(-1/nu);                                                    % Capital sector specifiation

C=[(1-omega)*(Ct)^(-mu)+omega*(Cn)^(-mu)]^(-1/mu)                                 % Total consumption
end;

Lt+Ln=1;                                                                          % Labor Market, market clearing condition

xt=X*sigma(epsx)                                                                  % Aid        



log(epsx) =(1-psi)*log(epsx_bar) + psi*log(epsx(-1))+e
log(epsn) =(1-psi)*log(epsn_bar) + psi*log(epsn(-1))+e1
log(epst) =(1-psi)*log(epst_bar) + psi*log(epst(-1))+e2


end;

%__________________________________________________________________________
4.Computation
%__________________________________________________________________________

initval;

K=K(-1)
C=C(+1)
Ct=Ct(+1)

Lt=1/[((1-eta)*alpha/(1-alpha)*eta)*(knkt)+1];
Ln=1-Lt;

yt=At*((klt)^eta)*Lt;
yn=An*((kln)^alpha)*Ln;
Y=yt+pn*yn;

Ct=(pn*yn)[pn(1-omega)/omega]^(-1/1+eta);
Cn=yn
C=[(1-omega)*(Cn)^(-mu)+omega*(Ct)^(-mu)]^(-1/mu);

Kt=yt*ky_t;
Kn=yn*pn*kpy_n;
K=[Kt^(-mu)+Kn^(-mu)]^(-1/mu);

i=delta*K;
X=Ct+yt-i;



e=0;
e1=0;
e2=0;
epsn=1;
epst=1;
epsx=1;

shocks,

var e1=var e2=sigma1^2;
var e=sigma^2;
var e1,e=0.9*sigma1*sigma;


steady;

stoch_simul(hp_filter = 1600, order = 1);                                    % calculates the theoretical moments. HP-filtering before.









