Hi all,

I confronted the problem “Blanchard Kahn conditions are not satisfied: no stable”. What else can I do after I’ve checked the timing of my model and the typo in the mod file ?

Dynare distinguishes four types of endo-vars: Purely backwards variable, purely forward variable, mixed variable, static variable. When it checks BK condition, dose it use the number of purely forward variable, or the sum of forward and mixed variable, to compare with the number of eigenvalues larger than 1?

And one more question…I tried to arbitrarily change the timing. After I changed “W=alpha*Y/N" to "W(+1)=alpha*Y(+1)/N(+1)”, BK condition was satisfied. Why? It seems that there is no changes in the model, but dynare returns different result…

Thank u all!

Can you please attach you code?

You should remember that Dynare treats notation “W(+1)” as expectation of W(t+1) conditional on all information at time t, i.e. this is a variable of period t, not t+1.

[quote=“furfurfur”]Can you please attach you code?

You should remember that Dynare treats notation “W(+1)” as expectation of W(t+1) conditional on all information at time t, i.e. this is a variable of period t, not t+1.[/quote]

Thank u!

My code is in the attachment. Dynare reports that there are 19 eigenvalues larger than 1 but 17 forward looking vars…

When I change the timing of eqn 19 and 20, Bk condition is satisfied.

bkcondition.mod (11 KB)

This simply means that there is most probably still a timing error. Remember: there is one unique timing of variables in your model. By arbitrarily changing the timing of some variable, you change the eigenvalues and make the model run. But the results will be wrong, because the timing is still not correct. (there is also the slight chance that it is a matter of the parameter values being wrong, but that is quite rare according to my experience).

The standard recommendation is: start with a simple working version and then add features back to the model. Currently you are looking for a needle in a haystack.

[quote=“jpfeifer”]This simply means that there is most probably still a timing error. Remember: there is one unique timing of variables in your model. By arbitrarily changing the timing of some variable, you change the eigenvalues and make the model run. But the results will be wrong, because the timing is still not correct. (there is also the slight chance that it is a matter of the parameter values being wrong, but that is quite rare according to my experience).

The standard recommendation is: start with a simple working version and then add features back to the model. Currently you are looking for a needle in a haystack.[/quote]

thank you Prof. Pfeifer!