← Quay lại danh sách bài viết
June 23, 2026
5 phút đọc

Tiêu chí Kelly cho các chiến lược: cách chọn kích thước vị thế và phân bổ vốn

Tiêu chí Kelly cho các chiến lược: cách chọn kích thước vị thế và phân bổ vốn
#quản trị rủi ro
#tiêu chí Kelly
#money management
#kích thước vị thế
#giao dịch thuật toán

Một chiến lược có kỳ vọng toán dương vẫn có thể làm cháy tài khoản nếu chọn sai kích thước đặt cược. Phân tích tiêu chí Kelly từ việc suy ra công thức đến danh mục chiến lược: vì sao full Kelly nguy hiểm, cách Kelly phân số mang lại 75% mức tăng trưởng với một nửa độ biến động, và công thức sizing nào thực sự nên áp dụng trong giao dịch thuật toán. Ở giữa bài viết là một máy tính tương tác cho thấy tỷ lệ Kelly dịch chuyển lợi nhuận và rủi ro như thế nào.

Câu hỏi mà mọi chiến lược buộc phải trả lời

Bạn có một chiến lược với lợi thế dương (edge): trên đường dài nó kiếm được tiền. Chỉ còn lại một chi tiết — đặt bao nhiêu phần vốn vào một giao dịch hoặc phân bổ cho một chiến lược.

Đây không phải câu hỏi thứ yếu mà là câu hỏi chính. Kỳ vọng toán dương không cứu được bạn khỏi cháy tài khoản: đặt quá nhiều — và một chuỗi thất bại sẽ đẩy tài khoản vào vùng không thể phục hồi về mặt thống kê (xem Tính bất đối xứng giữa lỗ và lãi). Đặt quá ít — và bạn để lại phần lớn tiềm năng tăng trưởng trên bàn.

Tiêu chí Kelly đưa ra câu trả lời chính xác: đó là tỷ lệ vốn tối đa hóa tốc độ tăng trưởng dài hạn — tăng trưởng hình học, chứ không phải số học. Chính tăng trưởng hình học quyết định tài khoản của bạn sẽ ở đâu sau một nghìn giao dịch, bởi vì các mức lợi nhuận nhân với nhau chứ không cộng lại (xem Bản chất nhân của lợi nhuận).

Công thức đến từ đâu: tối đa hóa logarit của vốn

Ý tưởng cốt lõi của Kelly (1956) và sau đó là Thorp: cái cần tối ưu không phải lợi nhuận kỳ vọng của một giao dịch, mà là logarit kỳ vọng của vốn cuối cùng. Logarit xuất hiện không phải ngẫu nhiên — đó là hàm duy nhất mà khi tối đa hóa nó, vốn tăng trưởng với tốc độ hình học cực đại.

Trường hợp nhị phân: đặt cược với hai kết cục

Giả sử với xác suất pp khoản cược mang lại khoản chi trả ròng bb trên một đơn vị (hệ số), còn với xác suất q=1pq = 1 - p ta mất chính khoản cược đó. Ta đặt một tỷ lệ ff của vốn. Sau một giao dịch, vốn được nhân với (1+fb)(1 + fb) khi thắng và với (1f)(1 - f) khi thua.

Logarit kỳ vọng của tăng trưởng:

g(f)=pln(1+fb)+qln(1f)g(f) = p \ln(1 + fb) + q \ln(1 - f)

Lấy đạo hàm theo ff và cho bằng không:

g(f)=pb1+fbq1f=0g'(f) = \frac{pb}{1 + fb} - \frac{q}{1 - f} = 0

Lời giải chính là công thức Kelly:

f=pbqb=pqbf^{*} = \frac{pb - q}{b} = p - \frac{q}{b}

Diễn đạt bằng lời: tỷ lệ tối ưu bằng lợi thế của bạn chia cho hệ số. Không có lợi thế (pb=qpb = q) — không đặt cược.

Ví dụ

