VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 指標與訊號

商品部位報告(COT):如何把部位極端值測試成規則

商品期貨交易人部位報告(COT)是美國商品期貨交易委員會(CFTC)每週公布、免費取得的期貨部位表,列出避險者、大型投機者與小型交易人持有的部位。把它當作緩慢的每週過濾條件使用,每個數值都以週五的發布日期標記,把部位與其自身歷史比較排名,並且只以樣本外測試、對照純價格基準來判斷這個過濾條件是否有效。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 商品部位報告顯示什麼,又在哪裡查閱?
  2. 週二到週五的發布落差,為什麼對回測很重要?
  3. 如何把部位極端值轉成可測試的規則?
  4. COT 報告對原油或股價指數期貨有幫助嗎?
  5. 把每週的 COT 資料與日線 K 棒混用時,如何避免前視偏誤?
  6. 在加入 COT 之前,ES 的純日線規則作為基準長什麼樣子?
  7. 常見問題
  8. 參考資料

商品部位報告顯示什麼,又在哪裡查閱?

商品期貨交易人部位報告(COT report)是 CFTC 每週公布、免費提供的表格,列出每個期貨市場中,商業避險者、大型投機者與小型交易人各自持有的多方與空方口數。在 CFTC 網站上每週五就能查到。對系統化交易者來說,它是一個緩慢的每週過濾條件,要用發布日期對齊的方式測試,而不是每天的進場訊號。

商品期貨交易人部位報告(COT report)是美國商品期貨交易委員會(U.S. Commodity Futures Trading Commission)發布的表格,顯示每個期貨市場中,各類交易人持有的多方與空方口數。傳統版報告把交易人分成三組。商業交易人是利用期貨對沖本業風險的企業,例如煉油廠或穀物出口商。非商業交易人是部位大到必須申報的大型投機者,例如基金。非申報交易人則是低於申報門檻的所有人,其部位是以總量減去前兩組後的餘額計算。每一組的淨部位是多方口數減空方口數。因為每一口多方都有一口空方對手,三組的淨部位加總為零。

三方淨部位加總為零:假設某市場某一週,商業避險者淨空四萬口,大型投機者淨多三萬口,小型交易者淨多一萬口,淨部位加總為零 三方淨部位加總為零 淨口數,示意圖 0 商業避險者 −4萬口 大型投機者 +3萬口 小型交易者 +1萬口 每個多方都有空方。 所以:排名一個群體的淨部位。
同一市場、同一週:三組交易人,各有多方與空方口數,淨部位加總為零。

CFTC 發布的報告不只一個版本。下表列出與規則測試最相關的版本。

報告版本交易人分組最適用途
傳統版(Legacy)商業、非商業、非申報歷史最長;通常是部位指數的基礎
分類版(Disaggregated)生產者/貿易商、交換交易商、管理型基金、其他申報者實體商品,例如原油與穀物
金融期貨交易人報告(TFF)交易商/仲介商、資產管理人、槓桿基金、其他申報者指數、債券與貨幣期貨

查閱方式:CFTC 在「Commitments of Traders」頁面,以網頁表格呈現當週資料,並以可下載檔案提供完整歷史。做回測時要用歷史檔案,因為規則需要的是每週數值構成的時間序列,而不是最新一週的截圖。CFTC 的《Explanatory Notes》說明了各組如何定義,以及價差部位如何計算,在使用這些數字之前應先讀過一次。

這份報告每個市場每週只給出一個數值。因此它屬於緩慢過濾條件這一類,而不屬於日內交易指標,以及每一種在哪裡失效,或日內交易最佳指標測試中所討論的工具。日內交易者在兩次 COT 發布之間可能要做五十個決策;一個一週才會變動一次的過濾條件,無法驅動這些決策。它能決定的是,較快的規則被允許朝哪個方向交易。

週二到週五的發布落差,為什麼對回測很重要?

部位以週二收盤時計算,但要到週五下午才發布,所以規則能合法行動的第一根 K 棒,是發布之後的第一個交易時段。若回測以週二的日期計算,等於在讀取未來的資料。CFTC 每週五美東時間下午 3:30 發布報告,部位日期之後三天。遇到美國假日的週,發布日會往後延。在回測中,這段落差就是「一條你當時真的能交易的規則」與「提前三天知道部位」的規則之間的全部差別。

只在公布後才進場:COT 部位以週二計算,週五美東下午 3:30 公布,第一根可用 K 棒於週日晚間開盤;週二至週五之間的資料即為前視偏誤 公布後才交易 公布 部位日期並非可用日期 部位 公布 首根 K 棒 前視偏誤 週二 週三 週四 週五 週六 週日 美東 3:30 pm 週二的資料,是週五的消息。 所以:依公布日期標記。
部位日期與第一根可用的 K 棒是不同的日子。兩者之間的任何資料都是前視偏誤。

