油價變成負的那天,壞掉的不是市場,是「價格一定是正的」這個假設

油價變成負的那天,壞掉的不是市場,是「價格一定是正的」這個假設

發布於
·28 分鐘閱讀
AI投資資料工程交易產業觀察商業職涯美股能源管理

TL;DR

  • 交易是一個「反歸納」(anti-inductive)的環境:你找到的規律會被別人發現然後競爭掉,剩下的東西越來越像隨機亂數。這跟物理定律完全相反。
  • 2020 年四月二十日,CME 的近月原油期貨結算價變成負數。壞掉的不只是油價,是全世界交易系統裡那句「價格必為正」的隱性假設。
  • 一個商品交易台的風險模型,曾經是一份叫 us commodities risk.xlsm 的 Excel 檔,用 VBA 生出另一份 Excel。跑得慢、沒有版本控制、沒有人完全知道它在算什麼。
  • Jane Street 在 2023 年才聘第一個資料工程師,現在有二十幾個。中間的過程就是:做一個小的、證明它有賺到錢、然後大家開始搶著要。
  • 停車場的衛星照片是個被講爛的例子,而且它其實很爛。真正有用的資料在信用卡清算網路手上。
  • AI 讓資料變更值錢,但也讓「資料髒」的代價變更高:越聰明的模型越會抓到你不小心從未來洩漏進歷史的資訊,然後給你一個漂亮但根本無法交易的回測結果。

這集在 2026 年九月二日播出的 Signals and Threads,是 Jane Street 自己做的技術 podcast。主持人是 Ron Minsky,2003 年就進公司,在裡面建了量化研究團隊,也是把整家公司搬去用 OCaml 這套函數式程式語言的推手。這個節目的定位很特別,它不聊估值也不聊行情,專門找內部工程師來拆解時脈同步、可靠 multicast、建置系統這種一般人聽了會想睡的題目,然後意外地講得很好聽。

這集的來賓是 Eric Mannes,在 Jane Street 待了十年左右。他先在商品交易台當交易員,做原油、天然氣的期貨跟 ETF,後來轉去做技術,現在帶公司的 alt data(替代資料)團隊。Jane Street 本身是全球最大的做市商之一,你買的很多 ETF 背後的報價都是它掛出來的。

這集我聽完最大的感想是:我們現在整天在講模型多強、算力多貴,但這集把鏡頭轉到一個沒人想拍的地方,就是有人得坐下來,搞懂那份資料裡的每一欄到底是什麼意思。

反歸納:你在物理課學到的那套,在市場裡剛好反過來

Eric 講他當實習生時聽到一個詞,anti-inductive,反歸納。

物理學裡你發現一條定律,這條定律不會因為你發現它就消失。市場不是這樣。你找到一個模式,開始用它賺錢,別人看到你的行為、猜到你在做什麼、跟著做,這個模式就被競爭掉了。你以前知道的事情變得不再成立。

Ron 補了一句我覺得整集最漂亮的話:正因為有一整套系統的工作就是把訊號從市場裡榨出來,所以市場剩下的東西看起來就會越來越像純粹的隨機。訊噪比很差不是因為大家笨,是因為它被榨過了。

你在市場裡做的每一個動作,都會改變別人的行為,而那些改變不會出現在你的訓練資料裡。

這也是為什麼交易這門生意沒辦法靠讀書學會。他說 Jane Street 招人的時候,軟體工程師通常在別的地方寫過軟體,但交易員幾乎沒有人有經驗,因為外面根本沒有能練的地方。

所以他們自己做了一個。實習生會玩一個叫 Figgy 的卡牌遊戲,四個人各自握有關於牌值的一部分私有資訊,你要一邊交易、一邊從別人的下單行為反推他知道什麼、然後決定要不要修正自己的判斷。重點不是遊戲本身,是讓人習慣在低風險、有真實後果的環境裡,把自己的判斷攤在檯面上被檢驗。

他講到一個很關鍵的分辨題:你要能區分「這是一筆雙贏的交易」跟「我跟一個跟我一樣聰明的人,對同一件事有不同看法」。後者的意思是我們之中有一個人錯了,而你得認真想想為什麼錯的不是你。這在投資圈太常見了,多數人連自己站在哪一邊都沒搞清楚。

油價變成負的那天

Eric 後來變成公司內部某些冷門角落的專家,其中一個角落是期貨的合約規格。

聽起來像是最無聊的東西,但這裡藏著一堆會出事的地雷。買股票的時候,你要算這筆交易的現金流很簡單,價格乘以數量就好。期貨不是。你在報價系統上看到的是「一桶原油的價格」,但一口合約實際上是一千桶,這個倍數叫 multiplier(合約乘數)。不同資料來源給你的報價單位還不一樣,有人報美元,有人報美分。差一百倍。

