量化交易只需要最優解。這篇把 Polymarket 上「該不該做、該做多大」化簡成三條式子,並說明每條式子在什麼假設下成立、假設破掉時往哪個方向錯。


目標函數:為什麼是對數效用

先講清楚我們在最佳化什麼,因為換一個目標函數答案就完全不同。

  • 最大化期望值:答案是「有 edge 就全押」,長期必然破產(因為單筆有機率歸零)。在賠付會歸零的市場上,這個目標函數是錯的。
  • 最大化期望對數財富(Kelly):最大化長期幾何成長率,在無限次重複下幾乎必然優於任何本質不同的策略。這是預測市場的正確預設。
  • 最大化 Sharpe:適合有外部風險預算約束時,但它對「歸零」這件事不敏感,在二元合約上會低估尾部。

本專欄採用 Kelly,但實務上用分數 Kelly,理由在 估計誤差 那篇——Kelly 假設你知道 q,而你不知道。


單一市場:三條式子

設你估計的結算為 YES 的機率是 q,市價(有效買價,已含費)是 c

一、做不做

做多 YES  ⟺  q > c_ask^YES
做多 NO   ⟺  1 − q > c_ask^NO
兩者皆不  ⟺  c_ask^NO ≤ 1 − q  且  q ≤ c_ask^YES   (即 q 落在買賣價差內)

含費的精確門檻(推導見 手續費那篇):

|q − p| > φ · p(1 − p)

二、做多大(Kelly)

x* = (q − c) / (1 − c)        ← 投入資金佔總資金的比例
n* = x* / c = (q − c) / [c(1 − c)]   ← 每單位資金買幾股

近似形式(φ → 0):

n* ≈ (q − p) / [p(1 − p)]  −  φ
     └────── edge/變異數 ──────┘

這是整個專欄最常用的一條式子。

三、預期成長率

g = q·ln(1 + x*(1−c)/c) + (1−q)·ln(1 − x*)

在小 edge 極限下 g ≈ (q−c)² / [2c(1−c)],也就是 g ≈ edge² / (2·變異數) = ½ × (單筆 Sharpe)²

這個式子的用途是排序:當你同時有 10 個機會而資金有限,該優先做哪些?答案不是「edge 最大的」,而是 edge²/變異數 最大的——也就是中價區的小 edge,可能不如極端價區的更小 edge

具體對照(政治類 φ=0.04):

機會pedge (q−p)淨 edge(扣費)變異數g 貢獻
A0.503.0¢2.00¢0.2500.80 bp
B0.101.5¢1.14¢0.0900.72 bp
C0.051.0¢0.81¢0.04750.69 bp
D0.901.0¢0.64¢0.0900.23 bp

edge 相差三倍(A vs C),成長率貢獻只差 16%。 這是很多人直覺會錯的地方——在極端價格區,一個看起來很小的 edge 其實很值錢,因為變異數也小。

(但注意 C 的部位是 n* = 0.0081/0.0475 − 0.04 = 0.13 股/單位資金,對應資金比例只有 0.13 × 0.05 = 0.65%成長率貢獻相近,但資本佔用差 20 倍——所以在資本充裕時應該優先 A,在資本稀缺時 C 的資本效率高得多。這個區分見下面「資本效率 vs 成長率」。)


資本效率 vs 成長率:兩個不同的最優化

Kelly 假設資本是唯一約束。Polymarket 上還有兩個約束讓問題變得不同:

約束一:資金被鎖到結算。 一個 6 個月後才到期的市場,即使 Kelly 建議投 5%,那 5% 在半年內不能做別的事。

約束二:速率限制與注意力。微結構——Standard 層每秒 40 筆訂單,你不可能同時經營 500 個市場。

所以實際的目標函數應該是單位資本×時間的成長率

最大化   Σ_i  g_i   subject to   Σ_i x_i·T_i ≤ 資本×時間預算

這是一個背包問題,最優解按 g_i / (x_i·T_i)(每單位資本×時間的成長率)排序,而不是按 g_i

代入 g ≈ edge²/(2σ²)x ≈ n·p = edge·p/σ²

g / (x·T)  ≈  edge / (2·p·T)

乾淨得出奇:資本效率的排序指標就是 edge / (p × 到期時間)

三個讀法:

  • 短天期優先。 一個 2 天到期、edge 1¢ 的機會,資本效率等於一個 60 天到期、edge 30¢ 的機會。這是為什麼 2 小時挑戰窗搶跑 的資本效率高到離譜(T 是 2 小時)。
  • 低價 YES 優先。 因為 p 在分母。買 5¢ 的合約,同樣的 edge 有 10 倍的資本效率。
  • 這個指標與 Kelly 的排序不同,兩者在資本充裕與資本稀缺的情境下各自正確。實務上:用 Kelly 決定「每個機會做多大」,用 edge/(p·T) 決定「先做哪些」。

