% Solving the Competitive equilibirum 
% ==================================== 
% 
% THIS IS THE DYNAMIC KREBS MODEL 
% IT CALCULATES THE COMPETITIVE OUTCOME 
%
% THE MODEL IS DE-TRENDED - ALL VARIABLES ARE UNITS PER EFFECTIVE WEALTH 
%
% =================================================


var ce      $CE$                  % ==> The Cert. Equiv 
    theta   $\theta$              % ==> Portfolio share of Risky asset 
    v       $\nu$                 % ==> Marginal value of Wealth 
    Rap     $Rap$                 % ==> Approx. returns     
    R       $R$                   % ==> Gross Returns 
    Rk      $Rk$                  % ==> Gross Returns (Physical Capital)
    Rh      $Rh$                  % ==> Gross Returns (Human Capital)               
    rk      $rk$                  % ==> Net Returns (Physical Capital)
    rh      $rh$                  % ==> Net Returns (Net Capital)
    Yi      $Yi$                  % ==> Excess Returns 
    u       $u$                   % ==> Marginal Propensity to consume 
    kh      $kh$                  % ==> k/h 
    gr      $gr$                  % ==> Growth rate 
    A       $A$                   % ==> TFP 
    s       $S$                   % ==> Aux. variable   
    m       $M$                   % ==> Aux. variable  
    Xi      $Xi$                  % ==> Aux. variable  
    sigmat  $\sigma$;             % ==> time-varying volatility 

varexo e    $e$                   % ==> exogenous shock to TFP 
       eta  $\eta$;               % ==> exogenous idiosyncratic shock 

predetermined_variables kh theta;

parameters alpha    $\alpha$            % Income share of Physical Capital 
           gamma    $\gamma$            % Coefficient of Risk aversion 
           delta    $\delta$            % depreciation rate
           rho      $\rho$              % persistence of TPF shocks 
           z        $z$                 % cyclical elasticity of Idiosyncratic risk
           sigma    $\sigma$            % SDV of idiosyncratic shocks  
           eps      $\epsilon$          % IES 
           beta     $\beta$             % Discount factor
           psi      $\psi$              % Aux. parameter 
           Abar     $Ass$;              % SS TFP   

Abar=log(0.950362);
sigma=1.02775;
beta=0.841654;
eps=1.5;
gamma=3;
alpha=0.36;
delta=0.06;
rho=0.95;
z=10;
psi=(eps-1)/(1-gamma);


model;
ce=(v(+1)^(1-gamma))*Rap(+1);
Rap=Rk^(1-gamma)+ (1-gamma)*(Rk^(-gamma))*theta*(Yi)-0.5*(Rk^(-gamma-1))*gamma*(1-gamma)*theta^2*Xi;
Yi=Rh-Rk+exp(sigmat)*eta;
[dynamic] Xi=(Rh-Rk+exp(sigmat)*eta)^2;
[static]  Xi=(Rh-Rk)^2 + sigmat^2; 

[dynamic] v^(eps-1)=(1+beta^(1/eps)*(ce)^psi);
[static] v=((1-(beta^eps)*(Rap)^psi))^(1-eps);

%Aux. Variables 
s(+1)=v(+1)^(1-gamma)*Rk(+1)*(Yi(+1));
[dynamic] m(+1)=v(+1)^(1-gamma)*Xi(+1);
[static] m=v^(1-gamma)*(Xi);

%Market Clearing 

theta=(1/gamma)*(s/m);
theta=1/(1+kh);

%%Definitions 

Rk=1+rk-delta;
Rh=1+rh-delta;
rk=exp(A)*alpha*kh^(alpha-1);
rh=exp(A)*(1-alpha)*kh^(alpha);
R=Rk+theta*(Rh-Rk);

%Growth rate
u=v^(1-eps);
gr=R*(1-u(-1))-1;

% Exogenous process
A=rho*A(-1)+(1-rho)*Abar + e;
sigmat=(sigma*(1-z*(A)))^2;
end;


initval;
ce = 0.18695;
theta =0.0630728;
v =2.19541;
Rap =0.901062;
R =1.09834;
Rk= 1.00084;
Rh =2.54672;
rk =0.0608414;
rh =1.60672;
Yi =1.54588;
u  =0.674905;
kh =14.8547;
gr =-0.642934;
s  =0.321004;
m  =1.69647;
sigmat=2.40561;
Xi =8.17667;
end;


steady(solve_algo=3,maxit=100000);

write_latex_dynamic_model;
write_latex_static_model;

%stoch_simul(order=2,periods=100000,drop=1000,irf=0);