Chiến lược thắng trong 55% số giao dịch với tỷ lệ chi trả 1:1 (b=1b = 1):

f=pqb=0.550.451=0.10f^{*} = p - \frac{q}{b} = 0.55 - \frac{0.45}{1} = 0.10

Full Kelly bảo bạn mạo hiểm 10% vốn trong một giao dịch. Hãy nhớ con số này — bên dưới ta sẽ thấy vì sao gần như không ai nên đặt đúng bằng đó.

Trường hợp liên tục: lợi nhuận thay vì khoản cược

Trong giao dịch, một giao dịch hiếm khi trông như một khoản cược với hai kết cục — ở đây có một phân phối lợi nhuận. Với lợi nhuận có kỳ vọng μ\mu và phương sai σ2\sigma^2 mỗi kỳ, logarit tăng trưởng kỳ vọng tại đòn bẩy (tỷ lệ) ff xấp xỉ bằng:

g(f)fμ12f2σ2g(f) \approx f\mu - \tfrac{1}{2} f^{2}\sigma^{2}

Cực đại đạt được tại:

f=μσ2\boxed{\,f^{*} = \dfrac{\mu}{\sigma^{2}}\,}

Đây là dạng liên tục nổi tiếng của Kelly (còn gọi là tỷ lệ Merton). Còn tốc độ tăng trưởng tại điểm tối ưu liên hệ với hệ số Sharpe SR=μ/σ\mathrm{SR} = \mu / \sigma một cách cực kỳ đẹp đẽ:

g(f)=μ22σ2=SR22g(f^{*}) = \frac{\mu^{2}}{2\sigma^{2}} = \frac{\mathrm{SR}^{2}}{2}

Một kết luận đáng treo lên tường: tốc độ tăng trưởng hình học cực đại của một danh mục bằng một nửa bình phương Sharpe của nó. Tăng gấp đôi Sharpe — tăng gấp bốn tốc độ tăng trưởng của vốn.

Vì sao full Kelly là quá đà

Công thức cho ra mức tối ưu toán học về tăng trưởng. Nhưng cái tối ưu này có một cái giá mà công thức im lặng về nó: độ biến động khủng khiếp của đường đi và những đợt sụt giảm khiến mọi tài khoản thực và mọi con người thực đều gục ngã.

Hình học của việc lệch khỏi điểm tối ưu

Thay tỷ lệ cfc \cdot f^{*} (trong đó cc là hệ số nhân Kelly: c=1c = 1 là full Kelly, c=0.5c = 0.5 là half Kelly) vào công thức tăng trưởng. So với mức cực đại, ta được:

g(c)g(f)=2cc2\frac{g(c)}{g(f^{*})} = 2c - c^{2}

Lợi nhuận theo tỷ lệ Kelly: parabol tăng trưởng với đỉnh tại điểm tối ưu và vực sâu phía sau nó

Parabol này kể toàn bộ câu chuyện về quản trị rủi ro chỉ trong một dòng:

Hệ số nhân cc Tỷ lệ tăng trưởng 2cc22c - c^2 Độ biến động Bình luận
0.25 (quarter) 43.8% 25% gần một nửa mức tăng trưởng với một phần tư rủi ro
0.50 (half) 75.0% 50% điểm vàng của giới hành nghề
1.00 (full) 100.0% 100% tăng trưởng cực đại, biến động điên cuồng
1.50 75.0% 150% cùng mức tăng trưởng như half, nhưng rủi ro gấp ba
2.00 (double) 0.0% 200% không có tăng trưởng, rủi ro cực đại
> 2.00 âm cháy tài khoản dù có edge dương