如果你永遠正確地把價格跟乘數配對,就不會意外交易到少一百倍的量,或者更糟,多一百倍。

還有價差合約。你買一個 CLU6-CLV6 spread,實際上是同時做多九月的原油、做空十月的原油。可是不同交易所的正負號慣例是反的,S&P 500 的價差合約跟原油的價差合約,符號規則剛好相反。你光看代號的寫法猜不出來。

然後是那天。2020 年四月二十日,CME 的近月原油期貨結算在一個負數。

原因不神秘:那份合約約定的是把油送到 Oklahoma 州的 Cushing,而當時 Cushing 的儲油空間快滿了、全世界供給過剩、需求因為那年大家都記得的原因掉到地上。如果你手上是多單,你要拿這一千桶油怎麼辦?找不到地方放,那就只好倒貼錢請人拿走。

真正有意思的是後果。全世界不知道多少交易與風控系統裡,寫死了「價格是正的」這個假設。商品是好東西,好東西怎麼會是負價。結果那天,很多本來應該進場提供流動性、把價格接回正常的人,發現自己的下單系統根本不接受負一百這個輸入。

而且問題會擴散。如果你有另一套模型是用原油價格去推估石油公司的估值,那天你要餵哪個數字進去?

Ron 順著這個講了一句我很有共鳴的話:很多人以為 Jane Street 這種公司做的全是高效能運算跟漂亮的數學模型。那些都是真的,但另外一大半的工作,是低頭去搞懂世界實際上是怎麼運作的,包括 Cushing 到底還剩多少儲油空間。

那份跑很慢的 Excel

Eric 後來被拉去做 desk dev(交易台專屬開發),第一個要處理的東西是一份叫 us commodities risk.xlsm 的 Excel 檔。

它的工作是把整個商品交易台的風險曝險攤開來看。你要能從「所有能源產品」一路往下鑽到「西德州中級原油」,再鑽到「十一月份的某一口合約」,還要能在各個層級之間自由切換。

而這件事的實作方式是:你按一個按鈕,它跑一串 VBA 巨集,這串巨集會去把交易與部位資料抓進來,然後生出另一張表格,上面帶著分析用的公式。

寫程式的程式。用 Excel 寫的。

Eric 講得很誠實,他說他其實很愛 Excel。Excel 大概是全世界使用人數最多的函數式程式語言(現在還有 lambda 跟 let binding,是 Simon Peyton Jones 那批人去微軟做的)。它最厲害的地方在於:寫 Python 的時候你看得到邏輯、看不到資料,Excel 剛好相反,資料在正中間,邏輯藏在後面。而人是根據看到的資料做決定的。

問題也很清楚。效能有時候還好,但總是在最關鍵的時刻很糟。VBA 沒有型別檢查、很難寫測試。最痛的是沒有版本控制,於是東西會不斷堆積。某個人隨手在角落塞了幾條「暫時用一下」的公式,那幾條公式就永遠留在那裡了。

最後的狀態是:沒有人完全知道這份檔案在算什麼。有些人知道很多,而且滿有把握,但沒有人能重建完整的模型,也沒有人能肯定它沒問題。

Eric 甚至為此寫過一個 Excel 版的 grep 工具,因為要一個一個打開檔案、先 Ctrl+F 搜儲存格公式、再進去搜 VBA,根本不可行。

我看到這段的時候笑出來,因為這種東西每家公司都有。名字不一定叫 xlsm,可能是一份 Google Sheet、一個 cron job、一支沒人敢動的 Python script。它是公司裡最重要的資產,同時也是最大的風險,而它之所以還活著,只是因為它還沒壞。

交易員的痛覺閾值高到有點危險

Eric 講到 desk dev 的價值時,講了一個雙向的問題。

一邊是:工程師需要懂領域。你不能只丟一份規格給他叫他照做,他得知道我們到底在建什麼、資料從哪來、彼此怎麼組起來,這樣他做出來的每一塊才會拼得起來。

另一邊更有趣。他說領域專家如果自己不是工程師,通常根本不知道「東西可以做到多好」。他的原話是:我已經用這種很痛苦的方式做了好幾年,痛到習慣了,所以我沒發現自己需要一個更好的工具。

Ron 接了一句:Jane Street 交易員的一個特徵是痛覺閾值很高。如果流程是「把頭在桌上敲三下、再打自己一巴掌,機器就會吐錢出來」,他們就會一直敲下去。

好的 desk dev 的價值就在這裡,他會走過來說:不對,你不該這樣做,我們蓋一個工具,你現在做起來很痛的那些研究會變得很容易,而那些現在沒人肯做的研究,也會變成有人願意做。

