Strasmore Research
Học tập Matt ConnorBởi Matt Connor

Báo cáo COT được công bố khi nào?

CFTC công bố báo cáo COT lúc 3:30 chiều thứ Sáu theo giờ miền Đông, dựa trên vị thế cuối ngày thứ Ba. Xem lịch, độ trễ ba ngày và cách đọc báo cáo.

Báo cáo Commitments of Traders, hay báo cáo COT, được Ủy ban Giao dịch Hàng hóa Tương lai Mỹ (CFTC) công bố vào 3:30 chiều thứ Sáu theo giờ miền Đông, dựa trên số liệu vị thế tại thời điểm kết thúc phiên giao dịch của ngày thứ Ba liền trước. Có ba ngày nằm giữa thời điểm đo lường và thời điểm công bố. Khoảng trễ này, cùng với ngưỡng báo cáo chỉ bao quát các trader lớn nhất, quyết định những gì tệp dữ liệu miễn phí hằng tuần này thực sự có thể cho bạn biết.

Báo cáo COT được công bố vào thời điểm nào mỗi tuần?

3:30 chiều thứ Sáu theo giờ miền Đông, do chính cơ quan quản lý công bố. Trang Commitments of Traders của CFTC đăng các tệp miễn phí dưới dạng bảng có thể xem trực tiếp và tệp văn bản có thể tải xuống.

Hai chi tiết trên lịch quan trọng hơn thời điểm trong ngày:

  • Ngày dữ liệu là thứ Ba, không phải thứ Sáu. Mọi số liệu trong tệp công bố vào thứ Sáu đều mô tả trạng thái vị thế tại thời điểm kết thúc phiên giao dịch ngày thứ Ba.
  • Ngày nghỉ lễ liên bang làm thay đổi lịch công bố. Nếu trong tuần báo cáo có ngày nghỉ lễ, việc công bố sẽ chậm một hoặc hai ngày. CFTC đăng lịch công bố với ngày thực tế của từng tuần. Quy tắc công bố vào thứ Sáu áp dụng trong tuần bình thường và được điều chỉnh quanh các tuần có ngày nghỉ lễ liên bang.

Cùng một ngày thứ Ba cũng xuất hiện trong nhiều hơn một tệp: phiên bản chỉ gồm futures và phiên bản kết hợp options và futures. Trong phiên bản kết hợp, vị thế options được quy đổi sang cơ sở tương đương futures bằng các hệ số delta do các sở giao dịch cung cấp. Hai người trích dẫn các con số khác nhau cho cùng một thị trường trong cùng ngày thường là vì họ đang đọc các phiên bản khác nhau.

Vì sao báo cáo COT đã cũ ba ngày khi bạn đọc?

Khoảng cách giữa thời điểm chụp dữ liệu và thời điểm công bố là điều quan trọng nhất cần biết về dữ liệu vị thế. Bất cứ việc gì các trader lớn nhất thực hiện vào thứ Tư, thứ Năm hoặc sáng thứ Sáu đều không xuất hiện trong tệp được công bố lúc 3:30. Để đo quy mô điểm mù này, các biểu đồ dưới đây theo dõi những quỹ ETF bám theo các thị trường mà COT bao quát: cổ phiếu, trái phiếu Kho bạc Mỹ, kim loại và năng lượng. Các quỹ này không phải là hợp đồng futures. Chúng là thước đo hợp lý cho mức biến động của các thị trường này trong ba ngày.

Truy vấnBảy thị trường biến động bao xa từ lúc đóng cửa thứ Ba đến 3:30 chiều ET thứ Sáu, tháng 8/2024–tháng 7/2026
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Run this yourself

Trong hai năm gồm các tuần có báo cáo, khoảng cách trung vị từ giá đóng cửa ngày thứ Ba đến mức giá ghi nhận lúc 3:30 chiều thứ Sáu dao động từ 2.97% vào UNG xuống 0.66% vào TLT, được đo trên 97 tuần. Một nửa số tuần có mức biến động thấp hơn các giá trị trung vị này. Phần đuôi của phân phối mới cho thấy vì sao ảnh chụp dữ liệu ngày thứ Ba nhanh chóng trở nên lỗi thời: cứ mười tuần thì có một tuần thị trường biến động ít nhất 8.68% trong UNG, và 68% số tuần có mức biến động vượt hai phần trăm.

Một thị trường được theo dõi theo từng tuần cho thấy khoảng trễ này không đồng đều như thế nào.

Truy vấnSPY: biến động từ lúc đóng cửa thứ Ba đến 3:30 chiều ET thứ Sáu, theo từng tuần, tháng 8/2025–tháng 7/2026
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Run this yourself

