Kelly 公式
Kelly 公式(Kelly Criterion)是一種用來決定最優下注比例的數學方法,目的是在長期內最大化資金的幾何成長率,同時避免破產風險。
一、公式原理
對於勝率已知、賠率固定的下注情境,Kelly 公式為:
\[
f^* = \frac{bp - q}{b}
\]
- \(f^*\) = 建議投入的資金比例
- \(b\) = 賠率(如賠率 3 倍,則 \(b = 2\),因為淨賺是下注金額的 2 倍)
- \(p\) = 獲勝機率
- \(q\) = 失敗機率(= 1 − \(p\))
如果計算結果 \(f^* < 0\),代表這場下注在期望值上不值得參與。
二、直觀理解
- 如果勝率高、賠率也高,公式會給出較大的下注比例。
- 如果勝率接近 50% 或賠率偏低,下注比例會變小,甚至建議不下注。
- 它不是為了每次都贏,而是為了讓資金長期穩定成長,避免因過大下注比例而破產。
三、實務應用
1. 投資與交易
在投資中,Kelly 公式常用來決定每筆交易的資金配置比例,特別是在:
- 股票或 ETF 策略回測後,已知策略的歷史勝率與盈虧比
- 外匯、期貨、運動賭博等高風險高槓桿市場
計算方式:
- 估計勝率(p):用歷史數據或策略回測得到。
- 計算盈虧比(b):例如平均賺 10%、平均虧 5%,則 \(b = 0.10/0.05 = 2\)。
- 套公式得到最優比例。
範例:
- 勝率 \(p = 0.6\)
- 盈虧比 \(b = 1\)(賺虧金額差不多)
\[
f^* = \frac{1 \times 0.6 - 0.4}{1} = 0.2
\]
建議投入資金的 20%。
2. 實務上的修正(Fractional Kelly)
- 全 Kelly:風險較高,資金波動大
- 半 Kelly:下注一半比例(例如公式算出 20%,實際用 10%)
- 四分之一 Kelly:風險控制更好,適合保守投資者
3. 注意事項
- 需要準確的勝率與盈虧比估計,否則結果會失真。
- Kelly 假設每筆交易是獨立的,現實中可能存在相關性。
- 適合長期、多次重複的交易,不適合一次性全押的情況。
實務應用
這是 Kelly 公式的應用範例:
公式原理 Kelly Criterion 用來計算「每次下注或投資的最優比例」,公式是:
\[
f^* = \frac{bp - q}{b}
\]
- \(p\):勝率(0~1)
- \(q = 1 - p\):敗率
- \(b\):盈虧比(贏的報酬 / 輸的損失,例如賠 1 贏 2,b=2)
範例計算 假設:
- 勝率 \(p = 60\% = 0.6\)
- 盈虧比 \(b = 1:1\)(贏 1 元賠 1 元 → b=1)
計算結果:
- Full Kelly:\(f^* \approx 20\%\)(建議投入資金的 20%)
- Half Kelly:\(10\%\)(降低波動與回撤)
- Quarter Kelly:\(5\%\)(更保守)
實務建議
- 資料來源:用歷史交易紀錄或回測結果估算勝率與盈虧比。
- 保守策略:實務中常用 Half Kelly 或 Quarter Kelly,避免過度波動。
- 風控:若策略不穩定,Kelly 計算出的比例可能會過大,務必設止損與資金上限。
- 動態調整:定期更新勝率與盈虧比,因為市場環境會變化。
def kelly_fraction(p: float, b: float):
"""
計算 Kelly Criterion 推薦的下注比例。
p: 勝率 (0~1)
b: 盈虧比 (贏的報酬 / 輸的損失)
"""
q = 1 - p
f = (b * p - q) / b
return f
# 範例計算
p_example = 0.6 # 勝率 60%
b_example = 1.0 # 盈虧比 1:1
full_kelly = kelly_fraction(p_example, b_example)
half_kelly = full_kelly / 2
quarter_kelly = full_kelly / 4
full_kelly, half_kelly, quarter_kelly
公式推導
Kelly 公式的推導核心是 最大化長期資本成長率(Maximize the expected logarithm of wealth)。它來自一個數學最佳化問題:我們希望在無限次重複下注的情況下,讓資產幾何平均成長率最大。
1. 問題設定
假設:
- 每次下注資金比例為 \(f\)
- 勝率為 \(p\),敗率為 \(q = 1 - p\)
- 盈虧比為 \(b\)(贏則賺 \(b\) 倍的投注金,輸則損失等額投注金)
一次下注後資金變化:
- 贏的話:資金變成 \(W \cdot (1 + b f)\)
- 輸的話:資金變成 \(W \cdot (1 - f)\)
2. 長期成長率公式
因為目標是最大化長期報酬,所以用 幾何平均成長率(Geometric Mean):
\[
G(f) = p \cdot \ln(1 + b f) + q \cdot \ln(1 - f)
\]
這是每次下注後,資金對數變化的期望值。
3. 對 \(f\) 求最大值
為了找到最優下注比例 \(f^*\),對 \(G(f)\) 對 \(f\) 微分,並令其等於 0:
\[
\frac{dG}{df} = \frac{p b}{1 + b f} - \frac{q}{1 - f} = 0
\]
4. 解方程
把式子化簡:
\[
\frac{p b}{1 + b f} = \frac{q}{1 - f}
\]
交叉相乘:
\[
p b (1 - f) = q (1 + b f)
\]
展開:
\[
p b - p b f = q + q b f
\]
把 \(f\) 項移到一邊:
\[
p b - q = (p b + q b) f
\]
因為 \(q = 1 - p\),所以 \(p b + q b = b\):
\[
p b - q = b f
\]
解得:
\[
f^* = \frac{p b - q}{b}
\]
5. 最終公式
\[
\boxed{f^* = \frac{b p - (1 - p)}{b}}
\]
這就是 Kelly 公式。
6. 實務應用重點
- 假設條件很嚴格:勝率 \(p\) 與盈虧比 \(b\) 必須已知,且未來與過去統計一致。
- Full Kelly 波動大:實務常用 Half Kelly 或更小比例降低資金回撤。
- 適用情境:重複性高的賭局(運動博弈、外匯高頻交易、統計套利)。
- 不適用情境:一次性投資、勝率與盈虧比不穩定的策略。