這句話值得所有在公司裡管流程的人抄下來。你的團隊沒抱怨,不代表事情做得好,可能只代表他們已經痛到麻痺了。

停車場的衛星照片其實是個爛例子

講到 alt data,所有人都會舉那個經典例子:拍一張 Walmart 停車場的衛星照片,數車子,車多生意好、車少生意差。

Eric 直接說這例子不太行。

第一,很麻煩,你要拍非常多停車場的非常多張照片,而且噪音很大,每家店每週可能就那麼幾張。第二,Walmart 有兩成營收來自線上,其他零售商比例更高,停車場拍不到。第三,紐約市的消費者根本不開車去買東西。最根本的是,它太間接了:你量到的是「有多少人來了」,不是「他們花了多少錢」。

那從第一性原理想,誰知道消費者在 Walmart 花了多少錢?

Walmart 自己知道,但它要到季報才會講。消費者自己知道,但你一個一個問要問到天荒地老。然後就是那個答案:發卡銀行知道。Visa 跟 Mastercard 的網路知道。那些幫一大堆信用合作社做信用卡與簽帳卡系統的後台服務商也知道。他們可能願意賣去識別化、聚合過的統計數字。

這讓我想到 Billions 裡 Bobby Axelrod 那套邏輯:edge 不是靠你比別人聰明,是靠你願意走多遠去把資訊拿到手。停車場照片是聰明人在會議室裡想出來的答案,信用卡清算網路是有人真的跑去問「這條資料到底從哪裡生出來」之後找到的答案。

但拿到之後才是真正的問題。這批交易資料不是全美消費者的隨機抽樣,它是某一個發卡計畫的持卡人。用信用合作社卡片的人,跟拿 Chase Sapphire Reserve 的人,消費行為完全不一樣。而且面板裡的人會進進出出:這個月樣本裡的消費金額變多了,是大家真的多花錢,還是只是樣本裡多了幾個人?

廠商幫你把歷史資料修好了,然後你開始用時光機做研究

這是整集我覺得最值得所有做量化、做回測、做 A/B 測試的人記下來的一段。

資料供應商會犯錯,也會修正。他們可能某一欄的算法弄錯了,過幾個月跟你說「不好意思,之前那些值都是錯的,這是正確版本」。他們也可能改進了商家標記,把一批本來歸給 A 品牌的交易改成 B 品牌。

從資料品質的角度,這當然是好事,錯的變成對的了。

但如果你今天要評估「假如我兩年前就訂閱這份資料,我會不會做出好交易」,然後你手上拿的是修正後的版本,那你研究的根本不是當年的自己。你研究的是一個有時光機的自己。

而且這件事很細微。有些修正純粹是機械性的,沒差;有些修正本身就夾帶了後來才知道的資訊,你一不小心就把未來偷渡進了過去,而且很難察覺。

Jane Street 的做法是:把每一次收到的資料,連同「我們收到它的時間」一起存起來。不管之後做什麼轉換,永遠可以重建出「在那個時間點,我們實際知道什麼」。

Ron 說這跟他們處理交易所行情資料的邏輯一模一樣。交易所的封包上有它自己的時間戳,但時脈可能沒同步、可能各種奇怪的偏差,所以他們自己也在封包落到自家網路的那一奈秒打上時間戳。別人的時間戳有資訊價值,但自己的時間戳才可信。

AI 讓資料更值錢,也讓「做壞」的成本更高

模型變強之後,Eric 的判斷是資料的價值整體上升了。尤其 LLM 讓從非結構化文字裡抽取特徵這件事,從「一堆 regex 拼成的噩夢」變成日常操作。

但同一件事也帶來一個很尖銳的問題:如果你用一個訓練資料涵蓋到最近的 LLM,去處理十年前的財報,那個模型知道 Enron 後來發生什麼事。它甚至可能在訓練資料裡讀過那份財報,還有後面幾季的。你的特徵工程就這樣被污染了。

至於清理資料的價值有沒有下降,因為神經網路自己就能做特徵抽取?Eric 的答案是反過來:清資料的價值變更高了。因為如果你的資料沒有做到 point-in-time(嚴格對齊當時可知資訊),偷偷從未來洩漏了訊息進去,那些更強的模型會更擅長抓到那些效應,然後給你一個實際上完全無法交易的漂亮結果。

至於 AI 當工具,他的觀察跟軟體工程界差不多。在知道自己要什麼、也分辨得出好壞的資料工程師手上,它非常有用。同時:

「做出一個東西」跟「把一個東西做好」,兩者的成本差距從來沒有這麼大過。