Ba kết luận:

  1. half Kelly lấy về 75% mức tăng trưởng với một nửa độ biến động. Xét theo tỷ lệ rủi ro/lợi nhuận, điều này tốt hơn hẳn full Kelly.
  2. Parabol đối xứng quanh c=1c = 1. Đặt cược ở mức 1.5×1.5\times Kelly cho cùng mức tăng trưởng như 0.5×0.5\times, nhưng biến động cao gấp ba. Quá tay bị trừng phạt nặng hơn so với non tay.
  3. Tại 2×2\times Kelly, tăng trưởng về không, và xa hơn nữa thì trở nên âm. Sizing quá hung hăng giết chết vốn ngay cả với một chiến lược thắng.

Sụt giảm của full Kelly: công thức làm ta tỉnh ngộ

Rủi ro sụt giảm tăng theo kích thước đặt cược: những đường cong yên ả so với những hố sâu

Với mô hình liên tục, xác suất để vốn có lúc nào đó rơi xuống tới tỷ lệ α\alpha so với ban đầu bằng:

P(drawdown to α)=α2ccP(\text{drawdown to } \alpha) = \alpha^{\frac{2 - c}{c}}

Thay các mức Kelly vào — và ta được một bảng mà sau khi xem xong, full Kelly thôi trông hấp dẫn:

Hệ số nhân cc P(có lúc nào đó −50%) P(có lúc nào đó −75%)
1.00 (full) 50% 75%
0.50 (half) 12.5% 1.6%
0.25 (quarter) 0.78% 0.006%
2.00 (double) 100% 100%

Với full Kelly, xác suất có lúc nào đó nhìn thấy mức sụt giảm 50% bằng 50%. Đây không phải kịch bản đuôi — đây là một cú tung đồng xu. half Kelly hạ nó xuống còn 12.5%, quarter Kelly — xuống còn một phần nhỏ của phần trăm. Và đó là trong mô hình Gauss được lý tưởng hóa; những cái đuôi béo thực tế làm cho mức sụt giảm thực còn sâu hơn nữa.

Máy tính: thay đổi tỷ lệ Kelly — xem lợi nhuận và rủi ro

Di chuyển các thanh trượt. Hai thanh trên xác lập lợi thế của chiến lược (xác suất thắng và hệ số chi trả), thanh dưới — hệ số nhân Kelly cc. Hãy xem tốc độ tăng trưởng của vốn và xác suất sụt giảm sâu thay đổi đồng thời ra sao. Hãy chú ý đến mạch chính của bài viết: khi dịch từ half sang full Kelly, tăng trưởng tăng lên một chút, còn rủi ro sụt giảm — tăng theo bội số.

Máy tính Kelly
Xác suất thắng của giao dịch55%
Hệ số chi trả (thắng : thua)1.0
Tỷ lệ Kelly (hệ số nhân c)0.50x
Di chuyển các thanh trượt.
10.0%
Full Kelly f*
5.0%
Khoản cược của bạn c·f*
75%
Tăng trưởng so với cực đại
x43
Vốn sau 1000 giao dịch
0.50x
Độ biến động
13%
Rủi ro sụt giảm ≥50%
2%
Rủi ro sụt giảm ≥75%
+0.375%
Log-tăng trưởng mỗi giao dịch
c = 0tối ưu (full Kelly)c = 2: tăng trưởng về không

Hãy thử nghịch thanh trượt tỷ lệ Kelly quanh các giá trị 0.5 và 1.0: tăng trưởng so với cực đại tăng từ 75% lên 100%, nhưng rủi ro sụt giảm 50% nhảy từ 13% lên 50%. Đó chính là lý do vì sao các chuyên gia sống ở nửa trái của parabol.

Kelly phân số như một chuẩn mực của ngành

Các nhà quản lý nghiêm túc gần như không bao giờ đặt full Kelly. Khoảng phổ biến — từ 1/41/4 đến 1/21/2 Kelly. Ngoài các đợt sụt giảm, còn có bốn lý do nền tảng để cắt giảm tỷ lệ.