多市場:相關性才是真正的問題

單看每個市場都是獨立的 Kelly,加起來會嚴重超額下注,因為預測市場的事件高度相關

「聯準會 3 月降息」「聯準會 3 月降 50bp」「2026 年降息 3 次以上」「10 年期殖利率年底低於 3.5%」——這四個市場的相關性接近 1,Kelly 加總會讓你在同一個總體判斷上押 4 倍。

正確做法:先建世界狀態,再配置

不要對市場做 Kelly,要對「世界狀態」做 Kelly。

  1. 把相關的市場歸為一個事件叢集
  2. 列舉叢集內的互斥且窮盡的世界狀態 ω₁…ω_m,估計 P(ω_j)
  3. 對每個狀態算出投資組合的賠付向量。
  4. 解一個多結果的 Kelly:
最大化  Σ_j P(ω_j) · ln( 1 + Σ_i x_i · payoff_i(ω_j) )

這是凹函數的最大化,用任何凸優化求解器都能解。這也恰好是 邏輯蘊含圖 那篇建立的結構的直接用途——同一套「世界狀態列舉」既用來找套利,也用來做部位配置。

近似做法:相關性矩陣的二次近似

若不想列舉狀態,小 edge 極限下 Kelly 退化成 Markowitz:

x* = Σ⁻¹ μ

其中 μ_i 是各市場的淨 edge,Σ 是損益的共變異數矩陣。Σ 可以從價格的歷史共動估,但要小心:價格共動低估真實的結算相關性,因為兩個市場可能長期價格不同步、結算時卻同時歸零。

保守的處理:把估出來的相關性向 1 收縮。在 資金管理 那篇會給一個更簡單的做法——直接對每個「總體主題」設一個總曝險上限。


分數 Kelly:為什麼一定要打折

Kelly 的推導假設 q 已知。實際上 q 是估計值,有誤差 τ

關鍵事實:Kelly 的成長率曲線在最優點附近是平的,但在過度下注那一側掉得很快。

g(f) / g(f*) = 2(f/f*) − (f/f*)²
下注比例 f / f*成長率保留
0.5(半 Kelly)75%
0.7594%
1.0100%
1.575%
2.00%
2.5−25%(負成長)

半 Kelly 保留 75% 的成長率、把變異數砍到四分之一;兩倍 Kelly 的長期成長率是零。

因為誤差是雙向的,而懲罰是不對稱的,最優的做法是系統性地低估自己的 edge。實務規則:

  • 有實盤校準紀錄:用 f = 0.5 × f*
  • 只有回測:用 f = 0.25 × f*
  • 策略上線前 100 筆:用固定小額,不用 Kelly——因為此時 τ 完全未知。

更嚴謹的處理(把 q 的後驗不確定性直接放進目標函數)在 下一篇


常見的三個錯誤

錯誤一:用「賠率」而不是「機率」思考部位。 「5¢ 買進,20 倍賠率」聽起來很誘人,但 Kelly 只看 (q−p)/[p(1−p)]。20 倍賠率若對應的真實機率是 4%,這是負期望值。

錯誤二:把 q 當成「我覺得很可能」。 q 必須是一個校準過的數字。如果你說「80% 會發生」的事情實際只發生 60%,你的所有 Kelly 計算都是錯的,而且錯的方向永遠是過度下注

錯誤三:忽略部位是路徑相依的。 Kelly 給的是「此刻該持有多少」,不是「該買多少」。市價變動後最優部位也變了,理論上要持續再平衡。但每次再平衡都付 taker 費——所以正確做法是設一個無交易區間(no-trade band):只有當實際部位偏離最優部位超過某個閾值才調整。閾值的量級應該由手續費決定,粗略地說,band 寬度 ≈ 讓調整的預期收益等於 φ·p(1−p) 的偏離量


這篇的重點

問題式子
做不做|q − p| > φ·p(1−p)
做多大x* = (q−c)/(1−c)n* ≈ edge/σ² − φ
值多少g ≈ edge²/(2σ²)
先做哪個資本效率 ≈ edge / (p·T)
多市場對世界狀態做 Kelly,不對市場做 Kelly
打幾折半 Kelly 保留 75% 成長、四分之一變異數;兩倍 Kelly 成長率歸零
何時再平衡設無交易區間,寬度由 φ·p(1−p) 決定

下一步:你的 q 值得多少信任——上面所有式子的輸入品質問題。