Skip to content

建立 2025-08-12 更新 2026-09-15

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 策略回測後,已知策略的歷史勝率與盈虧比
  • 外匯、期貨、運動賭博等高風險高槓桿市場

計算方式:

  1. 估計勝率(p):用歷史數據或策略回測得到。
  2. 計算盈虧比(b):例如平均賺 10%、平均虧 5%,則 \(b = 0.10/0.05 = 2\)
  3. 套公式得到最優比例。

範例:

  • 勝率 \(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\%\)(更保守)

實務建議

  1. 資料來源:用歷史交易紀錄或回測結果估算勝率與盈虧比。
  2. 保守策略:實務中常用 Half KellyQuarter Kelly,避免過度波動。
  3. 風控:若策略不穩定,Kelly 計算出的比例可能會過大,務必設止損與資金上限。
  4. 動態調整:定期更新勝率與盈虧比,因為市場環境會變化。

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 或更小比例降低資金回撤。
  • 適用情境:重複性高的賭局(運動博弈、外匯高頻交易、統計套利)。
  • 不適用情境:一次性投資、勝率與盈虧比不穩定的策略。