1. Sai số trong ước lượng tham số. Công thức giả định rằng bạn biết các giá trị pp, bb, μ\mu, σ\sigma thật. Trên thực tế bạn ước lượng chúng từ một mẫu hữu hạn. Mà hàm tăng trưởng thì bất đối xứng: đánh giá quá cao lợi thế đẩy bạn vượt qua điểm tối ưu, nơi tăng trưởng giảm nhanh hơn so với mức tăng khi ước lượng thấp đi cùng một lượng. Nếu Kelly thật bằng ff^{*}, mà bạn ước lượng nó với sai số, thì an toàn hơn là đặt ít hơn một cách hệ thống. Quy tắc thô: khi ước lượng không chắc chắn, hãy chia đôi tỷ lệ.

2. Tính không dừng. Lợi thế của chiến lược không phải là một hằng số — các chế độ thị trường thay đổi, edge phân rã, đối thủ sao chép ý tưởng. Kelly tính trên dữ liệu hôm qua, ngày mai có thể trở nên bị thổi phồng. Hệ số nhân phân số — chính là tấm đệm cho sự phân rã của edge.

3. Đuôi béo. Công thức Gauss f=μ/σ2f^{*} = \mu/\sigma^2 đánh giá thấp rủi ro của những cú dịch chuyển cực đoan. Trên các phân phối thực với đuôi nặng, nó đặt cược quá mức một cách hệ thống. Kelly phân số bù đắp một phần cho điều đó.

4. Cái giá của sụt giảm trong kinh doanh. Với một nhà tạo lập thị trường, sụt giảm không chỉ là tâm lý. Đó là margin call, việc buộc phải cắt giảm vị thế vào thời điểm tệ nhất, dòng vốn nhà đầu tư chảy ra, chi phí huy động vốn tăng (xem Funding rate giết chết đòn bẩy như thế nào). Một đường cong vốn mượt mà có giá trị tự thân mà công thức Kelly không có.

Kelly cho danh mục chiến lược

Kelly dạng ma trận cho danh mục: ma trận hiệp phương sai phân bổ vốn theo các chiến lược

Cho đến giờ ta nói về một chiến lược. Nhưng câu hỏi thực sự vang lên như là việc chọn Kelly cho các chiến lược ở số nhiều: bạn có vài chiến lược, và cần phân bổ vốn giữa chúng.

Cách tiếp cận ngây thơ — tính Kelly cho từng chiến lược riêng rẽ rồi cộng lại — là sai một cách thảm họa, bởi vì nó bỏ qua các tương quan. Hai chiến lược tương quan mạnh — về bản chất là một khoản cược được nhân đôi, và tổng rủi ro phải được tính như của một chiến lược.

Dạng ma trận

Với vector các lợi nhuận kỳ vọng μ\boldsymbol{\mu} và ma trận hiệp phương sai Σ\boldsymbol{\Sigma}, vector tối ưu của các tỷ lệ cho toàn bộ các chiến lược cùng một lúc:

f=Σ1μ\boxed{\,\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu}\,}

Tốc độ tăng trưởng tại điểm tối ưu khái quát hóa thành bình phương Sharpe của danh mục:

g(f)=12μΣ1μ=12SRportfolio2g(\mathbf{f}^{*}) = \tfrac{1}{2}\, \boldsymbol{\mu}^{\top} \boldsymbol{\Sigma}^{-1} \boldsymbol{\mu} = \tfrac{1}{2}\,\mathrm{SR}_{\text{portfolio}}^{2}

Hãy lưu ý: Σ1μ\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu} — đó là hướng của danh mục có Sharpe cực đại (danh mục tiếp tuyến). Kelly và tối ưu hóa mean-variance là hai mặt của cùng một đồng xu: Kelly chỉ đơn giản cố định mức đòn bẩy tại mức tối đa hóa tăng trưởng hình học.