想像一則足球比分刊登在週六的報紙上。比賽在週二踢完,但只看報紙的人要到週六才知道比分。如果回測把 COT 數值放在週二的 K 棒上,等於讓你的規則拿著週六的報紙,在週三下注。這種錯誤很隱密,因為資料本身是真的,錯的只是時間點。

規則能行動的第一根 K 棒取決於該市場的交易時段。對於美國股價指數期貨,週五的日盤收盤後才會發布,因此 CME 指數期貨的第一根可用 K 棒,是美東時間週日晚上下一個 Globex 交易時段開盤時。交易所偶爾會調整交易時段,所以請在交易所的合約頁面確認現行時程,或使用免費的各交易所期貨市場時段工具,核對你所在時區的時間。

假設性範例

假設一條規則是當部位指數升破 80 時做多。指數在日期為週二 3 月 3 日的報告上越過 80,該報告於週五 3 月 6 日發布。若回測以部位日期標記,規則會在 3 月 4 日週三進場。若回測以發布日期標記,規則會在週五之後的第一個交易時段進場,依美國時間是 3 月 8 日週日晚間開盤。如果市場在週三到週日之間移動了 2%,錯誤的回測會把這段漲跌算進獲利,誠實的回測則從未看見它。

如何把部位極端值轉成可測試的規則?

把某一交易人組別的當前淨部位,與其自身在固定回顧期內的歷史比較排名,轉換成 0 到 100 的指數;先寫下極端門檻,並明確定義指數越過門檻時規則要做什麼。部位指數是一個數字,用來說明本週的淨部位落在同一組別在回顧期內的最低與最高淨部位之間的哪個位置。單獨看原始淨部位的口數意義不大;但知道它是該組別三年來最空的部位,就是可以測試的資訊。

公式只有一條:

部位指數 =(當前淨部位 − 回顧期內最低淨部位)÷(回顧期內最高淨部位 − 回顧期內最低淨部位)× 100

這裡的當前淨部位是你所選組別本週的多方減空方;回顧期內最低淨部位與回顧期內最高淨部位,是該組別在你所設定的區間內最小與最大的淨值。當部位處於區間最低點時結果為 0,處於最高點時為 100。

將淨部位排名為 0 到 100:同一組假設性的部位序列,一方面以原始淨部位呈現,介於負六萬口到正二萬口之間,另一方面以 0 到 100 的指數呈現,其中只有穿越 20 與 80 的點為訊號點 淨部位排名,0 到 100 訊號:穿越 20 與 80 原始淨部位 指數 +2萬口 −6萬口 80 20 只有穿越點是訊號。 因此:測試前先固定 20 與 80。
同一段部位序列,分別以原始淨部位與 0 至 100 指數表示。只有越過預先寫定的門檻才是訊號點。

依照能保持測試誠實的順序,步驟如下:

  1. 選定一個市場與一個交易人組別。例如某商品的商業交易人,或 TFF 報告中某金融期貨的槓桿基金。看過結果後才更換組別,那就是第二次測試,而不是修正。
  2. 固定回顧期。三年約為 156 個週數值。先寫下來。
  3. 從歷史檔案計算指數,且只使用每根 K 棒之前已經發布的數值(下一節會說明對齊方式)。
  4. 在執行前寫下門檻與動作。例如:低於 20 時,較快的規則只能做空;高於 80 時,只能做多;介於兩者之間,雙向皆可。若你的判斷是商業極端值具有反向性質,則反過來寫。事先只選定一種解讀。
  5. 先測試不含過濾條件的基準規則,再測試加入過濾條件的版本,兩者使用相同的 K 棒、成本與交易時段,並比較樣本外結果。

假設性範例

在 156 週的回顧期內,某市場商業交易人的最低淨部位為 −60,000 口,最高為 +20,000 口。本週淨部位為 −52,000 口。指數為(−52,000 −(−60,000))÷(20,000 −(−60,000))× 100 = 8,000 ÷ 80,000 × 100 = 10。依照事先寫定的規則「低於 20,較快的進場只允許做多」,日線規則可以在該數值發布後的第一個交易時段接受做多訊號,直到之後某次發布使指數回到 20 以上為止。

越過門檻的訊號與布林通道策略及其回測中的通道突破,本質上是同一類規則:門檻、回顧期與方向都是設定值,而你嘗試的每一組額外門檻,都是一次額外的測試。Harvey 與 Liu(2015)說明了為什麼在眾多嘗試中挑出的最佳組合,其結果必須依嘗試次數折減。兩個門檻、一個回顧期、一個組別,已足以測試,而且數量少到值得信任。關於這個過濾條件如何與價格型工具並用,可以參考可以測試的技術分析工具與指標指南。

COT 報告對原油或股價指數期貨有幫助嗎?

