RoboMacro Logo
RoboMacro
No Human in the Loop

FX Positioning — CFTC COT Monitor

Net leveraged-fund positioning from the CFTC's weekly Traders in Financial Futures report, z-scored against a rolling window you choose — default 13w (3m). Twenty years of weekly reports, plotted against spot.

Pair positioning dashboard — Leveraged funds (hedge funds and CTAs)

CFTC report 2026-11-03 · net positioning differential in US dollars and its change since the previous report, with the z-score at 6 rolling windows. Select a row to open its chart.

CFTC Leveraged funds (hedge funds and CTAs) positioning differential by currency pair, CFTC report date 2026-11-03, z-scored against 13w (3m) of weekly reports. 28 pairs. A positive differential is net long the base currency against the quote, in US dollars. Crosses are implied from the two dollar-leg futures books; no futures contract exists for them. EURUSD: −$10.99bn, net short EUR against USD, added to shorts, z −1.56σ, rate 1.11920, observed. GBPUSD: +$2.24bn, net long GBP against USD, added to longs, z +0.04σ, rate 1.34190, observed. AUDUSD: +$3.49bn, net long AUD against USD, added to longs, z −0.83σ, rate 0.696900, observed. NZDUSD: −$1.30bn, net short NZD against USD, added to shorts, z −0.48σ, rate 0.561400, observed. USDCAD: +$6.17bn, net long USD against CAD, trimmed longs, z +0.62σ, rate 1.39980, observed. USDCHF: +$2.57bn, net long USD against CHF, trimmed longs, z +1.27σ, rate 0.820800, observed. USDJPY: +$1.17bn, net long USD against JPY, added to longs, z −0.55σ, rate 158.500, observed. EURGBP: −$13.23bn, net short EUR against GBP, added to shorts, z −1.40σ, rate 0.834041, implied. EURAUD: −$14.48bn, net short EUR against AUD, added to shorts, z −1.60σ, rate 1.60597, implied. EURNZD: −$9.69bn, net short EUR against NZD, added to shorts, z −1.57σ, rate 1.99359, implied. EURCAD: −$4.83bn, net short EUR against CAD, added to shorts, z −2.13σ, rate 1.56666, implied. EURCHF: −$8.43bn, net short EUR against CHF, added to shorts, z −1.37σ, rate 0.918639, implied. EURJPY: −$9.82bn, net short EUR against JPY, added to shorts, z −1.50σ, rate 177.393, implied. GBPAUD: −$1.26bn, net short GBP against AUD, covered shorts, z +0.23σ, rate 1.92553, implied. GBPNZD: +$3.54bn, net long GBP against NZD, added to longs, z +0.21σ, rate 2.39027, implied. GBPCAD: +$8.40bn, net long GBP against CAD, added to longs, z +0.45σ, rate 1.87839, implied. GBPCHF: +$4.80bn, net long GBP against CHF, added to longs, z +0.59σ, rate 1.10143, implied. GBPJPY: +$3.40bn, net long GBP against JPY, added to longs, z −0.39σ, rate 212.691, implied. AUDNZD: +$4.79bn, net long AUD against NZD, added to longs, z +0.13σ, rate 1.24136, implied. AUDCAD: +$9.66bn, net long AUD against CAD, trimmed longs, z +0.51σ, rate 0.975521, implied. AUDCHF: +$6.06bn, net long AUD against CHF, added to longs, z +0.51σ, rate 0.572016, implied. AUDJPY: +$4.66bn, net long AUD against JPY, added to longs, z −0.69σ, rate 110.459, implied. NZDCAD: +$4.87bn, net long NZD against CAD, trimmed longs, z +0.44σ, rate 0.785848, implied. NZDCHF: +$1.27bn, net long NZD against CHF, trimmed longs, z +0.22σ, rate 0.460797, implied. NZDJPY: −$131.33m, net short NZD against JPY, added to shorts, z −0.80σ, rate 88.9819, implied. CADCHF: −$3.60bn, net short CAD against CHF, covered shorts, z −0.19σ, rate 0.586369, implied. CADJPY: −$5.00bn, net short CAD against JPY, covered shorts, z −0.89σ, rate 113.230, implied. CHFJPY: −$1.40bn, net short CHF against JPY, covered shorts, z −0.67σ, rate 193.104, implied.
PairDifferentialWeekly changeDifferential z-score by rolling window — same series, different window
USDDirection13w0.3y26w0.5y52w1y90w1.7y104w2y156w3y
Dollar pairsobserved contracts, re-expressed
EURUSDobserved−$10.99bn−$1.02bnadded to shorts-1.56σ-1.45σ-1.81σ-2.44σ-2.28σ-2.68σ
GBPUSDobserved+$2.24bn+$805.03madded to longs+0.04σ+0.03σ+0.09σ-0.21σ-0.32σ-0.30σ
AUDUSDobserved+$3.49bn+$84.99madded to longs-0.83σ+0.18σ+0.37σ+0.96σ+1.09σ+1.44σ
NZDUSDobserved−$1.30bn−$15.64madded to shorts-0.48σ-0.19σ-0.70σ-1.16σ-1.23σ-1.49σ
USDCADobserved+$6.17bn−$726.98mtrimmed longs+0.62σ+0.60σ+1.09σ+1.52σ+1.28σ+1.33σ
USDCHFobserved+$2.57bn−$74.65mtrimmed longs+1.27σ+1.66σ+1.75σ+1.77σ+1.72σ+1.80σ
USDJPYobserved+$1.17bn+$10.07madded to longs-0.55σ-1.21σ-1.59σ-0.63σ-0.66σ-0.82σ
Crossesimplied from two dollar-leg books
EURGBPimplied−$13.23bn−$1.83bnadded to shorts-1.40σ-1.40σ-1.80σ-2.43σ-2.16σ-2.47σ
EURAUDimplied−$14.48bn−$1.11bnadded to shorts-1.60σ-1.59σ-1.82σ-2.34σ-2.41σ-2.95σ
EURNZDimplied−$9.69bn−$1.00bnadded to shorts-1.57σ-1.45σ-1.82σ-2.45σ-2.24σ-2.50σ
EURCADimplied−$4.83bn−$1.75bnadded to shorts-2.13σ-1.73σ-1.77σ-2.40σ-2.33σ-2.58σ
EURCHFimplied−$8.43bn−$1.09bnadded to shorts-1.37σ-1.31σ-1.72σ-2.32σ-2.14σ-2.48σ
EURJPYimplied−$9.82bn−$1.01bnadded to shorts-1.50σ-1.70σ-2.16σ-2.51σ-2.38σ-2.79σ
GBPAUDimplied−$1.26bn+$720.04mcovered shorts+0.23σ-0.09σ-0.33σ-0.92σ-1.05σ-1.35σ
GBPNZDimplied+$3.54bn+$820.67madded to longs+0.21σ+0.09σ+0.35σ+0.37σ+0.29σ+0.42σ
GBPCADimplied+$8.40bn+$78.06madded to longs+0.45σ+0.50σ+0.98σ+1.31σ+0.91σ+0.76σ
GBPCHFimplied+$4.80bn+$730.39madded to longs+0.59σ+0.95σ+1.33σ+1.14σ+0.97σ+0.76σ
GBPJPYimplied+$3.40bn+$815.10madded to longs-0.39σ-1.03σ-1.33σ-0.72σ-0.79σ-1.00σ
AUDNZDimplied+$4.79bn+$100.63madded to longs+0.13σ+0.37σ+0.55σ+1.09σ+1.23σ+1.61σ
AUDCADimplied+$9.66bn−$641.98mtrimmed longs+0.51σ+0.94σ+1.32σ+1.46σ+1.59σ+1.90σ
AUDCHFimplied+$6.06bn+$10.35madded to longs+0.51σ+0.96σ+1.18σ+1.54σ+1.67σ+2.06σ
AUDJPYimplied+$4.66bn+$95.06madded to longs-0.69σ-1.34σ-1.40σ+0.05σ+0.14σ+0.16σ
NZDCADimplied+$4.87bn−$742.62mtrimmed longs+0.44σ+0.61σ+0.89σ+1.19σ+0.89σ+0.71σ
NZDCHFimplied+$1.27bn−$90.29mtrimmed longs+0.22σ+0.83σ+1.38σ+1.13σ+1.01σ+0.63σ
NZDJPYimplied−$131.33m−$5.57madded to shorts-0.80σ-1.41σ-1.90σ-0.88σ-0.94σ-1.13σ
CADCHFimplied−$3.60bn+$652.33mcovered shorts-0.19σ-0.06σ+0.05σ-0.36σ-0.20σ-0.32σ
CADJPYimplied−$5.00bn+$737.05mcovered shorts-0.89σ-1.46σ-2.15σ-1.47σ-1.40σ-1.41σ
CHFJPYimplied−$1.40bn+$84.72mcovered shorts-0.67σ-1.34σ-2.02σ-1.08σ-1.11σ-1.31σ

