%
%%%PREAMBLE%%%
%
var y invest k c z;                          %Hier alle Variablen eintragen, die im Modell auftauchen: Output, Investment, Capital, Labour, InterestRate, WageRate%   
predetermined_variables k;                      %Hier nochmal alle vorherbestimmten Variablen bestimmen!!% 
varexo eps;                                        %Alle exogenen Variablen. Hier deterministischer Schock mit Epsilon=0, deshalb ist der Schock exogen. Für einen stochastischen Schock müsste man hier varexo epsilon eintragen%
parameters cbeta calpha crho ceta ctau;               %Alle Parameter. Das c vorher lieber noch dazufügen da beta selbst eine Funktion in Matlab ist%

cbeta = .99;                                     %Hier werden die Parameter kalibriert%
calpha = .33;
crho = 0.9;
ceta = 0.04;
ctau = 20;
%
%%%MODELBLOCK%%%
%
model;                                           %Hier werden die Gleichungen des Modells geschrieben%
c^(-ctau) = cbeta * c(+1)^(-ctau) * calpha * exp(z(+1)) * k(+1)^(calpha-1);    %Euler Gleichung. Das (+1) steht dafür, dass der Index der Variable t+1 ist%
k(+1) = exp(z) * k^calpha - c;
z = crho*z(-1) + eps;
y = exp(z) * k^calpha;
invest = y - c;
end;
%
%%%INITIAL VALUE BLOCK%%%
%
initval;                                        %Hier Werte nahe des Steady states angeben, Dynare findet dann den richtigen Steady state%
k = 0.2;
c = 0.77;
z = 0;
end;
steady;                                         %steady(solve_algo = 0) hier kann man Dynare sagen, welcher Algorithmus verwendet werden soll um den S.S. zu finden. Werte gehen von 0-3%
%
%%%SHOCKS%%%
%
shocks;                                         %Wir haben einen neuen Parameter csigma als Standardabweichung des Technologieschocks definiert.%
var eps = ceta^2;                               %VARIANZ hier eintragen%                                           
end;

stoch_simul(periods = 2000,order=2, irf=40, set_dynare_seed=1);


state_range=0.08:0.01:0.25;
state_name='k';
plot_var_name='invest';
plot_policy_fun(state_name,state_range,plot_var_name);