DynareOBC - Errors messages and tutorial

Good day all,

I have a few questions related to the DynareOBC toolkit.

  1. Does it work with Macintosh and Dynare 6.x.x?
  2. What is the error "Unrecognized function or variable ‘TElement’ ", and “LCP solver not found” when using DynareOBC?
  3. Is there a tutorial available on how to write the equilibrium conditions when using DynareOBC as opposed to when using Dynare?

Thank you in advance.

Those are questions for @cfp.

DynareOBC has an extensive ReadMe with installation instructions etc. It sounds like you have not followed those.

For an up to date getting started guide, see the first section of TheoryPaperAppendices.pdf in the DynareOBC folder.

2 Likes

Thank you. The Appendix contained what I was looking for. If I may, one further question: Why is it the case that Dynare can compute the steady state but DynareOBC cannot for the same model? Is it that once again I’m not setting up the mod file for DynareOBC properly, or they just use different algorithms by default?

Thanks again and sorry for bothering.

DynareOBC relies on Dynare to compute the steady state, so what you describe should not happen. The only possible exception is if you’re doing something funny like setting parameters in the steady state file, or running MATLAB code within your MOD file to compute parameters.

Have you run the MOD file that you’re passing to DynareOBC (with max operators etc) in Dynare? Until your MOD file runs in Dynare, there’s no point trying it in DynareOBC.

It is likely that I’m doing something funny, in the following sense. Parameters are set in the mod file (so no in a separate steady_state_model file) before the model block. Steady states are therefore inserted there sequentially, declared in the parameters section and which I use to feed the initval block. Nevertheless, this works in Dynare.

It might be related to your second point. For example, in Dynare I solve the model assuming that my constraint binds and it works. As I don’t know if it is correct to assume that the constraint always binds in equilibrium, I though to use OBC, giving to my constraint a rule using min operator, so to see if the constraint hits the boundaries or not. In this case, OBC does not find the steady state, which I don’t understand since it relies on Dynare. Notice that Dynare still runs and performs after the introduction of the min(something_in_steady_state,something) rule. Based on what you said, there is no point to run it in DynareOBC since it runs in Dynare. Is this equivalent to saying that my constraint always binds and therefore OBC does not perform?

Sorry for my pedagogical narrative, I’m playing around to understand a bit.

I said if it doesn’t run in Dynare, there’s no point trying it in DynareOBC, the opposite of what you said above “there is no point to run it in DynareOBC since it runs in Dynare”. Dynare will not capture the OBC.

Without seeing your MOD file it’s hard for me to work out precisely what is going on. But in any case there is a simple solution. Just run in Dynare (with the max or min operator), then save the steady-state with “save_params_and_steady_state”, then replace all your old parameter setting and steady state code with a “load_params_and_steady_state” call.