量化交易只需要最優解。這篇把 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):
| 機會 | p | edge (q−p) | 淨 edge(扣費) | 變異數 | g 貢獻 |
|---|---|---|---|---|---|
| A | 0.50 | 3.0¢ | 2.00¢ | 0.250 | 0.80 bp |
| B | 0.10 | 1.5¢ | 1.14¢ | 0.090 | 0.72 bp |
| C | 0.05 | 1.0¢ | 0.81¢ | 0.0475 | 0.69 bp |
| D | 0.90 | 1.0¢ | 0.64¢ | 0.090 | 0.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。
- 把相關的市場歸為一個事件叢集。
- 列舉叢集內的互斥且窮盡的世界狀態
ω₁…ω_m,估計P(ω_j)。 - 對每個狀態算出投資組合的賠付向量。
- 解一個多結果的 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.75 | 94% |
| 1.0 | 100% |
| 1.5 | 75% |
| 2.0 | 0% |
| 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 值得多少信任——上面所有式子的輸入品質問題。