Когда выходит отчет COT от CFTC
Комиссия CFTC публикует отчет COT каждую пятницу в 15:30 по восточному времени. Данные фиксируются на закрытии торгов во вторник. Узнайте график и правила чтения отчета.
Отчет Commitments of Traders (COT) публикуется каждую пятницу в 15:30 по восточному времени Комиссией по торговле товарными фьючерсами США (CFTC). В нем учитываются позиции по состоянию на закрытие торгов в предшествующий вторник. Между моментом фиксации данных и их публикацией проходит три дня. Этот временной разрыв, а также пороговые значения отчетности, учитывающие только крупнейших трейдеров, определяют реальную ценность этого бесплатного еженедельного файла.
Когда выходит отчет COT?
В пятницу в 15:30 по восточному времени, непосредственно на сайте регулятора. Страница CFTC с отчетами Commitments of Traders предоставляет файлы бесплатно в виде таблиц и текстовых документов для скачивания.
Две детали календаря важнее, чем время публикации:
- Дата данных — вторник, а не пятница. Каждая цифра в пятничном файле описывает состояние позиций на момент закрытия торгов во вторник.
- Федеральные праздники сдвигают публикацию. Праздничный день в течение отчетной недели задерживает публикацию на один или два дня. CFTC публикует график выхода отчетов с указанием фактической даты для каждой недели. Правило пятницы действует в обычные недели и корректируется в праздничные.
Данные за один и тот же вторник могут содержаться в разных файлах: версии только по фьючерсам и версии, объединяющей фьючерсы и опционы (где опционные позиции пересчитываются в эквивалент фьючерсов с использованием дельта-коэффициентов, предоставляемых биржами). Если два человека называют разные цифры по одному и тому же рынку за один и тот же день, скорее всего, они смотрят разные версии отчета.
Почему отчет COT устаревает на три дня к моменту прочтения?
Разрыв между моментом фиксации данных и их публикацией — самый важный аспект при работе с данными о позиционировании. Все, что крупнейшие трейдеры предприняли в среду, четверг или пятницу утром, отсутствует в файле, который выходит в 15:30. Чтобы оценить этот «слепой период», на графиках ниже представлены биржевые фонды (ETF), отслеживающие рынки, которые охватывает COT: акции, казначейские облигации, металлы и энергоносители. Фонды — это не фьючерсные контракты, но они служат объективным индикатором того, насколько сильно рынки могут измениться за три дня.
Точный SQL-код для каждого числа
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 DESCЗа два года отчетных недель медианное изменение цены от закрытия вторника до пятничного отчета в 15:30 варьировалось от 2.97% в UNG до 0.66% в TLT, при расчете за 97 недель. В половине случаев изменение было меньше этих медианных значений. Именно «хвосты» распределения делают данные вторника неактуальными: в одной из десяти недель изменение составляло 8.68% или более в UNG, а в 68% случаев оно превышало два процента.
Один рынок наглядно показывает, насколько неравномерным бывает этот разрыв от недели к неделе.
Точный SQL-код для каждого числа
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 weekЗа 48 отчетных недель в году по 31 июля 2026 года, первая неделя на графике, завершившаяся Aug 8, 2025, показала разрыв в 1.45%, а последняя, завершившаяся Jul 31, 2026, — 0.86%. Иногда файл почти актуален. Иногда он описывает рынок, который уже ушел далеко вперед. В самом файле нет информации о том, в какой фазе рынка вы находитесь. Схожая проблема существует и для коротких позиций (short interest) на более длинном временном отрезке: когда публикуется short interest описывает этот календарь, а почему данные по short interest запаздывают на две недели объясняет причину задержки.
Что происходит в пятницу в 15:30?
Файл выходит за полчаса до закрытия фондового рынка США в 16:00 по восточному времени. Ниже показано, как распределяется объем торгов в течение полной пятничной сессии по 15-минутным интервалам.
Точный SQL-код для каждого числа
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.bucketОбъем торгов в американскую сессию имеет U-образную форму. На первые 15 минут приходится 6.98% дневного объема, к 12:00 активность снижается до 2.72%, а на последние 15 минут непрерывных торгов приходится 13.17%. На интервал 15:30, когда выходит отчет, приходится 4.92%. Публикация происходит в момент финального рывка перед закрытием последнего торгового дня недели. Это факт календаря, а не утверждение о том, какие сделки совершаются на основе отчета.
Legacy, Disaggregated или TFF: в чем разница?
Существует четыре отчета под названием COT, которые по-разному классифицируют один и тот же открытый интерес вторника.
- Legacy разделяет каждый рынок на коммерческие, некоммерческие и не подлежащие отчетности позиции. Это старейший формат, который большинство и подразумевает под «отчетом COT».
- Supplemental охватывает 13 сельскохозяйственных товаров и выделяет индексных трейдеров в отдельную категорию.
- Disaggregated охватывает рынки физических товаров — от сельского хозяйства и нефти до природного газа, электроэнергии и металлов — и использует четыре категории: производители/торговцы/переработчики/пользователи, своп-дилеры, управляющие капиталом (managed money) и прочие участники.
- Traders in Financial Futures (TFF) охватывает финансовые контракты, включая валюты, казначейские ценные бумаги, фондовые индексы и волатильность. Категории: дилеры/посредники (на стороне продаж), а также управляющие активами/институционалы, фонды с использованием кредитного плеча и прочие участники (на стороне покупок).
Когда в заголовках пишут, что хедж-фонды держат крупнейшую за многие годы короткую позицию по сырой нефти, обычно имеется в виду категория managed money из отчета Disaggregated. Та же фраза применительно к S&P 500 означает фонды с кредитным плечом из отчета TFF. Эти категории нельзя подменять друг другом.
Кто именно учитывается в отчете COT?
Только крупные трейдеры. Клиринговые члены биржи, фьючерсные комиссионные торговцы и иностранные брокеры ежедневно подают отчеты по каждому трейдеру, чья позиция достигает или превышает пороговый уровень, установленный CFTC. Рынок появляется в отчете COT только тогда, когда 20 или более трейдеров удерживают позиции на этих уровнях. Отчитываемые позиции обычно составляют от 70 до 90 процентов открытого интереса на рынке. Остальное попадает в одну строку «не подлежащих отчетности» (nonreportable) без указания категории и количества трейдеров.
Категории основаны на заявленном роде деятельности, а не на стратегии. Коммерческий участник (производитель/торговец/переработчик/пользователь) — это фирма, чья бизнес-деятельность хеджируется фьючерсной позицией, как указано в форме CFTC 40. Managed money — это объединенный спекулятивный капитал: консультанты, операторы пулов и фонды, торгующие от имени клиентов. Зерновой элеватор, хеджирующий запасы, и фонд, делающий ставку на изменение цены, могут держать идентичные контракты в противоположных колонках. Отчет показывает, кто держит позицию. Он никогда не говорит, почему.
Две ошибки при чтении отчета COT
Рекордная чистая длинная позиция — это не инструмент для выбора времени сделки. Чистая позиция — это одно число, полученное из двух: длинные минус короткие контракты в рамках одной категории. Рекордное значение говорит лишь о том, что экспозиция данной категории достигла экстремума по состоянию на вторник. Это не дает никакой информации о том, когда или будет ли вообще эта экспозиция закрыта. Индикаторы позиционирования толпы имеют те же ограничения: put/call ratio и данные FINRA по short interest описывают уже занятую позицию.
Количество контрактов нельзя сравнивать между разными продуктами. Таблица COT считает контракты, а контракт — это определенное количество чего-либо. Контракт на золото COMEX охватывает 100 тройских унций. Контракт на нефть NYMEX — 1 000 баррелей. Ранжирование рынков по количеству контрактов — это ранжирование по единицам измерения, установленным биржами десятилетия назад. Та же логика применима к акциям, где единицей является акция.
Точный SQL-код для каждого числа
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 DESCОдна единица SPY торговалась в среднем по $744.99 в июле 2026 года, против $10.52 за одну единицу UNG. Тысяча единиц каждого актива — это не одна и та же сумма денег. Среди семи фондов на SPY пришлось 31.75% от общего числа торгуемых единиц и 50.07% от денежного объема, тогда как на UNG пришлось 5.41% единиц и 0.12% денежного объема. Доля в единицах равна доле в деньгах только тогда, когда каждая единица стоит одинаково. Сравнивайте позиционирование внутри одного рынка во времени или пересчитывайте контракты в номинальную стоимость перед любым ранжированием.
Часто задаваемые вопросы об отчете COT
В какое время выходит отчет COT?
В пятницу в 15:30 по восточному времени на сайте CFTC. Позиции фиксируются на закрытие торгов в предшествующий вторник, поэтому к моменту публикации файлу три дня. Федеральный праздник в отчетную неделю задерживает выход отчета на день или два.
Является ли отчет COT бесплатным?
Да. CFTC публикует его бесплатно в виде таблиц и файлов для скачивания. Коммерческие продукты по анализу позиционирования переупаковывают эти же публичные данные, добавляя графики и историю.
В чем разница между отчетами Legacy и Disaggregated?
Legacy разделяет рынок на коммерческие, некоммерческие и не подлежащие отчетности позиции. Disaggregated разделяет рынки физических товаров на производителей/торговцев/переработчиков/пользователей, своп-дилеров, управляющих капиталом и прочих участников. Для финансовых рынков аналогичную роль выполняет отчет Traders in Financial Futures.
Показывает ли отчет COT позицию каждого трейдера?
Нет. Он учитывает трейдеров, достигших пороговых уровней CFTC (обычно это 70–90% открытого интереса рынка), и публикуется только при наличии 20 и более таких трейдеров. Все, кто ниже порога, объединяются в одну анонимную строку.
Может ли отчет COT предсказать движение цен?
Это перепись позиций с трехдневным лагом, а не прогноз. Он фиксирует, где находились крупные трейдеры во вторник, и экстремальное значение не содержит даты своего завершения.
Каждая цифра на этой странице получена из запроса к истории цен и объемов с минутным интервалом, SQL-код доступен под каждым графиком. Сам файл COT остается там, где и был — бесплатным, каждую пятницу в 15:30. Запускайте те же панели для рынков, за которыми вы следите, в терминале Strasmore.