Trong 48 tuần có báo cáo tính đến năm kết thúc ngày 31 tháng 7 năm 2026, tuần đầu tiên trên biểu đồ, kết thúc vào Aug 8, 2025, có khoảng cách 1.45%, còn tuần cuối cùng, kết thúc vào Jul 31, 2026, có khoảng cách 0.86%. Có những tuần tệp dữ liệu gần như phản ánh hiện tại. Cũng có những tuần tệp mô tả một thị trường đã biến động sang trạng thái khác. Không có thông tin nào trong tệp cho bạn biết mình đang ở trường hợp nào. Short interest cũng gặp vấn đề tương tự nhưng với chu kỳ dài hơn: thời điểm công bố short interest trình bày lịch công bố, còn vì sao short interest chậm hai tuần giải thích độ trễ.

Điều gì xảy ra vào 3:30 chiều thứ Sáu?

Tệp dữ liệu được công bố nửa giờ trước khi thị trường cổ phiếu Mỹ đóng cửa lúc 4:00 chiều theo giờ miền Đông. Dưới đây là cách một phiên giao dịch đầy đủ ngày thứ Sáu phân bổ khối lượng giao dịch theo từng khoảng 15 phút.

Truy vấnKhối lượng giao dịch thứ Sáu phân bổ theo thời điểm: SPY, các khung 15 phút, toàn bộ phiên thứ Sáu trong năm qua
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Run this yourself

Khối lượng trong một phiên giao dịch tại Mỹ có hình dạng như một nụ cười. Mười lăm phút đầu tiên chiếm 6.98% số cổ phiếu giao dịch trong ngày, khoảng 12:00 giảm xuống 2.72%, còn mười lăm phút cuối của giao dịch liên tục chiếm 13.17%. Khoảng 15:30, là thời điểm báo cáo được công bố, chiếm 4.92%. Báo cáo xuất hiện trong giai đoạn khối lượng tăng tốc về cuối phiên vào ngày cuối cùng của tuần giao dịch. Đây là một thực tế về lịch công bố, không phải khẳng định về các giao dịch được ghi nhận trong tệp.

Legacy, disaggregated hay TFF: các báo cáo COT khác nhau thế nào?

Có bốn báo cáo mang tên COT và phân loại open interest của cùng một ngày thứ Ba theo những cách khác nhau.

  • Legacy chia mỗi thị trường thành vị thế commercial, non-commercial và nonreportable. Đây là định dạng lâu đời nhất và là loại mà phần lớn mọi người muốn nói đến khi nhắc tới “báo cáo COT”.
  • Supplemental bao quát 13 mặt hàng nông sản và tách index trader thành một nhóm riêng.
  • Disaggregated bao quát các thị trường hàng hóa vật chất, từ nông sản và dầu mỏ đến khí tự nhiên, điện và kim loại, với bốn nhóm: producer/merchant/processor/user, swap dealer, managed money và other reportables.
  • Traders in Financial Futures, hay báo cáo TFF, bao quát các hợp đồng tài chính, gồm tiền tệ, chứng khoán Kho bạc Mỹ, chỉ số cổ phiếu và volatility. Các nhóm của báo cáo gồm dealer/intermediary ở phía bán, sau đó là asset manager/institutional, leveraged funds và other reportables ở phía mua.

Khi một tiêu đề nói rằng hedge fund đang nắm giữ vị thế short dầu thô lớn nhất trong nhiều năm, chuỗi dữ liệu cơ sở thường là nhóm managed money trong báo cáo disaggregated. Cùng câu đó khi nói về S&P 500 lại đề cập đến leveraged funds trong báo cáo TFF. Các nhãn này không thể dùng thay thế cho nhau.

Những ai thực sự được tính trong báo cáo COT?

Chỉ các trader lớn, không có nhóm nào khác. Clearing member, futures commission merchant và broker nước ngoài gửi báo cáo hằng ngày về mọi trader có vị thế đạt hoặc vượt ngưỡng báo cáo do quy định của CFTC đặt ra. Một thị trường chỉ xuất hiện trong COT khi có ít nhất 20 trader nắm giữ vị thế ở các mức đó. Các vị thế phải báo cáo thường bao quát 70 đến 90 phần trăm open interest của một thị trường. Phần còn lại được gộp vào một dòng nonreportable duy nhất, không có phân loại và cũng không kèm số lượng trader.

Các nhóm thể hiện ngành nghề được khai báo, không phải chiến lược giao dịch. Commercial, hay producer/merchant/processor/user, là doanh nghiệp mà hoạt động kinh doanh được phòng hộ bằng vị thế futures, theo nội dung khai báo trên Mẫu 40 của CFTC. Managed money là nguồn vốn đầu cơ tập trung, gồm cố vấn, đơn vị vận hành pool và quỹ giao dịch thay mặt khách hàng. Một kho chứa ngũ cốc phòng hộ hàng tồn kho và một quỹ đặt vị thế theo kỳ vọng giá có thể nắm giữ các hợp đồng giống hệt nhau nhưng nằm ở hai cột đối nghịch. Báo cáo cho biết ai đang nắm giữ vị thế. Báo cáo không bao giờ cho biết lý do.

