The Jacobian matrix evaluated at the steady state contains elements that are not real or are infinite

Then the steady state won’t be symmetric. You can see that your equations generate exactly the same thing for your home country and the foreign country. Therefore, the steady state will be b = b_star = 0?

How do I solve this problem?

In the original paper, they just said that the two countries are similar (except for the shocks). So, isn’t it logical to assume that in SS, their SS equations will also be similar?

Yes, they should be similar, but what you did incorrectly in the model setting (might not be the only mistake, but this is what I saw) is that at steady state, you want b = leverage * y for both countries, i.e., both of them are borrowing to their capacity. And you also enforce the sum of two positive (or two negative) numbers to 0 by market clearing. That’s just not possible, right?

I would set both of them to 0 at steady state. But then the way you specify the model must be b <= leverage * y which is an occasionally binding constraint. I don’t know how to do that in Dynare (I know there’s a way to do, but I don’t know how), as I usually solve all these things by coding myself…

Also, I don’t see why you need a borrowing limit at all unless you want it to be binding.

If I want the limit to be binding, how should I change my setup?
Because according to the limit, at SS, both will borrow to the max of the limit, but as the other user pointed out, this violates the net supply bond equation.

If I want the limit to be binding, how should I change my setup?

This is something you need to ask yourself, I think, because it depends on what you exactly want.
If the international bond market has zero net supply, then it has to be one country borrowing and the other not. Therefore at least one of the countries won’t have a binding borrowing constraint at the steady state.

One potential problem with this whole setup is the nonstationary steady state.

I need to implement one of the “closing large open economy” trick to make sure that the ss is stationary (something like endogenous beta or debt elastic rate).

The non-stationarity issues just means there are infinitely many steady states of which you can pick one. But in your current setup no steady state exists at all.


The problem comes from the binding debt constraint. I don’t think Dynare can solve this problem.

The problem comes from the binding debt constraint. I don’t think Dynare can solve this problem.

Indeed, it’s the issue of your setting, instead of Dynare. Dynare is not perfect, but your problem here cannot be solved by adding a feature to Dynare.

[mcp = ‘r > -1.94478’]

This means max (r, -1.94478), right?

So, if I have a debt limit in my model, meaning debt must never be smaller than -1.71336, my equation can be written as max (b, -1.71336)?

And in Dynare, I can write [mcp = ‘b > -1.94478’] before the bond accumulation equation right?

It means that whenever

r > -1.94478

then the equation belonging to the tag is used. Otherwise, use

r = -1.94478


I have a question about using this; if on paper I have a debt limit requirement, and this debt limit requirement enters the first order conditions, but on Dynare I am using this tag, do I still need to include the multiplier of that debt condition in the first order condition?


Usually, the multiplier does not show up as it is 0 when the tag is not satisfied.