Permanent shock produces kink - why?

Hey!

I am currently working with a model by Carlstrom et al. (2017), doing some deterministic QE simulations. I would like to produce a permanent increase in the balance sheet of central banks, which equals a permanent increase in my exogenous variable eps_Bcb which I inititalize in the endval section. By setting “steady;” after the endval section, I allow the model to converge to a new steady state:

endval;
eps_Bcb = 0.020869539;
end;
steady;

shocks;
var eps_Bcb;
periods 1 2 3 4:10000;
values 0 1.043477 1.9826062 2.0869539;
end;

simul(periods = 10000);

However, when looking at the produced graphs for let´s say the variable “output”, what I get is an impulse response, which stabilizes at 0.31 permanently (during periods 250 to 9800), but right before the end of my simulation horizon (which is chosen to be very large, 10000), it falls back to close to zero (exactly it is 0.00315).

Can you tell me what`s the problem here? Is this a trustworthy path for output or is there a problem with my code? (codes attached)
cfp.mod (14.3 KB)
parameterfile.mat (4.8 KB)

Thanks in advance for your help!

I just noticed that some parameters are declared externally - Please use this file instead of cfp.mod:
cfp_forum.mod (14.0 KB)

Sounds like you have a problem with the terminal condition. Is 0.00315 the steady state level of output?

Best Stéphane.

Okay, thanks for your reply!

My model is linearized, so the initital steady state for all variables is zero (as they are percentage deviations from steady state). You are right, 0.00315 is the steady state value of output (percentage deviation from steady state) which Dynare calculates after the endval section.

But how shall I implement a path for my exogenous variable exp_Bcb which changes from 0 via 1.043477 1.9826062 to 2.0869539 then? Can I solve the problem with the terminal condition somehow?

I just solved my problem! Thanks for your help!

@at1234 What was the solution

The scaling of my endval was not equivalent to the scaling of my shock size. That´s why the IRFs jumped in the last period. The solution was thus to set the endvalue to be the same as the last shock value (=2.0869539).