Kiedy publikowany jest raport COT?
CFTC publikuje raport COT w każdy piątek o 15:30 czasu ET, na podstawie danych z wtorkowego zamknięcia. Harmonogram, trzydniowe opóźnienie i interpretacja.
Raport Commitments of Traders, czyli raport COT, jest publikowany w każdy piątek o 15:30 czasu wschodniego przez amerykańską Commodity Futures Trading Commission. Obejmuje on pozycje według stanu na zamknięcie sesji we wtorek poprzedzający publikację. Między pomiarem a publikacją mijają trzy dni. Ta luka oraz próg raportowania obejmujący wyłącznie największych traderów określają, co ten bezpłatny tygodniowy plik może rzeczywiście pokazać.
Kiedy co tydzień publikowany jest raport COT?
W piątek o 15:30 czasu wschodniego. Publikacji dokonuje sam regulator. Strona CFTC poświęcona raportowi Commitments of Traders udostępnia pliki bez opłat, w formie tabel do przeglądania oraz plików tekstowych do pobrania.
Dwa elementy kalendarza mają większe znaczenie niż sama godzina publikacji:
- Datą danych jest wtorek, a nie piątek. Każda wartość w piątkowym pliku opisuje stan pozycji na zamknięcie sesji we wtorek.
- Święta federalne przesuwają publikację. Święto przypadające w tygodniu raportowym opóźnia publikację o dzień lub dwa. CFTC udostępnia harmonogram publikacji z rzeczywistą datą dla każdego tygodnia. W zwykłym tygodniu obowiązuje piątkowy termin, ale w tygodniach obejmujących święta federalne może on ulec zmianie.
Ten sam wtorek jest uwzględniany w więcej niż jednym pliku: w wersji obejmującej wyłącznie kontrakty futures oraz w wersji łączącej opcje i futures. W tej drugiej pozycje opcyjne są przeliczane na ekwiwalent kontraktów futures przy użyciu współczynników delta dostarczanych przez giełdy. Dwie osoby podające różne wartości dla tego samego rynku tego samego dnia często korzystają z różnych wersji raportu.
Dlaczego w momencie publikacji raport COT jest opóźniony o trzy dni?
Luka między momentem pomiaru a publikacją jest najważniejszą kwestią w analizie danych o pozycjonowaniu. Działania największych traderów podjęte w środę, czwartek lub piątkowy poranek nie są uwzględnione w pliku publikowanym o 15:30. Aby zmierzyć skalę tej luki, przedstawione tu panele analizują ETF-y śledzące rynki objęte raportem COT: akcje, obligacje skarbowe, metale i surowce energetyczne. ETF-y nie są kontraktami futures. Stanowią jednak miarodajną miarę tego, jak daleko rynki te mogą się przemieścić w ciągu trzech dni.
Dokładny kod SQL dla każdej liczby
WITH raw AS (
SELECT ticker,
toTimeZone(window_start, 'America/New_York') AS et,
close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'TLT', 'GLD', 'SLV', 'USO', 'UNG')
AND window_start >= toDateTime('2024-08-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
bars AS (
SELECT ticker,
toDate(et) AS session_date,
toDayOfWeek(et) AS day_of_week,
toHour(et) * 60 + toMinute(et) AS minute_of_day,
close
FROM raw
WHERE toDayOfWeek(et) IN (2, 5)
AND (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
),
tuesday_snapshot AS (
SELECT ticker,
toMonday(session_date) AS week_start,
argMax(close, minute_of_day) AS tuesday_close
FROM bars
WHERE day_of_week = 2
GROUP BY ticker, week_start
),
friday_release AS (
SELECT ticker,
toMonday(session_date) AS week_start,
argMax(close, minute_of_day) AS friday_1530
FROM bars
WHERE day_of_week = 5
AND minute_of_day BETWEEN 900 AND 930
GROUP BY ticker, week_start
)
SELECT t.ticker AS ticker,
count() AS weeks_counted,
round(quantileDeterministic(0.5)(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100,
cityHash64(toString(t.week_start))), 2) AS median_abs_move_pct,
round(quantileDeterministic(0.9)(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100,
cityHash64(toString(t.week_start))), 2) AS p90_abs_move_pct,
round(100 * countIf(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100 >= 2) / count(), 1) AS pct_weeks_over_2pct
FROM tuesday_snapshot AS t
INNER JOIN friday_release AS f
ON t.ticker = f.ticker AND t.week_start = f.week_start
GROUP BY t.ticker
ORDER BY median_abs_move_pct DESCW ciągu dwóch lat tygodni objętych raportami mediana odległości między wtorkowym zamknięciem a transakcją z piątku o 15:30 wynosiła od 2.97% w UNG do 0.66% w TLT, na podstawie 97 tygodni. W połowie tygodni ruch był mniejszy od tych wartości medianowych. To wartości skrajne sprawiają, że wtorkowy pomiar szybko się dezaktualizuje: w jednym tygodniu na dziesięć rynek poruszył się o 8.68% lub więcej w UNG, a w 68% tygodni ruch przekroczył dwa procent.
Jeden rynek, analizowany tydzień po tygodniu, pokazuje, jak nierówna może być ta luka.
Dokładny kod SQL dla każdej liczby
WITH raw AS (
SELECT toTimeZone(window_start, 'America/New_York') AS et,
close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2025-08-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
bars AS (
SELECT toDate(et) AS session_date,
toDayOfWeek(et) AS day_of_week,
toHour(et) * 60 + toMinute(et) AS minute_of_day,
close
FROM raw
WHERE toDayOfWeek(et) IN (2, 5)
AND (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
),
tuesday_snapshot AS (
SELECT toMonday(session_date) AS week_start,
argMax(close, minute_of_day) AS tuesday_close
FROM bars
WHERE day_of_week = 2
GROUP BY week_start
),
friday_release AS (
SELECT toMonday(session_date) AS week_start,
max(session_date) AS friday_date,
argMax(close, minute_of_day) AS friday_1530
FROM bars
WHERE day_of_week = 5
AND minute_of_day BETWEEN 900 AND 930
GROUP BY week_start
)
SELECT f.friday_date AS week,
formatDateTime(f.friday_date, '%b %e, %Y') AS friday_label,
round((toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100, 2) AS change_pct,
round(abs(toFloat64(f.friday_1530) / toFloat64(t.tuesday_close) - 1) * 100, 2) AS abs_change_pct
FROM tuesday_snapshot AS t
INNER JOIN friday_release AS f ON t.week_start = f.week_start
ORDER BY weekW 48 tygodniach objętych raportami w roku zakończonym 31 lipca 2026 r. luka w pierwszym przedstawionym tygodniu, kończącym się Aug 8, 2025, wyniosła 1.45%, a w ostatnim tygodniu, kończącym się Jul 31, 2026, wyniosła 0.86%. W niektórych tygodniach plik jest niemal aktualny. W innych opisuje rynek, który zdążył już zmienić położenie. Sam raport nie wskazuje, z którym przypadkiem mamy do czynienia. Podobny problem, lecz przy dłuższym cyklu, dotyczy krótkiej sprzedaży: termin publikacji danych o krótkiej sprzedaży przedstawia odpowiedni kalendarz, a dlaczego dane o krótkiej sprzedaży są opóźnione o dwa tygodnie wyjaśnia źródło opóźnienia.
Co dzieje się w piątek o 15:30?
Plik pojawia się pół godziny przed zamknięciem amerykańskiego rynku akcji o 16:00 czasu wschodniego. Poniżej przedstawiono rozkład obrotu podczas pełnej piątkowej sesji, w przedziałach piętnastominutowych.
Dokładny kod SQL dla każdej liczby
WITH raw AS (
SELECT toTimeZone(window_start, 'America/New_York') AS et,
volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2025-08-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
bars AS (
SELECT toDate(et) AS session_date,
toHour(et) * 60 + toMinute(et) AS minute_of_day,
intDiv((toHour(et) * 60 + toMinute(et)) - 570, 15) AS bucket,
volume AS shares
FROM raw
WHERE toDayOfWeek(et) = 5
AND (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
),
full_sessions AS (
SELECT session_date
FROM bars
GROUP BY session_date
HAVING sumIf(shares, minute_of_day >= 930) >= 0.05 * sum(shares)
)
SELECT formatDateTime(toDateTime(toDate('2026-01-02')) + (570 + b.bucket * 15) * 60, '%H:%i') AS et_time,
round(100 * sum(b.shares) / sum(sum(b.shares)) OVER (), 2) AS share_of_session_pct,
round(sum(b.shares) / uniqExact(b.session_date) / 1000000, 2) AS avg_volume_millions
FROM bars AS b
INNER JOIN full_sessions AS s ON b.session_date = s.session_date
GROUP BY b.bucket
ORDER BY b.bucketWolumen podczas sesji w USA ma kształt zbliżony do uśmiechu. Pierwszy kwadrans odpowiada za 6.98% dziennych obrotów akcjami, w przedziale o 12:00 aktywność spada do 2.72%, a ostatni kwadrans handlu ciągłego odpowiada za 13.17%. Przedział 15:30, w którym publikowany jest raport, obejmuje 4.92%. Publikacja przypada na fazę wzrostu aktywności przed zamknięciem w ostatnim dniu tygodnia handlowego. Jest to fakt dotyczący kalendarza, a nie stwierdzenie o transakcjach ujętych w raporcie.
Legacy, disaggregated czy TFF: czym różnią się raporty COT?
Cztery raporty noszą nazwę COT i w różny sposób dzielą otwarte pozycje z tego samego wtorku.
- Legacy dzieli każdy rynek na pozycje komercyjne, niekomercyjne i niepodlegające raportowaniu. Jest to najstarszy format i ten, który większość osób ma na myśli, mówiąc „raport COT”.
- Supplemental obejmuje 13 surowców rolnych i wyodrębnia traderów indeksowych jako osobną kategorię.
- Disaggregated obejmuje rynki fizycznych surowców — od rolnictwa i produktów naftowych po gaz ziemny, energię elektryczną i metale — oraz stosuje cztery kategorie: producent/merchant/przetwórca/użytkownik, dealerzy swapów, zarządzający aktywami oraz pozostali uczestnicy podlegający raportowaniu.
- Traders in Financial Futures, czyli raport TFF, obejmuje kontrakty finansowe, w tym waluty, papiery skarbowe, indeksy akcji i zmienność. Jego kategorie po stronie sprzedaży to dealer/pośrednik, a po stronie kupna: zarządzający aktywami/inwestor instytucjonalny, fundusze lewarowane i pozostali uczestnicy podlegający raportowaniu.
Gdy nagłówek informuje, że fundusze hedgingowe utrzymują największą od lat krótką pozycję w ropie naftowej, podstawową serią danych jest zazwyczaj managed money w raporcie disaggregated. To samo zdanie dotyczące S&P 500 odnosi się do leveraged funds w raporcie TFF. Tych etykiet nie można stosować zamiennie.
Kto faktycznie jest uwzględniany w raporcie COT?
Duzi traderzy i nikt więcej. Członkowie izb rozliczeniowych, futures commission merchants oraz brokerzy zagraniczni składają codzienne raporty dotyczące każdego tradera, którego pozycja osiąga lub przekracza próg raportowania określony przepisami CFTC. Dany rynek trafia do raportu COT tylko wtedy, gdy co najmniej 20 traderów posiada pozycje na tych poziomach. Pozycje podlegające raportowaniu obejmują zwykle od 70 do 90 procent otwartych pozycji na danym rynku. Pozostała część trafia do jednej pozycji „nonreportable”, bez przypisanej kategorii i liczby traderów.
Kategorie oznaczają deklarowany rodzaj działalności, a nie strategie inwestycyjne. Podmiot komercyjny, czyli producent/merchant/przetwórca/użytkownik, to firma, której działalność gospodarcza jest zabezpieczana przez pozycję futures, zgodnie z informacjami z formularza CFTC Form 40. Managed money oznacza skumulowany kapitał spekulacyjny: doradców, operatorów funduszy oraz fundusze zawierające transakcje na rzecz klientów. Elewator zbożowy zabezpieczający zapasy i fundusz zajmujący pozycję z myślą o zmianie ceny mogą posiadać identyczne kontrakty, lecz w przeciwnych kolumnach. Raport wskazuje, kto posiada pozycję. Nie informuje, dlaczego została ona otwarta.
Dwa sposoby błędnej interpretacji raportu COT
Rekordowa pozycja netto nie jest narzędziem do określania momentu transakcji. Pozycja netto to jedna wartość zbudowana z dwóch danych: pozycji długich minus pozycji krótkich, wyrażonych w kontraktach i dotyczących jednej kategorii. Rekordowy odczyt oznacza, że ekspozycja danej kategorii znajdowała się we wtorek na ekstremalnym poziomie. Nie wskazuje, kiedy ani czy ta ekspozycja zostanie zamknięta. Wskaźniki pozycjonowania inwestorów mają to samo ograniczenie na różnych klasach aktywów: wskaźnik put/call oraz dane FINRA o krótkiej sprzedaży opisują już zajętą pozycję.
Surowej liczby kontraktów nie można porównywać między produktami. Tabela COT zlicza kontrakty, a kontrakt oznacza określoną ilość danego aktywa. Jeden kontrakt na złoto na COMEX obejmuje 100 uncji trojańskich. Jeden kontrakt na ropę naftową na NYMEX obejmuje 1000 baryłek. Ranking rynków według liczby kontraktów jest więc rankingiem według jednostek zdefiniowanych przez giełdy przed dekadami. Ta sama zasada dotyczy akcji, gdzie jednostką jest jedna akcja.
Dokładny kod SQL dla każdej liczby
WITH raw AS (
SELECT ticker,
toTimeZone(window_start, 'America/New_York') AS et,
close,
volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'TLT', 'GLD', 'SLV', 'USO', 'UNG')
AND window_start >= toDateTime('2026-07-01 00:00:00')
AND window_start < toDateTime('2026-08-01 00:00:00')
),
rth AS (
SELECT ticker,
volume AS shares,
toFloat64(close) * volume AS dollars
FROM raw
WHERE (toHour(et) * 60 + toMinute(et)) BETWEEN 570 AND 959
)
SELECT ticker,
round(sum(dollars) / sum(shares), 2) AS unit_size_usd,
round(100 * sum(shares) / sum(sum(shares)) OVER (), 2) AS share_of_units_pct,
round(100 * sum(dollars) / sum(sum(dollars)) OVER (), 2) AS share_of_dollars_pct
FROM rth
GROUP BY ticker
ORDER BY unit_size_usd DESCJedna jednostka SPY została w lipcu 2026 r. sprzedana po średniej cenie 744.99 USD, w porównaniu z 10.52 USD za jedną jednostkę UNG. Tysiąc jednostek każdego z tych aktywów nie oznacza tej samej kwoty. W przypadku siedmiu funduszy SPY odpowiadało za 31.75% obrotu jednostkami i 50.07% obrotu w ujęciu dolarowym, podczas gdy UNG odpowiadało za 5.41% obrotu jednostkami i 0.12% obrotu w ujęciu dolarowym. Udział w liczbie jednostek odpowiada udziałowi w wartości obrotu tylko wtedy, gdy każda jednostka kosztuje tyle samo. Pozycjonowanie należy porównywać w czasie w ramach jednego rynku albo przed rankingiem przeliczać kontrakty na wartość nominalną.
FAQ dotyczące raportu COT
O której godzinie publikowany jest raport COT?
W piątek o 15:30 czasu wschodniego na stronie CFTC. Pozycje są mierzone na zamknięcie sesji we wtorek poprzedzający publikację, dlatego w momencie publikacji dane są opóźnione o trzy dni. Święto federalne przypadające w tygodniu raportowym opóźnia publikację o dzień lub dwa.
Czy raport COT jest bezpłatny?
Tak. CFTC publikuje go bez opłat, w formie tabel do przeglądania oraz plików do pobrania. Komercyjne produkty dotyczące pozycjonowania wykorzystują te same publiczne dane, dodając wykresy i historię.
Jaka jest różnica między raportem COT legacy a disaggregated?
Raport legacy dzieli rynek na pozycje komercyjne, niekomercyjne i niepodlegające raportowaniu. Raport disaggregated dzieli rynki fizycznych surowców na producentów/merchantów/przetwórców/użytkowników, dealerów swapów, zarządzających aktywami oraz pozostałych uczestników podlegających raportowaniu. Rynki finansowe są ujmowane według analogicznego podziału w raporcie Traders in Financial Futures.
Czy raport COT pokazuje pozycję każdego tradera?
Nie. Obejmuje traderów, których pozycje osiągają lub przekraczają progi raportowania CFTC. Zwykle odpowiada to 70–90 procentom otwartych pozycji na rynku, a dany rynek jest publikowany tylko wtedy, gdy co najmniej 20 traderów znajduje się na tych poziomach. Wszyscy pozostali są łączeni w jednej anonimowej pozycji niepodlegającej raportowaniu.
Czy raport COT może przewidywać zmiany cen?
Jest to spis pozycji z trzydniowym opóźnieniem, a nie prognoza. Rejestruje stan pozycji dużych traderów we wtorek, ale ekstremalny odczyt nie wskazuje, kiedy nastąpi jego odwrócenie.
Każda liczba na tej stronie pochodzi z zapisanego zapytania opartego na historii cen i wolumenu w ujęciu minutowym. Kod SQL jest dostępny pod każdym panelem. Sam raport COT pozostaje bezpłatny, tak jak dotychczas, i jest publikowany w każdy piątek o 15:30. Te same panele można uruchomić dla obserwowanych rynków w terminalu Strasmore.