My error message says

??? Error using ==> print_info at 42
Blanchard Kahn conditions are not satisfied: indeterminacy

My guess is that this implies that the eigenvalues of my parameter matrix aren’t meeting the Blanchard and Kahn conditions. Is that correct?

I also have a second question. I have already log-linearlized my model so I am using the (linear) command in the model section. When I am doing so, do I need to specify initial values or can I simply use the ‘steady’ command? If I don’t specify at least one initial value, I get a syntax error saying ‘unexpected END’ so I am currently only specifying the initial value for my stochastic variable and using the ‘steady’ command to calculate the rest.



you are right regarding the BK issue. As for your model, if you made a log-linearization around a 0 steady-state, that’s not necessary to enter initial guesses for the model’s variables (note that by default they are 0). Besides, I guess the error message you obtain simply means that you forgot to close one instruction, maybe the block model one. But to be sure you should post the mod-file… Thx.


Thanks. I’ve attached the file. As you can see, I’ve commented out all the initial value assignment statements. This is where I get the ‘unexpected END’ error. If I leave the last assignment … g=0 … outside the comments, then the file goes through the preprocessor with no errors.
FinalModel.mod (1.82 KB)

If you wanna comment out all the variables inside the block “initval” you must also comment out this command as follows /* initval; variables…; end; */
When I run your mod-file, I find that error msg about BK conditions. Try to add “resid(1);” just before “steady” (this instruction shows the residuals of the static equations). You’ll see then that equation 3 doesnt hold.


Thank you, this is extremely helpful!

Thanks again, but I’m afraid I must let my ignorance show here. I’m trying to go through my own notes on DSGE as well as the Dynare User Guide and I can’t see anything that explains the residuals. Do you know of a source that might explain what the residuals are and how to use them to narrow down the parameter values?


using your initial values in the file, Dynare seems to be able to find the steady state (at least on my machine, the equations are satisfied).
Could it be that your timing is wrong? Does your model contain predetermined states like capital or bonds, i.e. the k and b in your equations? Predetermined states are entered with the timing at which they are determined. That means a law of motion for capital k_t+1=(1-delta)*k_t+i_t is entered as:

and not as

I’m not sure what you mean by predetermined states but, whereas bonds…b in the model…are considered a choice variable, capital is indeed a state variable and is determined at time t+1. I tried rewriting the model with each equation rendered in either time t or time t-1 and my error message changed from ‘indeterminacy’ to ‘no stable equilibrium’.

Also, I should point out that the previous poster was correct that there was a problem with equation 3. I had mistyped something in the .mod file. The corrected file (with both timings) is attached.
FinalModel.mod (1.85 KB)
FinalModel_original.mod (1.85 KB)

First of all, your model is linear and in deviations from steady state. Hence, at the steady state, all deviations from steady state are 0, which is now the case. Your steady state is now correct. My first comment was wrong insofar as Dynare correctly found the steady state of the equations you entered (the residuals were 0 after the steady command), but as the steady state was not 0 for all variables (which must be the case for a linear model in deviations from steady state) some equations had to be wrong.

Regarding the timing, you should consult the user guide at page 20. Capital today was determined yesterday by yesterdays capital stock and investment through the law of motion. Hence k_t cannot be influenced at time t, but only at time t-1. The same often applies to bonds as you already know today what the bonds are going to pay you tomorrow (as they are a safe claim). That is, at time t you decide the amount b_t+1 the bond is going to pay you. Hence, tomorrows bonds b_t+1 are decided at time t. Note that it is possible to formulate the bonds timing differently.
However, in your case this seems to be the issue. In Dynare 4, there is an alternative to changing the timing by hand. You can leave the old timing and use the command

predetermined_variables k b;

in the variable declaration part. See the manual for more information. Apparently that solves the issue. Please find attached a version that’s running.
FinalModel.mod (1.89 KB)

Yes I agree about the timing issue,I didnt pay attention to it the first time I run the mod-file. This topic is explained in the dynare user guide. Actually you have two possibilities to specify your predetermined variables (k and b) to dynare. The first way is to declare them using the instruction: " predetermined_variables" as in the version posted by jpfeifer. The second one consists in lagging those variables of one period in the entire model; both should yield identical results, its just something related to the dynare timing convention.


Thank you both very much!!!