MJDGGES returns the following error code: 20

  1. No, if everything in your mod-file is correct, you don’t need steady; check.
  2. For all parameters that are not estimated, Dynare uses the values before the model block. If these parameters cannot be computed by Dynare, the initial_estimation_checks will fail as they do in your case. All parameters can be implicitly calculated, but only by you and not by Dynare. You have to tell the program explicitly what the values are. That’s why they are called parameters. Even if you estimate them (which you don’t do) you have to provide valid initial values.

Unfortunately, I don’t understand your last point about “which I have showed in “the steady state parameters””. If you mean that the steady state ratios are functions of the deep parameters of your model which you want to estimate, you have to tell Dynare how to compute these ratios from the deep parameters. You can do this with the #-operator or a steady state file. See the discussion in [External function in dynare 4.2)