Nghịch đảo hiệp phương sai làm gì

  • Các chiến lược tương quan chia sẻ ngân sách rủi ro. Nếu hai chiến lược gần như giống hệt nhau, ma trận sẽ cắt tổng tỷ lệ của chúng xuống mức của một chiến lược — tự động, không cần các giải pháp chắp vá thủ công.
  • Các chiến lược không tương quan nhận được phần thưởng cho sự đa dạng hóa. Có thể giữ chúng gần với kích thước cá nhân, còn tổng Sharpe của danh mục sẽ cao hơn từng chiến lược riêng rẽ.
  • Các chiến lược tương quan âm có thể nhận được tỷ lệ tăng lên — chúng bảo hiểm cho nhau, và ma trận khuyến khích điều đó.

Cảnh báo về việc ước lượng Σ\boldsymbol{\Sigma}

Nghịch đảo ma trận hiệp phương sai không ổn định về mặt số học: trên các ước lượng nhiễu, Σ1\boldsymbol{\Sigma}^{-1} thổi phồng những sai số nhỏ thành những trọng số điên rồ. Bắt buộc phải có co rút (shrinkage) hiệp phương sai về đường chéo, giới hạn đòn bẩy và cũng chính hệ số nhân phân số đó. Không có những điều này, Kelly dạng ma trận cho ra những tỷ lệ đẹp đẽ trên backtest và chết người trên môi trường thật.

Hiệu chỉnh cho giao dịch thuật toán và tạo lập thị trường

Công thức thuần túy sống trong một thế giới vô trùng. Trong một engine thực, cần các hiệu chỉnh.

  • Phí và trượt giá làm giảm lợi thế hiệu dụng. Hãy tính Kelly theo các lợi nhuận sau mọi chi phí, nếu không bạn sẽ đặt cược quá mức một cách hệ thống.
  • Tính rời rạc của khoản cược và lot không cho phép đặt đúng bằng ff^{*} — hãy làm tròn xuống, không làm tròn lên.
  • Edge không dừng đòi hỏi tính lại theo thời gian: ước lượng μ\muσ\sigma trên cửa sổ trượt với chu kỳ bán rã, chứ không phải trên toàn bộ lịch sử.
  • Giới hạn theo sụt giảm. Trên nền Kelly hãy đặt một trần cứng: sụt giảm tối đa, đòn bẩy tối đa, tỷ lệ tối đa cho một chiến lược. Tồn tại các phiên bản Kelly có ràng buộc sụt giảm chính quy (Busseti, Boyd), nhưng trên thực tế một cái cap đơn giản là đủ.
  • Sự trung thực trong đánh giá edge. Sai lầm chính — nuôi Kelly bằng lợi thế đo trên in-sample. Chỉ lấy ước lượng out-of-sample, trên walk-forward, sau phí. Edge bị thổi phồng ở đầu vào công thức — chính là khoản cược bị thổi phồng ở đầu ra.

Công thức: cách áp dụng

  1. Ước lượng lợi thế một cách trung thực. Out-of-sample, trên walk-forward, sau phí và trượt giá. Đây là bước quan trọng nhất — rác ở đầu vào biến thành cháy tài khoản ở đầu ra.
  2. Tính full Kelly. Nhị phân f=pq/bf^{*} = p - q/b cho các kết cục rời rạc hoặc liên tục f=μ/σ2f^{*} = \mu/\sigma^2 cho lợi nhuận.
  3. Lấy một phân số. Mặc định là 1/41/41/21/2 của full Kelly. Edge càng kém ổn định — hệ số nhân càng nhỏ.
  4. Với danh mục hãy tính theo ma trận. f=Σ1μ\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}\boldsymbol{\mu} với co rút hiệp phương sai, rồi cũng chính hệ số nhân phân số đó.
  5. Đặt các cap cứng. Tối đa cho một vị thế, tối đa đòn bẩy, giới hạn sụt giảm — trên hết mọi thứ.
  6. Tính lại. Theo mức độ cập nhật của các ước lượng, hãy cắt giảm tỷ lệ khi độ bất định tăng và edge phân rã.

Code

import numpy as np

