COT報告何時發布?發布時間與三天落差
CFTC通常於每週五美東時間下午3:30發布COT報告,資料截至週二收市。了解發布時程、三天落差,以及期貨與期權版本的讀法。
《交易人持倉報告》(Commitments of Traders report,COT report)由美國商品期貨交易委員會每週五美東時間下午3:30發布,統計截至前一週週二營業時間收市時的持倉。資料衡量與發布之間相隔三天。這段落差,加上僅涵蓋最大交易人的申報門檻,決定了這份免費週報能夠如實告訴你的內容。
COT report 每週何時發布?
美東時間週五下午3:30,由監管機構自行發布。CFTC 的交易人持倉報告頁面免費提供檔案,包括可直接檢視的表格與可下載的文字檔。
行事曆上的兩項細節,比發布時間本身更重要:
- 資料日期是週二,不是週五。週五檔案中的每個數字,都描述截至週二營業時間收市時的持倉狀況。
- 聯邦假日會使發布日期順延。 若申報週內有聯邦假日,發布時間會延後一至兩天;CFTC 會公布發布時程,列出各週的實際日期。一般週次適用週五發布規則,但聯邦假日週會有所調整。
同一個週二的資料,也會出現在不只一份檔案中:一份僅涵蓋期貨,另一份則合併期權與期貨;後者會使用交易所提供的 delta 因子,將期權持倉換算為期貨等值部位。同一天針對同一市場引用不同數字的兩個人,往往是在看不同版本。
為什麼你讀到的 COT report 已經過時三天?
持倉快照與發布之間的落差,是理解持倉資料最重要的一點。最大交易人在週三、週四或週五上午進行的任何操作,都不會出現在下午3:30發布的檔案中。為了衡量這項盲點,本頁面使用追蹤 COT 涵蓋市場的 ETF 進行分析,包括股票、美國公債、金屬與能源。這些基金不是期貨合約,但可合理衡量這些市場在三天內的變動幅度。
每個數據背後的精確 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在兩年的報告週次中,從週二收市到週五下午3:30成交價的距離中位數,從 2.97%(UNG)降至 0.66%(TLT),樣本涵蓋 97 個週次。有一半的週次低於上述中位數。真正使週二快照顯得過時的是尾端分布:每十週就有一週在 UNG 內變動至少 8.68%,且有 68% 的週次突破2%。
逐週觀察單一市場,可以看出這段落差有多不均衡。
每個數據背後的精確 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截至2026年7月31日止的一年內,共有 48 個報告週次。圖表中的第一週截至 Aug 8, 2025,落差為 1.45%;最後一週截至 Jul 31, 2026,落差為 0.86%。有些週次的檔案幾乎反映最新狀況。有些週次描述的市場早已出現變化。檔案本身不會告訴你目前屬於哪一種週次。放空利息也有類似問題,但時間週期更長:放空利息何時發布說明該項行事曆,而為什麼放空利息會落後兩週則解釋這段延遲。
週五下午3:30會發生什麼事?
檔案會在美國股票市場於美東時間下午4:00收市前半小時發布。以下是完整週五交易時段按時鐘分布的成交量,每格代表十五分鐘。
每個數據背後的精確 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美國交易時段的成交量呈現微笑曲線。開盤後第一個十五分鐘占當日成交股數的 6.98%,中午12:00時段降至 2.72%,連續交易的最後十五分鐘則占 13.17%。報告發布時所處的15:30時段占 4.92%。這項發布發生在交易週最後一天、收市前成交量加速的時段內。這是行事曆上的事實,不代表檔案中的交易會在此時發生。
Legacy、disaggregated 或 TFF:各種 COT report 有何不同?
共有四份報告使用 COT 名稱,並以不同方式拆分同一個週二的未平倉部位。
- Legacy 將各市場拆分為 commercial、non-commercial 與 nonreportable 部位。這是最早的格式,也是多數人所稱「COT report」時指的版本。
- Supplemental 涵蓋13種農產品,並將指數交易人列為獨立類別。
- Disaggregated 涵蓋實體商品市場,從農產品與石油到天然氣、電力及金屬,分為四類:producer/merchant/processor/user、swap dealers、managed money,以及 other reportables。
- Traders in Financial Futures(TFF report)涵蓋金融合約,包括貨幣、美國公債、股票指數與波動率。其類別包括賣方的 dealer/intermediary,以及買方的 asset manager/institutional、leveraged funds 與 other reportables。
當新聞標題稱避險基金持有多年來最大的原油空頭部位時,背後的序列通常是 disaggregated report 中的 managed money。若同一句話談的是 S&P 500,則代表 TFF 中的 leveraged funds。這些標籤不能互換。
COT report 實際統計了哪些交易人?
只有大型交易人。結算會員、期貨佣金商與外國經紀商,會每日申報所有持倉達到或超過 CFTC 規定申報水準的交易人;只有當至少20名交易人的持倉達到該水準時,某一市場才會出現在 COT 中。可申報部位通常涵蓋某市場未平倉部位的70%至90%。其餘部位會合併在單一 nonreportable 項目中,不提供類別或交易人數。
這些類別代表申報的職業身分,而不是交易策略。commercial,或 producer/merchant/processor/user,是其期貨部位用來避險業務活動的企業;相關身分依其向 CFTC 提交的 Form 40 所載內容認定。managed money 是集合型投機資本,包括代表客戶交易的顧問、資金池管理人與基金。穀物倉儲業者可能為庫存避險,而基金可能押注價格變動;兩者可以持有相同合約,但分列在相反欄位。報告告訴你誰持有部位,卻從未告訴你原因。
COT report 的兩種常見誤讀方式
創紀錄的淨多部位不是擇時工具。 淨部位是在單一類別內,以多頭合約數減去空頭合約數所得到的一個數字。創紀錄的讀數表示該類別截至某個週二的曝險處於極端水準。它不提供該曝險何時或是否會解除的資訊。各資產類別的群體持倉指標都有相同限制:put/call ratio與FINRA 放空利息資料都描述已經建立的立場。
原始合約數不能用來比較不同商品。 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 DESCSPY 的一單位在2026年7月的平均成交價格為$744.99,而 UNG 的一單位為$10.52。各買賣1,000單位,代表的金額並不相同。在七檔基金中,SPY 占成交單位數的 31.75%、占成交金額的 50.07%;UNG 則占成交單位數的 5.41%、占成交金額的 0.12%。只有在每一單位價格都相同時,單位數占比才會等於金額占比。比較單一市場隨時間的持倉變化,或先將合約換算為名目價值,再進行任何排名。
COT report 常見問題
COT report 何時發布?
CFTC 網站會在週五美東時間下午3:30發布。持倉統計截至前一週週二營業時間收市,因此檔案發布時已經過時三天。若申報週內有聯邦假日,發布時間會延後一至兩天。
COT report 免費嗎?
是。CFTC 免費發布報告,提供可直接檢視的表格與可下載檔案。商業持倉產品則會以圖表與歷史資料重新整理相同的公開資料。
Legacy 與 disaggregated COT report 有何不同?
Legacy 將市場拆分為 commercial、non-commercial 與 nonreportable 部位。Disaggregated 則將實體商品市場拆分為 producer/merchant/processor/user、swap dealers、managed money 與 other reportables。金融市場則在 Traders in Financial Futures report 中採用相應分類。
COT report 會顯示每一位交易人的持倉嗎?
不會。報告統計持倉達到或超過 CFTC 申報水準的交易人;這通常涵蓋市場未平倉部位的70%至90%,且只有當至少20名交易人的持倉達到該水準時,市場才會發布。低於門檻的所有部位,會合併為單一匿名 nonreportable 項目。
COT report 能預測價格變動嗎?
它是附帶三天落差的持倉普查,不是預測工具。它記錄大型交易人在週二的持倉狀況,但極端讀數不會告訴你該部位何時結束。
本頁面每個數字都是根據分鐘級價格與成交量歷史資料執行的 stored query,且每個面板下方都公開 SQL。COT 檔案仍維持原有方式,每週五下午3:30免費發布。在 Strasmore terminal 上,針對你追蹤的市場執行相同面板。