COTVault — COT Cross

There is no CFTC contract for GBPAUD, EURJPY, or any other FX cross. The Commitments of Traders report covers futures, and no cross trades as a future. So this builds one — and then tells you exactly what it is and isn't worth.

1 · Quick start

2 · How the synthetic is built

Each USD leg is indexed 0–100 against its own three-year range of weekly reports — the classic COT Index. The cross score is then simply:

score = base leg − quote leg   →   −100 … +100

GBPAUD with GBP at 82 and AUD at 18 scores +64: speculators are heavily long the pound and heavily short the Aussie, so the crowd is leaning hard toward the base currency of that cross.

Why the rail matters

Base 82 / quote 18 and base 96 / quote 32 both score +64, and they are not the same market. One is two crowded legs pulling together; the other is one leg pinned at the very top of its three-year range against a counterpart sitting mid-range. The score alone cannot tell them apart — the rail can. Read it before you read the score.

You do not have to measure the two lines by eye. The panel's Both legs row says it in words: "both legs stretched — pulling together", or "EUR is doing the work — AUD is mid-range", or "neither leg is stretched".

3 · The claim — cross extremes persist

Measured across 21 crosses built from 7 currencies, weekly, 2000–2026.

Score crosses…Still there afterAccuracyFree rateLiftCrosses agreeing
+60 (base favoured)2 reports55.5%24.6%+30.920/20
−60 (quote favoured)2 reports60.1%30.2%+29.918/18
+604 reports39.9%24.0%+15.919/20
−604 reports45.5%31.1%+14.317/18

n=308 each side. The free rate comes from the adjacent 50–60 band — ten points below the trigger — so "high things stay high" is already inside the baseline and is not being claimed as insight.

Every figure here is published next to the rate you'd have got by chance. A hit rate without a baseline means nothing: "still at an extreme within 8 weeks" would score near 90% on any series that moves slowly, and would tell you exactly nothing.

4 · What it does not claim

An extreme cross score says nothing about direction

Eighteen directional setups were tested: follow the lean, fade the lean, and trade the unwind when the score crosses back inside the band — each at 4, 13 and 26 weeks.

None survived. Against roughly 0.9 expected to clear by chance alone. No excess return exceeded 1.3% in either direction, breadth was a coin flip (6 to 16 of the 20–21 crosses with enough signals to measure), and in-sample and out-of-sample signs flipped.

That is why the colours in this indicator name a currency and never a direction, why there is no buy or sell marker anywhere in it, and why the verdict line ends with "no directional claim" whenever it flags a lean.

A tool that told you a crowded cross was about to turn would be asserting something 21 crosses and 26 years of data say is not there. Plenty of COT tools make exactly that claim. This one won't.

5 · So what is it actually for

Positioning tells you what regime you are in: whether one side of a cross is crowded, how stretched it is, and — now measured — that the state will most likely still be there in a fortnight.

What it does not tell you is where to act. That needs a price-location layer: support and resistance structure, envelope bands, pivots. There is none in this script.

Used properly, this is a context filter. It tells you which crosses have a stretched crowd behind them, so you know which charts deserve attention — and then your own system decides everything else.

6 · Reading the colours

ColourMeaning
GOLDThe base currency of the pair. Not "bullish". The score line saturates toward gold as the reading gets more extreme and fades to neutral near zero — the claim is about extremes, so a balanced score is deliberately dull.
SLATEThe quote currency. Not "bearish". Same heat grading on the negative side.
GREYBalanced — neither leg is crowded. Grey is also the warming-up state, before the leg index has its 20 reports; the panel says which of the two you are looking at.

The absence of teal and red here is deliberate. Those colours carry directional meaning everywhere else in the COTVault suite, and using them for a score with no measured directional edge would imply something the testing rejected.

7 · The panel

RowWhat it tells you
Cross score−100 to +100, with a meter and which currency the crowd favours.
Base leg / Quote legEach currency's own COT index and state. The detail the score hides. Shown on crosses only.
Both legsWhether the two legs are pulling together (both stretched, opposite ends) or one leg is doing all the work while the other sits mid-range. Same score, different market — see §2. Crosses only.
Weeks at extremeHow long the current reading has been beyond ±60.
Persistence claimThe pooled figure: 55.5% vs 24.6%, +30.9, 20/20 crosses.
… on this chartThe same claim recomputed live on your symbol. It will differ — one cross is a small, noisy sample, and seeing that is the point.
VerdictPlain language. Whenever it flags a lean it ends in "no directional claim," so the limit travels with the reading.

If the panel says "No CFTC currency leg for <symbol>" — this reads FX only. A cross, or a USD pair built from EUR GBP JPY CHF CAD AUD NZD MXN ZAR BRL. Stocks, indices, crypto, metals and energy futures have no currency leg to index, so no score is drawn. If it says "warming up", the leg index has not yet collected its 20 weekly reports on this chart.