原油的避險者參與度高,因此商業部位在原油中所含的資訊,通常比股價指數期貨多;股價指數期貨中的商業部位,主要反映交易商的避險行為。對特定市場而言,唯一站得住腳的答案,就是你自己執行的樣本外測試。在原油中,商業組別包含生產者、煉油廠與貿易商,其部位跟隨實體業務。在股價指數期貨中,傳統版報告被歸類為商業的,主要是替客戶賣出的商品進行避險的交易商,這也是 CFTC 另外發布 TFF 報告來涵蓋金融期貨的原因。

同一個標籤,兩種業務:原油中的商業交易者是生產者與煉油廠,為桶原油避險;股價指數期貨中則多為交易商與仲介,為客戶商品避險 同一個標籤,兩種業務 商業交易者是誰 原油 生產者 煉油廠 為桶油避險 指數期貨 交易商 仲介 為客戶避險 同名稱,避險者不同。 因此:依市場選擇分組。
同一個欄位標籤「商業」,在商品與股價指數期貨中描述的是不同的業務。
問題原油期貨股價指數期貨
商業交易人是誰?生產者、煉油廠、貿易商、交換交易商主要是交易商與仲介商
其部位反映什麼?買進與賣出實體原油的避險替客戶商品與結構型部位進行避險
避險者的比重有多大?通常占未平倉量的大部分通常較小;資產管理人與基金占主導
通常觀察哪一組的極端值?商業(傳統版)或生產者/貿易商(分類版)資產管理人與槓桿基金(TFF)
應先測試什麼?以商業指數作為方向過濾以槓桿基金指數作為方向過濾

這樣的推理只說明應該先看哪裡,並不保證你會找到什麼。一個市場即使避險者參與度很高,部位極端值與之後的價格變動在扣除成本後,仍可能沒有可用的關係。兩個市場的測試方法相同:先測試不含過濾條件的基準規則,再加入過濾條件,使用相同的 K 棒,並以事先寫定的規則,在樣本外判斷結果。

把每週的 COT 資料與日線 K 棒混用時,如何避免前視偏誤?

為每個 COT 數值標記發布日期,在下一次發布前保持不變,並執行一根 K 棒的位移檢查,確保任何一根 K 棒上可見的數值,都是在該 K 棒開盤時已經公開的。前視偏誤是回測中的一種錯誤,指規則使用了決策當時並不存在的資訊。每週資料搭配日線 K 棒是最容易藏住這類錯誤的地方之一,因為歷史檔案是以部位日期而非發布日期標記的。

依發布日標記 COT 數值:若依部位日期放置,週二即使用該週數值,過早;若依發布日放置,週二至週五看不到數值,週一的日 K 才首次使用 依發布日標記 同一週數值,兩種放置方式 錯誤 使用過早 正確 無 二 三 四 五 一 依公開時間標記資料日期。 因此:執行一根 K 棒的位移檢查。
日期標記前後的對照:同一個每週數值放在它被測量的那天(錯誤),與它公開的那天(正確)。

步驟如下:

  1. 在每週檔案中新增發布日期欄位。一般週的發布日是週二部位日之後的那個週五;遇到假日的週,請以 CFTC 公布的實際發布日期為準。
  2. 設定第一根可用的 K 棒為發布時間之後開盤的第一個交易時段。對日線資料而言,就是週五之後的第一根日 K 棒。
  3. 將數值向前延續。在下一根可用 K 棒出現之前,每一根日 K 棒看到的都是同一個指數值。每週才變動一次的過濾條件,在日線圖上應該呈現為階梯狀,而不是一條平滑的線。
  4. 執行一根 K 棒的位移檢查。把整個 COT 序列往後移一根 K 棒,重新執行。緩慢的每週過濾條件,結果應該幾乎不變。若結果變動很大,代表某個數值在它公開之前就被使用了。

位移檢查與回測中的前視偏誤與一根 K 棒檢查所描述的價格資料單根 K 棒測試,是同一個概念。對於一年只會切換幾次方向的過濾條件,延後一天不應明顯改變權益曲線。當基準版本與加入過濾的版本,都通過 AlphaPrime(Valynox)策略檢驗中的推進視窗時,過濾條件就會在這些視窗上被評分,而這些視窗中的 COT 數值與價格,在門檻寫定時都是未知的。這是唯一有意義的比較。

在加入 COT 之前,ES 的純日線規則作為基準長什麼樣子?

在判斷 COT 過濾條件是否有幫助之前,你需要一個只用價格建構的基準,並以過濾版本將使用的相同 K 棒、成本與交易時段來衡量。下方的方塊就是這樣的基準。它不是 COT 測試:這次執行以動能(Momentum)規則作為唯一的進出場依據,這是一個以標準指標建構的替代規則,沒有停損、沒有停利,也沒有任何過濾條件。搜尋共嘗試了 1,024 組候選策略,資料為 ES 日線,期間 2019-01-02 至 2025-06-30,並依報酬相對於回撤挑出一組。以下數字描述的就是這一組被挑出的候選策略。