Scroll sideways for all 6 windows. Tap a row for its chart.

net positioning differential in US dollars: each leg's net futures position (long minus short) converted at that leg's contract size and the daily close joined to the report date, then the quote leg subtracted from the base leg. It is a differential, not the size of a carveable cross position.

A positive differential is a net long in the base currency against the quote, for the leveraged-fund book. Z-scores use the sample standard deviation, dividing by n-1 over a rolling window of weekly reports, and a window with fewer than its full count of prior reports returns null, never a shorter window relabelled.

Source: CFTC Traders in Financial Futures (TFF), futures-only; CME contract specifications; FRED daily spot. Report date 2026-11-03 is the CFTC report date (a Tuesday), not a trade date — the file is published the following Friday.

How EURUSD was built

observed — the CME EUR future re-expressed in EURUSD convention and in US dollars

Base · EUREUR
−$10.99bn
-78,559 contracts
-78,559 contracts × 125,000 EUR × 1.1192 = −$10.99bn
-1.58σ13w · Short

net position in contracts, measured against this contract's own history — the same series, window and sigma the currency view publishes for it

Quote · USDUSD

USD is the numeraire on this exhibit — the CFTC publishes no bilateral dollar contract, so there is no dollar book to score. A zero here would read as a flat book rather than as the absence of one.