Setting Data box to Compact keeps only the Cross score and the Verdict — the leg rows, Weeks at extreme and both persistence rows are hidden.

8 · The screener — all 21 crosses at once

Seven currencies have a CFTC contract: EUR, GBP, AUD, NZD, CAD, CHF, JPY. Every pairing of those seven is a cross, which is 21 markets — and because the cross score is nothing more than base leg − quote leg, once the seven legs are indexed every pairing is already computed. No extra data, no extra symbols, no scanning.

So the screener ranks all 21 by how far from balance they are, and does it on whichever chart you happen to have open. This is the difference between asking "is EURAUD crowded?" and asking "which cross is crowded right now?" — the second is the question worth opening the week with.

ColumnWhat it is
PairThe cross, in the order a broker quotes it. A marks the chart you are on.
Score−100 to +100, heat-graded the same way as the main line.
Specs favourWhich of the two currencies the crowd is leaning toward, and whether it is past the ±60 band.

What the ranking is and is not

It sorts by how stretched positioning is, and the measured claim attached to a stretched reading is that it persists — not that it reverses, and not that the cross goes anywhere. A cross at the top of this list is one where the crowd is committed and likely to stay committed. That is a watchlist, not a signal list. §4 is still true: no directional setup survived testing.

The list should be identical on every chart — here is when it is not

The seven legs are the same seven legs whatever symbol you are on, so the ranking should not move when you switch charts. Only the moves. If you load AUDJPY and then CHFJPY, the six rows should be byte-for-byte the same.

The one exception: each leg is indexed against the weekly reports your chart has loaded. The window is 156 reports — three years. On a chart with less history than that, the legs rank against a shorter window, and the list genuinely can reorder between symbols. Weekly chart, three or more years of history, and the screener is identical everywhere. Below that, treat it as approximate.

It costs 14 of TradingView's 40 data requests. Turn it off in Settings if you want those back.

9 · Settings

SettingDefaultNote
Extreme at ±60The threshold the claim was measured at. Moving it invalidates the published figures.
Leg index lookback156Three years of weekly reports, the classic COT Index setting.
Rank all 21 crossesonThe screener in §8. Costs 14 of the 40 data requests; turn it off to reclaim them.
How many to list / position6 · Bottom leftBetween 3 and 10 rows, anchored anywhere.
Leg railonBoth legs along the bottom. Leave it on — see §2. Has no effect on USD pairs, which have a single leg.
Include options dataoffLeave it off. Every figure in this guide was measured on CFTC Legacy futures-only data. Switching it on swaps the dataset out from under the published numbers.
Mark entries into an extremeonTriangle on the report the score first crosses ±60. A state marker, not an entry.
Show data panelonThe panel in §7. Off hides it entirely.
Data boxNormalText size — except Compact, which is a content mode: it drops the leg rows, Weeks at extreme and both persistence rows, leaving only the score and the verdict.
Data box positionTop rightNine anchor points.
Glow on the score lineonCosmetic only.
Fill the score from centreonCosmetic only — makes the size of the lean readable at a glance.
Show the full guide on the chartoffRenders this manual as an on-chart panel, in two pages, anchored wherever you like.
Guide position / text size / pageMiddle left · Small · Page 1Where the on-chart manual sits and which of its two pages shows.

10 · Alerts

AlertFires when
Specs favour the BASE currencyThe score crosses up through the extreme band (+60 by default) — the first report beyond it, not every report it stays there. The message carries the measured persistence figures with it.
Specs favour the QUOTE currencyThe score crosses down through −60, same first-report-only rule.
New COT report ingestedA fresh weekly CFTC report lands on the chart.

All three are positioning states. None is an entry. Set them to Once Per Bar Close on a weekly chart — the data only changes once a week.

11 · Limitations

12 · Methodology

21 crosses built from all pairings of EUR, GBP, JPY, CHF, CAD, AUD and NZD. Each leg's COT index is the same 156-week min-max range position the indicator computes live, so the study and the chart cannot drift apart. Cross prices for the directional tests were built from the USD-quoted futures as XUSD / YUSD, close-based only — the high of a ratio is not the ratio of the highs, and a barrier test on approximated highs and lows would be measuring the approximation rather than the market.

Persistence uses a matched adjacent-band control. Directional tests used excess return versus each cross's own unconditional drift, with per-cross breadth, a bootstrap CI resampled over crosses, and a walk-forward split at 2010. The count of setups tested is published above so you can discount for multiple comparisons yourself — which, given none of them survived, is academic.

← COTVault — the full COT dashboard
COTVault · Free tier · COTVAULT.COM