Dados B3 › Macro › Foreign flow and the market PT
Foreign flow and the market
Does foreign flow lead or follow the Brazilian market?
Monthly foreign portfolio flow against the total return of our market index, 123 months (2016-05 to 2026-07), in both currencies and at several lags.
Correlation by lag
Lag 0 is the same month. Lag +1 pairs this month's flow with next month's return — the only direction that would be worth anything to an investor. Negative lags put the return first. Why some lags have more pairs than the months in common: the flow series starts in 1995 and the index in 2016, and the Central Bank publishes with a two-month lag while the index is current — so a shifted pair can use a flow month before the overlap, or a return month after it. Invariants I-X10 and I-X11 recompute every one of these counts by an independent route.
| Lag | Same-month reading | In R$ (Pearson · Spearman) | In US$ (Pearson · Spearman) | Months |
|---|---|---|---|---|
| -3 | return → flow +3m | +0.04 · +0.05 | -0.00 · -0.00 | 120 |
| -2 | return → flow +2m | -0.08 · -0.12 | -0.09 · -0.14 | 121 |
| -1 | return → flow +1m | +0.14 · +0.10 | +0.20 · +0.15 | 122 |
| +0 | same month | +0.47 · +0.39 | +0.51 · +0.46 | 123 |
| +1 | flow → return +1m | +0.02 · -0.07 | +0.04 · -0.04 | 124 |
| +2 | flow → return +2m | -0.13 · -0.16 | -0.07 · -0.11 | 125 |
| +3 | flow → return +3m | -0.05 · -0.04 | +0.01 · +0.01 | 125 |
What the numbers say
- Same month: +0.51. Strong — and almost unavoidable. Both are measured over the SAME month, so the correlation is equally consistent with the buying contributing to the price and with the price attracting the buying: monthly data cannot separate the two. It says nothing about prediction, which is exactly how the news chart is usually read.
- Flow first, return next month: +0.04. Essentially zero, and the rank version even turns slightly negative. Across these months, knowing that foreigners had come in bore almost no linear relation to the next month's return.
- Return first, flow next month: +0.20. Bigger than the other direction, in both currencies and both measures. The pattern is more consistent with flow that follows the return than with flow that leads it, which is consistent with the phenomenon known as return chasing — and identifies no cause.
And when the money leaves?
A correlation treats money coming in and money going out as the same axis — it cannot answer this. So the sample is split by the sign of the flow.
| After a month when the market… | the flow the next month was |
|---|---|
| rose | US$ +105m |
| fell | US$ -184m |
| After a month when the flow… | the market the next month did |
|---|---|
| came in | +1.25% |
| left | +1.28% |
- In the average of this sample, outflows were larger. Falling months were followed by outflows larger in magnitude than the inflows that followed rising ones — a difference of averages, not a demonstrated behavioural asymmetry.
- And no difference was found ahead. +1.25% against +1.28% is a gap of -0.02 pp, and a permutation test puts it at p = 0.99 — indistinguishable from shuffling the labels at random. We found no evidence that having been an inflow or an outflow month anticipated any difference in the next month's return. Read that as no evidence of a difference, not as proof the two are identical, and not as proof that no predictive ability exists: three different statements, and only the first is what a permutation test can deliver.
- Does the block length drive it? No. Shuffling blocks of 1, 3, 6, 12 and 24 months gives p = 0.95, 0.94, 0.93, 0.94 and 0.94. The choice of six moves nothing.
Correlation at each lag
Same scale on both sides of zero, fixed at ±0.60 — a cropped axis is how a 0.05 gets to look like a 0.50.
The two series over time
Flow as bars, market return as a line, each on its own half so neither is stretched to look like the other.
Does it survive rough handling?
The finding is the ORDER, not the size: in every cut the return→flow correlation is larger than flow→return. The size does not hold up the same way: without 2020 it falls from +0.20 to +0.09, more than half. The asymmetry survives; the magnitude rests on one year, and that belongs next to the result, not in a footnote.
| Cut | Months | Return → flow | Flow → return |
|---|---|---|---|
| tudo | 124 | +0.20 | +0.04 |
| sem 2020 | 112 | +0.09 | -0.08 |
| 2016–2020 | 57 | +0.19 | +0.06 |
| 2021–hoje | 67 | +0.21 | +0.02 |
What this is not
- It is not the B3 chart from the news. That one is the non-resident buy/sell balance on the exchange floor. This is capital crossing the border, from the balance of payments. They correlate; they are not the same number. We tested seven paths to B3's series through 16/08/2026 — the daily bulletin publishes PDF only and keeps 20 days. Scraping it would break without warning, which is the opposite of what this database is for.
- Correlation is not cause, and a lag table is not a causality test — not even Granger's. It is cross-correlation, and nothing here controls for US rates, commodity prices or political risk. A third thing moving both is the ordinary case, not the exception: global risk falls, the market rises AND foreigners buy, with neither causing the other.
- One country, ~10 years, and quite different regimes inside the window (pandemic, global rate cycle, two elections). Enough to refuse a claim, not enough to establish a rule.
- This is exploratory. Seven lags, two currencies and two correlation measures — 28 numbers. No claim here comes from picking the largest of them as if it were a test: there is no pre-registered hypothesis, no correction for multiple comparisons, and no confirmatory test. What the table shows is the shape of the association, not a result that cleared a bar.
- Why a p-value here and none on the correlations. The correlations above are published as effect sizes — they describe an association and do not answer a yes/no question. The inflow-versus-outflow comparison IS a yes/no question ('is the next month different?'), and that kind of question deserves a ruler. The permutation shuffles 6-month blocks, not single months: month-by-month would assume an independence a time series does not have, and would return an over-optimistic p-value.
- We cannot say whether foreign money AMPLIFIES the move. That buying pushes prices is close to a definition; what cannot be measured here is by how much. Within a single month this data cannot see which came first — that needs the daily series, and the daily series is exactly what B3 does not publish in a stable form. Two lines rising together on a monthly chart are equally consistent with foreigners pushing the price, with the price pulling foreigners in, and with both answering to a third thing. All three draw the same chart.
- This is not a discovery. Foreign flow chasing returns is one of the most replicated findings in international finance — Bohn & Tesar (1996) named the question return chasing, and Froot, O'Connell & Seasholes (2001) and Griffin, Nardari & Stulz (2004) documented the same pattern across dozens of countries. Matching the literature is what gives comfort in the result; contradicting it would be a reason to distrust the arithmetic, not to celebrate.
How the series are built · The flow series itself · This table as JSON · Back to Macro