DynareOBC-error Try increasing TimeToEscapeBounds, or reducing the magnitude of shocks.”

hello everyone
I was using DynareOBC to make restrictions on interest rates. and I get an error
“Impossible problem encountered. Try increasing TimeToEscapeBounds, or reducing the magnitude of shocks.”
if I didn’t do IRF, there is no error. I tried to decrease the shock scale several times until I decreased the shockscale=0.001. then I got the impulse response function. but I found some of them had dotted lines, and some did not, which means restrictions have not been hit under some shocks. combining the simulation data of interest rates, I found it chose the ceiling line (the restrictions I set). Is this a serious problem? can I explain this as under some shocks it just did not hit the restriction? or is there any way to solve this ? to increase TimeToEscapeBounds ? Has anyone had this problem?


@cfp is the one to ask.

You’re imposing a ZLB? What is the steady state level of the nominal rate? What are the standard deviations of your shocks? It sounds like there are some mistakes in your model, and your supervisor, colleagues or coauthors might be better placed to help with that.

hi, thanks for replying, I follow the paper ‘‘Chen, Qianying, Michael Funke, and Michael Paetz. “Market and non-market monetary policy tools in a calibrated DSGE model for mainland China.” (2012).’’ try to make interest-rate corridors in my model. there is a floor for the lending rate and a ceiling for the deposit rate. so the lending rate: rl = max(rl_cb, rl_pb), rd = min(rd_cb, rd_pb), where rl_cb, rl_pb, rd_cb rd_cb and rd_pb are determined by different equations. I saw the author use the code of Tom Holden earlier. I didn’t find the code and I searched on the Dynare website. DynareOBC can be used to solve the max min DSGE model. The steady-state level of rl and rd =0; for the standard deviation of shocks, I found the error comes from the technology shock, there are several shocks in my model, if I didn’t set the shockscale, and I reduce the standard error of the technology shock to 0.0001, and other standard errors are 5 I can get the IRF with more dotted lines.

And what are the steady states of those other four variables (rl_cb etc)? What are their units? Log points or percentage? Shouldn’t lending rates be above deposit rates?

the equations are log-linearized. the steady states of those are 0, DynareOBC does not support cases in which the constraint just binds in steady-state. so the equations be changed to rl = max(rl_cb, rl_pb-0.00001), rd = min(rd_cb, rd_p+0.00001) in my model. there is no setting for the lending rate to be above the deposit rate in the model. so the simulation lending rate some sometimes above the deposit rate, sometimes not. the simulation without doing IRF is totally fine. The technology shocks with high standards error is the problem. IRF can get under the technology shocks with low standards error, IRF with the technology shocks had no dotted line only solid lines. other IRFs had both dotted lines and solid lines. Is it a big issue for the restriction not to be hit? the error might be because of the mistakes in the code, I will double check. I have another question, can DynareOBC do shock decomposition and variance decomposition just like normal Dynare? and where dotted IRF be stored in DynareOBC?

This is the issue “the equations be changed to rl = max(rl_cb, rl_pb-0.00001), rd = min(rd_cb, rd_p+0.00001)”

If you are so close to the bound then it is unsurprising that there’s no solution for moderate shocks.

You need to keep the constant terms when log linearizing in the presence of OBC. For example a log linearized monetary rule is something like i=max(0,-log(0.9=) +phi *pi) .

There’s no need to log linearize by hand in any case.