而且最危險的是,你很容易做出一個東西,然後以為問題解決了,事實上你只是沒搞懂問題。這跟之前在兩個資深工程師談 AI 時代的技能萎縮那篇裡講的是同一件事,AI 消滅的是產出的門檻,不是判斷的門檻。而 Man Group 那邊半年燒掉八十六倍 token 的實況也指向同一個結論:真正產出 alpha 的是資料的整理與標記,不是最前沿的那顆模型。

從一個人變成二十幾個人

Alt data 團隊怎麼長出來的,這段對想在公司內部推新事情的人很有參考價值。

一開始根本沒有這個團隊。某個交易台想要一份資料,採購團隊去買,然後隨便一個當下有空的開發或交易員把資料撈進來、丟到某個地方。可能丟在共用檔案系統的某個角落,可能丟進某個資料庫,看誰做的。結果大概是「有它能做到的六成好」。

而且每個交易台都在重複造一次輪子,造出來的還都不太一樣。

Eric 的做法不是先去要一個團隊編制,而是挑一份「很基礎但用起來莫名其妙很麻煩」的資料集,認真把它想清楚、整乾淨,讓它變得好用。然後就會發生一件事:以前資料難用的時候大家找不到的效應,現在找得到了。PnL 從另一端跑出來。

做幾次之後,所有人都自己得出結論:我們應該要多做這種事。2023 年聘了第一個資料工程師,現在二十幾個,而且還在招。Ron 給了個很精準的詞:induced demand(誘發需求)。

這個團隊分成三塊:

角色產出是什麼主要工作
Data Strategy一筆買對的資料對內問交易台要解什麼問題,對外跑資料目錄公司辦的媒合會,跟供應商速配
Data Infrastructure軟體與服務建攝取、轉換、監控管線的底層工具
Data Engineering一份好用的資料集建管線、理解資料在模型什麼、想清楚 Jane Street 該拿它做什麼

順帶一提,那個資料媒合會的形式很好笑:買方賣方都到場,你先讀一堆廠商簡介,勾選想聊的,然後主辦方幫你配對,一場接一場十五分鐘的速配。事後有酒。全世界最枯燥的商品,用最像相親派對的方式在賣。

至於自建還是外購,他們的分法滿務實。dbt(把資料轉換拆成可測試、可 code review 的元件)跟 Trino(查詢引擎)直接用業界現成的。但資料倉儲跟機房自己蓋,因為做低延遲交易本來就得自己蓋機房,硬體與維運的成本攤下來明顯低於雲端。他講了一個關鍵理由:如果用雲端那套按讀取量或運算時間計價的模型,他們會被迫花大量時間去優化開銷、去把工作負載硬凹成符合對方的計價結構,而不是把時間花在真正該想的事情上。

他們在找什麼樣的人

最後 Eric 講招募條件,我覺得可以直接抄。

第一位的不是技術,是好奇心跟一套像樣的調查流程。這份工作永遠在面對陌生的產業、陌生的資料、以及一堆藏在裡面的問題,你得真心享受挖細節,而且要能清楚分辨「我知道什麼」跟「我還不知道什麼」,還要說得出你打算怎麼從 A 驗證到 B。

面試的方式很直接:給一份陌生的資料集,看你怎麼查。你會不會停下來想這一欄到底代表什麼、你做了哪些假設、你要怎麼測那些假設;還是直接寫一堆程式跑出結果,然後說「應該可以吧,我不太確定」。

他特別點出來,有些人很愛做模型、很愛蓋可擴展的系統,那些人他們也要,但不是要來做這個位置。這個位置要的是「對資料本身興奮」的人。

還有一段閒聊我覺得很反映這家公司的時間尺度:他們 2025 年開始討論,2026 年面試,2027 年暑假實習,2028 年畢業入職,2029 年才真的上手做事。四年前就開始排隊。


整集聽完,我腦子裡繞不掉的是那份 Excel。

我們現在整天在算誰的模型參數多、誰的推論成本低,但這集把一件很不性感的事講白了:模型變聰明之後,瓶頸就往下移了一層,移到「你餵進去的那批東西到底是什麼」。而搞清楚那批東西是什麼,沒有捷徑,只能靠有人願意花時間去問 Cushing 還剩多少儲油空間、去問這欄的商家標記是什麼時候被改掉的、去問這份資料你當初到底是幾點幾分收到的。

Eric 說得最狠的一句其實是那句關於痛覺的。你的團隊沒在喊痛,不代表沒問題,可能只代表沒有人告訴過他們事情本來可以有多輕鬆。

這類把產業內部運作攤開講的內容我會持續整理,訂閱 wilsonhuang.xyz 就不會漏掉。

Sources:

推薦閱讀

喜歡這篇文章嗎?

訂閱電子報,每週收到精選技術文章與產業洞察,直送你的信箱。

💌 隨時可以取消訂閱,不會收到垃圾郵件