def kelly_binary(p, b):
    """p — xác suất thắng, b — hệ số chi trả ròng trên 1 đơn vị cược."""
    q = 1 - p
    return (b * p - q) / b          # = p - q/b

def kelly_continuous(mu, sigma):
    """mu, sigma — kỳ vọng và độ lệch chuẩn của lợi nhuận mỗi kỳ (cùng đơn vị)."""
    return mu / sigma ** 2

def kelly_portfolio(mu, cov, shrink=0.0):
    """Kelly dạng ma trận cho danh mục chiến lược.
    mu  — vector các lợi nhuận kỳ vọng;
    cov — ma trận hiệp phương sai của lợi nhuận;
    shrink — hệ số co rút về đường chéo (0..1) để nghịch đảo ổn định."""
    cov = np.asarray(cov, float)
    if shrink:
        cov = (1 - shrink) * cov + shrink * np.diag(np.diag(cov))
    return np.linalg.solve(cov, np.asarray(mu, float))

def sized(f_star, kelly_fraction=0.25, cap=0.2):
    """Kelly phân số với cap cứng trên tỷ lệ."""
    return float(np.clip(f_star * kelly_fraction, -cap, cap))

f = kelly_binary(p=0.55, b=1.0)    # 0.10 — full Kelly
print(sized(f))                    # 0.025 — quarter Kelly, kích thước an toàn

Những sai lầm thường gặp

  • Kelly trên in-sample edge. Sai lầm tốn kém nhất. Lợi thế bị thổi phồng → đặt cược quá mức → tăng trưởng âm.
  • Bỏ qua các tương quan giữa các chiến lược. Tổng các Kelly cá nhân không phải là Kelly của danh mục.
  • Full Kelly trên môi trường thật. Cực đại toán học về tăng trưởng, nhưng 50% cơ hội sụt giảm tới một nửa tài khoản. Gần như không hợp với ai.
  • Kelly với edge không ổn định. Nếu lợi thế phân rã, công thức thổi phồng khoản cược một cách hệ thống.
  • Lẫn lộn mục tiêu. Kelly tối đa hóa tăng trưởng hình học của vốn — không phải Sharpe, không phải xác suất ở lại trong vùng dương, cũng không phải sự thoải mái. Nếu bạn coi trọng sự mượt mà của đường cong hơn, hãy đặt Kelly phân số một cách có ý thức.

Kết luận

Tiêu chí Kelly trả lời câu hỏi chính của mọi chiến lược — đặt bao nhiêu — bằng một công thức tối đa hóa tăng trưởng hình học dài hạn: f=pq/bf^{*} = p - q/b cho các khoản cược và f=μ/σ2f^{*} = \mu/\sigma^2 cho lợi nhuận, còn với danh mục — f=Σ1μ\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}.

Nhưng full Kelly là mức tối ưu toán học về tăng trưởng, chứ không phải về sự sống còn. Kelly phân số (1/41/41/21/2) lấy về phần lớn mức tăng trưởng với độ biến động và sụt giảm nhỏ hơn theo bội số. Vì vậy câu trả lời thực tiễn cho câu hỏi về việc chọn Kelly cho các chiến lược vang lên như thế này: hãy tính full Kelly một cách trung thực — và đặt phần phân số của nó, trên nền các giới hạn rủi ro cứng.


Tài liệu liên quan:

Tuyên bố miễn trừ trách nhiệm: Thông tin được cung cấp trong bài viết này chỉ nhằm mục đích giáo dục và thông tin, không cấu thành lời khuyên về tài chính, đầu tư hoặc giao dịch. Giao dịch tiền mã hóa tiềm ẩn rủi ro thua lỗ đáng kể.

Tác Giả

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Đi Trước Thị Trường

Đăng ký nhận bản tin của chúng tôi để có những thông tin chuyên sâu độc quyền về AI trading, phân tích thị trường và các cập nhật nền tảng.

Chúng tôi tôn trọng quyền riêng tư của bạn. Hủy đăng ký bất kỳ lúc nào.