Hai cách thường khiến báo cáo COT bị hiểu sai

Vị thế net long kỷ lục không phải công cụ xác định thời điểm giao dịch. Vị thế ròng là một con số được tính từ hai thành phần, long trừ short, theo số hợp đồng trong một nhóm duy nhất. Một mức kỷ lục cho biết mức độ phơi nhiễm của nhóm đó đang ở vùng cực trị tính đến ngày thứ Ba. Nó không cho biết khi nào, hoặc liệu, vị thế đó có được đóng hay không. Các chỉ báo đo lường vị thế đám đông cũng có giới hạn này trên nhiều loại tài sản: put/call ratiodữ liệu short interest của FINRA đều mô tả một trạng thái đã được thiết lập.

Không thể so sánh các sản phẩm bằng số hợp đồng thô. Bảng COT đếm số hợp đồng, trong khi một hợp đồng là một lượng tài sản nhất định. Một hợp đồng vàng COMEX tương đương 100 troy ounce. Một hợp đồng dầu thô NYMEX tương đương 1.000 thùng. Xếp hạng các thị trường theo số hợp đồng thực chất là xếp hạng theo các đơn vị do các sở giao dịch quy định từ nhiều thập kỷ trước. Cách tính tương tự cũng áp dụng cho cổ phiếu, trong đó cổ phiếu là đơn vị.

Truy vấnĐơn vị so với giá trị dollar: bảy quỹ theo dõi các thị trường mà COT đề cập, tháng 7/2026
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Run this yourself

Một đơn vị SPY được giao dịch với giá trung bình $744.99 vào tháng 7 năm 2026, so với $10.52 cho một đơn vị UNG. Một nghìn đơn vị của mỗi loại không đại diện cho cùng một giá trị tiền. Trong bảy quỹ, SPY chiếm 31.75% số đơn vị được giao dịch và 50.07% giá trị giao dịch, trong khi UNG chiếm 5.41% số đơn vị và 0.12% giá trị giao dịch. Tỷ trọng số đơn vị chỉ bằng tỷ trọng giá trị giao dịch khi mọi đơn vị có cùng mức giá. Hãy so sánh vị thế trong cùng một thị trường theo thời gian, hoặc quy đổi số hợp đồng sang giá trị danh nghĩa trước khi xếp hạng.

Câu hỏi thường gặp về báo cáo COT

Báo cáo COT được công bố lúc mấy giờ?

3:30 chiều thứ Sáu theo giờ miền Đông trên website của CFTC. Vị thế được đo lường tại thời điểm kết thúc phiên giao dịch ngày thứ Ba liền trước, nên tệp dữ liệu đã chậm ba ngày khi được công bố. Nếu trong tuần báo cáo có ngày nghỉ lễ liên bang, lịch công bố sẽ chậm một hoặc hai ngày.

Báo cáo COT có miễn phí không?

Có. CFTC công bố báo cáo miễn phí dưới dạng bảng có thể xem trực tiếp và tệp có thể tải xuống. Các sản phẩm dữ liệu về vị thế commercial thường đóng gói lại cùng nguồn dữ liệu công khai này kèm biểu đồ và lịch sử.

Báo cáo COT legacy khác báo cáo disaggregated thế nào?

Legacy chia thị trường thành các vị thế commercial, non-commercial và nonreportable. Disaggregated chia các thị trường hàng hóa vật chất thành producer/merchant/processor/user, swap dealer, managed money và other reportables. Các thị trường tài chính được phân loại tương ứng trong báo cáo Traders in Financial Futures.

Báo cáo COT có cho thấy vị thế của mọi trader không?

Không. Báo cáo đếm các trader có vị thế đạt hoặc vượt ngưỡng báo cáo của CFTC. Nhóm này thường bao quát 70 đến 90 phần trăm open interest của một thị trường. Một thị trường chỉ được công bố khi có ít nhất 20 trader đạt các ngưỡng đó. Tất cả trader dưới ngưỡng được gộp vào một dòng nonreportable ẩn danh.

Báo cáo COT có dự báo được biến động giá không?

Đây là bản thống kê vị thế với độ trễ ba ngày, không phải dự báo. Báo cáo ghi nhận trạng thái của các trader lớn vào ngày thứ Ba, nhưng một mức cực trị không cho biết khi nào trạng thái đó sẽ kết thúc.


Mọi con số trên trang này đều là kết quả của một stored query trên dữ liệu giá và khối lượng theo từng phút, với câu lệnh SQL được mở bên dưới mỗi biểu đồ. Bản thân tệp COT vẫn được công bố miễn phí vào mỗi thứ Sáu lúc 3:30, như trước đây. Hãy chạy các biểu đồ tương tự trên những thị trường bạn theo dõi tại terminal Strasmore.

#cot report#cftc#positioning#futures#release schedule