%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% Collateral Constraints in a SOE: One good %%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%
%%%%%%%%%%%%%%%%%%%%%%%Endogenous Variables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
var
C      % Consumption
I      % Investment 
B      % External debt
K      % Capital 
Y      % Output 
H      % Hours worked 
lambda % Marginal utility 
phi    % Collateral constraint multiplier  
Rz     % Foreign interest rate

;


%%
%%%%%%%%%%%%%%%%%%%%%%%Exogenous Variables%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
varexo 
vmz;   % Foreign interest rate innovation
     
%%
%%%%%%%%%%%%%%%%%%%%%%%Parameters%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

parameters 
beta theta eta a alpha delta gamma Z rhoz Rzss 
;
beta=0.9755;   % Discount factor
theta=1;       % Inverse of Frisch elasticity
eta=1;         % Inverse of EIS
a=6.03;        % Labor supply shifter 
alpha=0.33;    % Capital share
delta=0.025;   % Depreciation rate
gamma=0.2238;  % LTV
Z=1.1128;      % TFP
rhoz=0.95;     % AR(1) coefficient of the exogenous process
Rzss=1.02;     % Steady state foreign interest rate

%%
%%%%%%%%%%%%%%%%%%%%%%%Non-Linear Model%%%%%%%%%%%%%%%%%%%%%%%%%%F%%%%%%%%%%%%%%%
model;
Y=Z*K(-1)^(alpha)*H^(1-alpha); % Production function
Y=C+I-B+Rz*B(-1);              % Resource constrain t
I=K-(1-delta)*K(-1);           % Capital law of motion
B=gamma*(K(-1)*(1-delta));     % Collateral constraint
a*H^(theta)=(1-alpha)*Y/H;     % Labor market equilibrium 
lambda=(C-a/(1+theta)*H^(1+theta))^(-eta); % Marginal utility of consumption
beta*lambda(1)/lambda*Rz(1)=1-phi;   % Debt Euler equation
beta*lambda(1)/lambda*(alpha*Y(1)/K+(1-delta)*(1+gamma(1)*phi(1)))=1; % Capital Euler equation
Rz=(1-rhoz)*Rzss(-1)+rhoz*Rz(-1)+vmz; % Exogenous process


end;


%% Steady State
initval;
B=1.4688;
C=0.8023;
H=1/3;
K=6.7311;
lambda=2.1397;
phi=0.0050;
Rz=1.0200;
Y=1;

end;
steady;
check;

%% Shocks
shocks;
var vmz; stderr 0.01/4;
end;

%% Simulation
stoch_simul(irf=100,order=1) 
Y C K B
;