來源:AlphaPrime 產品引擎(CPU),2026-10-31 執行。ES 日線,2019-01-02 至 2025-06-30,多空都做,1 口,每筆手續費 $20、滑價 $25。

項目結果
淨利(已平倉)$91,147.5
最大回撤$45,397.5
交易筆數242
勝率54.13%
獲利因子1.286
平均每筆$376.64
在場時間74.52%
所挑出候選策略的績效報表:ES 日線動能基準的權益與回撤面板。
所挑出候選策略的績效報表:ES 日線動能基準的權益與回撤面板。 ES・日線・2019-01-02 至 2025-06-30・CPU 引擎回測

請把這個方塊當作一次搜尋的描述,而不是任何人都能期待的結果。這組候選策略是在全部 1,024 組執行之後才挑出的,事後挑最好的一組會美化結果;它與平均候選策略之間的大部分差距,來自挑選,而非真正的優勢。動能指標並不會帶來 $91,147.5 的獲利,這條規則對未來也沒有任何承諾。這個方塊提供的是一個參考點:在 242 筆交易中,淨損益 $91,147.5,最大回撤 $45,397.5,每筆交易都計入 $45 的手續費與滑價,並且有 74.52% 的時間在場內。

這個數字正是 COT 過濾條件最先會改變的部分。只在部位指數高於 80 時允許做多、低於 20 時才允許做空的方向過濾,會減少在場內時間與交易筆數。測試要回答的問題是:在樣本外,被它排除的那些交易,是否本來就是較差的交易。可能出現三種結果:過濾版本保留大部分報酬,同時縮小回撤;它以相同比例同時減少報酬與回撤;或它主要排除的是好的交易。只有第一種結果,才是保留過濾條件的理由,而且必須在門檻從未見過的資料上依然成立。

下一步很具體。取得你手上已有的 ES 日線資料,從 CFTC 下載 TFF 歷史檔案,以 156 週回顧期建構槓桿基金部位指數,依發布日期標記,並把兩個門檻與方向規則寫在紙上。用相同的成本,在相同期間執行基準與過濾版本,只比較樣本外的視窗,並在相信任何差異之前,先對過濾版本執行一根 K 棒的位移檢查。

常見問題

什麼是商品期貨交易人部位報告(COT report)?

商品期貨交易人部位報告是美國商品期貨交易委員會(CFTC)每週發布的表格。它針對每個期貨市場,列出各類交易人群組(例如商業避險者、大型投機者與小型交易人)持有的多方與空方部位。部位以週二收盤時計算,並於週五下午發布。這份報告顯示的是部位而非價格,而且每週才變動一次。

我要在哪裡查看 COT 報告?

在 CFTC 網站的「Commitments of Traders」頁面。當週資料以各報告版本的網頁表格呈現,完整歷史則可下載檔案取得。做回測時需要歷史檔案,因為規則測試需要依序取得每一個週數值,且每個數值都要附上發布日期。

該如何解讀商品期貨交易人部位報告?

先選定一個市場與一個交易人組別,把該組的多方口數減去空方口數,得到淨部位。接著把這個淨部位與它在固定期間(例如三年)內的歷史比較,看它是接近高點還是低點。部位指數(0 至 100)把這個比較濃縮成一個數字。如果只看原始口數而沒有做這樣的比較,所得資訊很有限,因為同一組別的正常部位規模在不同市場中差異很大。

COT 報告對原油有用嗎?

原油是商業組別持有大量未平倉量的市場,其部位跟隨實體避險,因此在這裡測試商業部位是合理的做法。它在扣除成本後,是否真的改變策略的樣本外結果,只有你自己的測試能回答。建立一個純價格基準,加入以發布日期對齊的部位過濾條件,然後在門檻從未見過的資料上比較兩者。

COT 報告是什麼時候發布?

CFTC 每週五美東時間下午 3:30 發布報告,顯示的是前一個週二收盤時的部位。遇到美國聯邦假日的週,發布日會延後。回測必須以發布日期,而不是週二的部位日期,作為數值被得知的第一個時間點。

參考資料

  • U.S. Commodity Futures Trading Commission. Commitments of Traders. https://www.cftc.gov/MarketReports/CommitmentsofTraders/index.htm
  • U.S. Commodity Futures Trading Commission. Explanatory Notes: Commitments of Traders. https://www.cftc.gov/MarketReports/CommitmentsofTraders/ExplanatoryNotes/index.htm
  • Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1), 13–28.
  • CME Group. E-mini Nasdaq-100 Futures Contract Specs. https://www.cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html