EURUSD z · 13w
-1.56σ
dollar differential basis
Leg z-spread
—
net contracts basis
Leg correlation
—
13w (3m)

USD is the numeraire on this exhibit — the CFTC publishes no bilateral dollar contract, so there is no dollar book to score. A zero here would read as a flat book rather than as the absence of one.

About the positioning monitor

The monitor tracks net positioning in CME and ICE currency futures from the CFTC's Traders in Financial Futures (TFF) report — long contracts minus short, for the trader category you select. Coverage is the ten bilateral currency futures (EUR, GBP, JPY, CHF, CAD, AUD, NZD, MXN, BRL, ZAR) plus the ICE dollar index, shown separately because a trade-weighted basket is not a bilateral position and does not belong in a cross-sectional ranking.

Positioning is a contrarian-leaning input: extreme longs or shorts mark trades that are crowded, and crowded trades unwind hard when the narrative breaks. A stretched z-score does not time the turn, but it tells you which currencies have the most positioning fuel for one.

Two controls, two different jobs. History changes what is drawn and never changes a number. The z window changes how many weekly reports enter the mean and standard deviation, and so changes the z-score itself: 90w (1.7y) and 13w (3m) on the same weekly series are two different measurements, and both are correct.

Two different “net speculative” series circulate. The legacy Commitments of Traders report publishes a non-commercial net; the TFF report publishes separate leveraged-fund and asset-manager books. They are different traders and they do not match — asset managers are frequently long a currency that leveraged funds are short. Everything here is TFF, long minus short, and every figure is labelled with the category it came from.

Questions

There is no GBPAUD futures contract. Where does its positioning come from?
From the GBP and AUD contracts, which the CFTC does report. Each leg's net position is converted to US dollars — contracts multiplied by the CME contract size and by the daily close on or before that report date — and the quote leg is subtracted from the base leg. The seven dollar pairs are the reported contracts re-expressed and are labelled observed; the 21 crosses are inferred and are labelled implied. The number is a differential rather than the size of a carveable cross position, which is why a book long one billion dollars of euro against one billion short of Australian dollar reads as two billion. That convention moves no z-score — a z is scale-invariant — only the headline dollar figure.
Why is USDJPY no longer drawn upside down?
Because the position is now in pair convention too. The currency view scores the yen contract, and a rising USDJPY means the yen weakened — so that view inverts the axis to keep “up” meaning “stronger”. In the pair view a positive differential is net long the dollar against the yen, which rises exactly when USDJPY rises. Both panes point the same way and nothing is inverted anywhere.
Why does the leg z-spread disagree with the pair's own z-score?
Two reasons, and the panel under the chart shows both. Each leg is scored on its net position in contracts against that contract's own history — the identical number the by-currency view publishes — while the pair is scored on the dollar differential. Different quantities, different sigmas. And the spread of two z-scores whose legs correlate ρ has a standard deviation of √(2(1−ρ)) rather than 1, so it is not itself a z-score. The correlation is published beside the spread so that is arithmetic you can check rather than a claim you have to take.
Why does my terminal show a different z-score for the same currency?
Almost always the window. A terminal's Z-Score(90) on a weekly series normalises against 90w (1.7y) of reports; our default normalises against 13w (3m). Same series, same latest position, two different means and standard deviations, two different sigmas — and both are correct measurements of different things. Select 90w in the z-window row to reproduce the 90w reading. Any small residual left is the standard-deviation convention: we use the sample standard deviation, dividing by n−1. The working is printed under the z pane so the arithmetic can be checked directly rather than taken on trust.
What is the difference between the history selector and the z-window selector?
The history selector is the x-axis: it decides whether you see six months of reports or twenty years, and never changes a number. The z-window selector is the arithmetic: it decides how many prior reports form the mean and standard deviation the position is measured against, so it recomputes the z-score everywhere on the chart. Neither refetches — the whole record arrives with every window pre-computed.
Which trader category is this, and what does the spot line represent?
Whichever you select: leveraged funds (the hedge-fund and CTA book) or asset managers (institutional real money), long contracts minus short in each case. The spot line is the daily close on or before each CFTC report date, so every point on both panes shares one date and no price from after a report is ever shown against it. Where a currency is the quote leg of its market-convention pair — USDJPY, USDMXN — the spot axis is inverted, so a rising line always means that currency strengthened.
Why is a z-score sometimes blank?
Because the window has not opened yet. A 156w window needs 156 weekly reports before the first point can be scored; earlier points on the chart show an em-dash rather than a partial window relabelled as full. A shorter window is never substituted for a longer one.
What is the CFTC COT report?
The Commitments of Traders report is published weekly by the US Commodity Futures Trading Commission. The Traders in Financial Futures variant breaks currency futures positions down by trader type — dealers, asset managers, leveraged funds and others. The report date is a Tuesday and the file is published the following Friday at 15:30 Eastern, so positioning is always three to five days behind the price it is plotted against.

Positioning from the CFTC Traders in Financial Futures report — free weekly data. The spot overlay uses FRED daily closes matched to each CFTC report date.