← Kembali ke artikel
June 23, 2026
Bacaan 5 minit

Kriteria Kelly untuk strategi: cara memilih saiz posisi dan mengagihkan modal

Kriteria Kelly untuk strategi: cara memilih saiz posisi dan mengagihkan modal
#pengurusan risiko
#kriteria Kelly
#money management
#saiz posisi
#perdagangan algo

Strategi dengan jangkaan matematik positif boleh meranapkan deposit jika anda tersilap saiz pertaruhan. Kita kupas kriteria Kelly dari penurunan formula hingga ke portfolio strategi: mengapa full Kelly berbahaya, bagaimana Kelly pecahan memberi 75% pertumbuhan pada separuh volatiliti, dan resipi penentuan saiz mana yang benar-benar boleh dipakai dalam perdagangan algo. Di tengah artikel ada kalkulator interaktif yang menunjukkan bagaimana pecahan Kelly menggerakkan pulangan dan risiko.

Soalan yang wajib dijawab oleh mana-mana strategi

Anda mempunyai strategi dengan kelebihan positif (edge): pada jarak panjang ia menghasilkan keuntungan. Tinggal satu butiran sahaja — berapa peratus modal hendak dipertaruhkan dalam satu dagangan atau diperuntukkan kepada satu strategi.

Ini bukan soalan sampingan, tetapi soalan utama. Jangkaan matematik positif tidak menyelamatkan anda daripada kemusnahan: pertaruh terlalu banyak — dan rentetan kekalahan akan membawa deposit ke zon yang tiada pemulihan statistik daripadanya (lihat Asimetri kerugian dan keuntungan). Pertaruh terlalu sedikit — dan anda akan meninggalkan sebahagian besar potensi pertumbuhan di atas meja.

Kriteria Kelly memberi jawapan yang tepat: ia adalah pecahan modal yang memaksimumkan kelajuan pertumbuhan jangka panjang — geometri, bukan aritmetik. Pertumbuhan geometri inilah yang menentukan di mana akaun anda akan berada selepas seribu dagangan, kerana pulangan didarabkan, bukan dijumlahkan (lihat Sifat multiplikatif pulangan).

Dari mana formula itu datang: memaksimumkan logaritma modal

Idea utama Kelly (1956) dan kemudiannya Thorp: yang perlu dioptimumkan bukan keuntungan jangkaan satu dagangan, tetapi logaritma jangkaan modal akhir. Logaritma muncul bukan secara kebetulan — ia adalah satu-satunya fungsi yang apabila dimaksimumkan, modal tumbuh dengan kelajuan geometri maksimum.

Kes binari: pertaruhan dengan dua hasil

Andaikan dengan kebarangkalian pp pertaruhan menghasilkan bayaran bersih bb per unit (gandaan), dan dengan kebarangkalian q=1pq = 1 - p kita kehilangan pertaruhan itu sendiri. Kita pertaruhkan pecahan ff daripada modal. Selepas satu dagangan, modal didarabkan dengan (1+fb)(1 + fb) apabila menang dan dengan (1f)(1 - f) apabila kalah.

Logaritma pertumbuhan jangkaan:

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

Kita ambil terbitan terhadap ff dan samakan dengan sifar:

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

Penyelesaiannya adalah formula Kelly:

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

Dalam kata-kata: pecahan optimum sama dengan kelebihan anda, dibahagikan dengan gandaan. Tiada kelebihan (pb=qpb = q) — tiada pertaruhan.

Contoh

Strategi menang dalam 55% dagangan dengan nisbah bayaran 1:1 (b=1b = 1):

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

Kelly penuh menyuruh anda mempertaruhkan 10% modal dalam satu dagangan. Ingat nombor ini — di bawah kita akan lihat mengapa hampir tiada sesiapa patut mempertaruhkan sebanyak itu.

Kes selanjar: pulangan menggantikan pertaruhan

Dalam perdagangan, dagangan jarang kelihatan seperti pertaruhan dengan dua hasil — ada taburan pulangan. Untuk pulangan dengan min μ\mu dan varians σ2\sigma^2 per tempoh, logaritma pertumbuhan jangkaan pada leveraj (pecahan) ff lebih kurang sama dengan:

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

Maksimum dicapai pada:

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

Inilah bentuk selanjar Kelly yang terkenal (juga dikenali sebagai pecahan Merton). Dan kelajuan pertumbuhan pada optimum dikaitkan dengan nisbah Sharpe SR=μ/σ\mathrm{SR} = \mu / \sigma dengan amat cantik:

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

Kesimpulan yang patut digantung di dinding: kelajuan pertumbuhan geometri maksimum portfolio sama dengan separuh kuasa dua Sharpe-nya. Gandakan dua Sharpe — gandakan empat kali kelajuan pertumbuhan modal.

Mengapa full Kelly itu terlalu banyak

Formula memberi optimum matematik untuk pertumbuhan. Tetapi optimum ini ada harganya, yang tidak disebut oleh formula: volatiliti laluan dan susutan yang dahsyat, yang meranapkan mana-mana akaun sebenar dan mana-mana manusia sebenar.

Geometri sisihan daripada optimum

Kita gantikan pecahan cfc \cdot f^{*} (di mana cc adalah pengganda Kelly: c=1c = 1 adalah full Kelly, c=0.5c = 0.5 adalah half Kelly) ke dalam formula pertumbuhan. Relatif kepada maksimum, kita peroleh:

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

Pulangan berbanding pecahan Kelly: parabola pertumbuhan dengan puncak pada optimum dan jurang di belakangnya

Parabola ini menceritakan keseluruhan kisah pengurusan risiko dalam satu baris:

Pengganda cc Pecahan pertumbuhan 2cc22c - c^2 Volatiliti Komentar
0.25 (quarter) 43.8% 25% hampir separuh pertumbuhan untuk suku risiko
0.50 (half) 75.0% 50% jalan tengah pengamal
1.00 (full) 100.0% 100% pertumbuhan maksimum, volatiliti liar
1.50 75.0% 150% pertumbuhan sama seperti half, tetapi risiko tiga kali ganda
2.00 (double) 0.0% 200% tiada pertumbuhan, risiko maksimum
> 2.00 negatif kemusnahan walaupun edge positif

Tiga kesimpulan:

  1. half Kelly mengambil 75% pertumbuhan pada separuh volatiliti. Dari segi nisbah risiko/pulangan ini jauh lebih baik daripada full Kelly.
  2. Parabola simetri terhadap c=1c = 1. Pertaruhan pada 1.5×1.5\times Kelly memberi pertumbuhan yang sama dengan 0.5×0.5\times, tetapi tiga kali lebih volatil. Berlebihan dihukum lebih keras daripada berkurangan.
  3. Pada 2×2\times Kelly pertumbuhan menjadi sifar, dan seterusnya menjadi negatif. Penentuan saiz yang terlalu agresif membunuh modal walaupun bagi strategi yang menang.

Susutan full Kelly: formula yang menyedarkan

Risiko susutan meningkat dengan saiz pertaruhan: lengkung tenang berbanding jurang dalam

Untuk model selanjar, kebarangkalian bahawa modal akan pernah jatuh ke pecahan α\alpha daripada permulaan, sama dengan:

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

Kita gantikan paras Kelly — dan kita peroleh jadual yang selepasnya full Kelly tidak lagi kelihatan menarik:

Pengganda cc P(pernah −50%) P(pernah −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%

Pada full Kelly, kebarangkalian untuk pernah melihat susutan 50% sama dengan 50%. Ini bukan senario ekor — ini lambungan duit syiling. half Kelly menurunkannya kepada 12.5%, quarter Kelly — kepada pecahan peratus. Dan ini dalam model Gaussian yang diidealkan; ekor gemuk sebenar membuat susutan sebenar lebih dalam lagi.

Kalkulator: ubah pecahan Kelly — perhatikan pulangan dan risiko

Gerakkan peluncur. Dua yang atas menetapkan kelebihan strategi (kebarangkalian menang dan gandaan bayaran), yang bawah — pengganda Kelly cc. Perhatikan bagaimana kelajuan pertumbuhan modal dan kebarangkalian susutan dalam berubah secara serentak. Perhatikan jalan cerita utama artikel ini: apabila bergerak dari half ke full Kelly, pertumbuhan meningkat sedikit, sementara risiko susutan — berganda-ganda.

Kalkulator Kelly
Kebarangkalian menang dagangan55%
Gandaan bayaran (menang : kalah)1.0
Pecahan Kelly (pengganda c)0.50x
Gerakkan peluncur.
10.0%
Kelly penuh f*
5.0%
Pertaruhan anda c·f*
75%
Pertumbuhan dari maksimum
x43
Modal selepas 1000 dagangan
0.50x
Volatiliti
13%
Risiko susutan ≥50%
2%
Risiko susutan ≥75%
+0.375%
Log-pertumbuhan per dagangan
c = 0optimum (full Kelly)c = 2: pertumbuhan jadi sifar

Bermain-mainlah dengan peluncur pecahan Kelly di sekitar nilai 0.5 dan 1.0: pertumbuhan dari maksimum naik dari 75% kepada 100%, tetapi risiko susutan 50% melonjak dari 13% kepada 50%. Inilah sebabnya golongan profesional hidup di separuh kiri parabola.

Kelly pecahan sebagai standard industri

Pengurus serius hampir tidak pernah mempertaruhkan full Kelly. Julat tipikal — dari 1/41/4 hingga 1/21/2 Kelly. Selain susutan, ada empat sebab asas untuk memotong pecahan.

1. Ralat anggaran parameter. Formula mengandaikan anda mengetahui pp, bb, μ\mu, σ\sigma yang sebenar. Pada hakikatnya anda menganggarkannya daripada sampel terhingga. Dan fungsi pertumbuhan adalah asimetri: penilaian berlebihan terhadap kelebihan menolak anda melepasi optimum, di mana pertumbuhan jatuh lebih cepat berbanding kenaikannya pada penilaian kurang yang sama. Jika Kelly sebenar sama dengan ff^{*}, dan anda menganggarkannya dengan ralat, lebih selamat untuk secara sistematik mempertaruhkan kurang. Peraturan kasar: pada ketidakpastian anggaran, separuhkan pecahan.

2. Ketidakpegunan (nonstationarity). Kelebihan strategi bukan pemalar — rejim pasaran berubah, edge mereput, pesaing meniru idea. Kelly yang dikira pada data semalam, esok mungkin terlalu tinggi. Pengganda pecahan adalah penampan terhadap pereputan edge.

3. Ekor gemuk. Formula Gaussian f=μ/σ2f^{*} = \mu/\sigma^2 memandang rendah risiko pergerakan ekstrem. Pada taburan sebenar dengan ekor berat, ia secara sistematik bertaruh terlebih. Kelly pecahan mengimbanginya sebahagiannya.

4. Kos susutan dalam perniagaan. Bagi pembuat pasaran, susutan bukan sekadar psikologi. Ia adalah margin call, pengurangan paksa posisi pada saat paling buruk, aliran keluar modal pelabur, kenaikan kos pendanaan (lihat Bagaimana funding rates membunuh leveraj). Lengkung modal yang licin mempunyai nilai tersendiri yang tiada dalam formula Kelly.

Kelly untuk portfolio strategi

Kelly matriks untuk portfolio: matriks kovarians mengagihkan modal merentas strategi

Setakat ini kita bercakap tentang satu strategi. Tetapi soalan sebenar berbunyi seperti pemilihan Kelly untuk strategi dalam bentuk jamak: anda mempunyai beberapa strategi, dan perlu mengagihkan modal antara mereka.

Pendekatan naif — mengira Kelly bagi setiap satu secara berasingan dan menjumlahkannya — secara bencana adalah salah, kerana ia mengabaikan korelasi. Dua strategi yang berkorelasi kuat — pada dasarnya adalah satu pertaruhan berganda, dan jumlah risiko perlu dikira seperti bagi satu.

Bentuk matriks

Untuk vektor pulangan jangkaan μ\boldsymbol{\mu} dan matriks kovarians Σ\boldsymbol{\Sigma}, vektor optimum pecahan bagi semua strategi sekaligus:

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

Kelajuan pertumbuhan pada optimum diperumumkan kepada kuasa dua Sharpe portfolio:

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}

Perhatikan: Σ1μ\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu} — ini adalah arah portfolio dengan Sharpe maksimum (portfolio tangen). Kelly dan pengoptimuman mean-variance adalah dua sisi syiling yang sama: Kelly hanya menetapkan paras leveraj pada paras yang memaksimumkan pertumbuhan geometri.

Apa yang dilakukan oleh songsangan kovarians

  • Strategi yang berkorelasi berkongsi bajet risiko. Jika dua strategi hampir sama, matriks akan memotong jumlah pecahan mereka ke paras satu — secara automatik, tanpa penampal manual.
  • Strategi tak berkorelasi mendapat premium kepelbagaian. Mereka boleh dikekalkan lebih hampir kepada saiz individu, dan jumlah Sharpe portfolio akan lebih tinggi daripada setiap satunya secara berasingan.
  • Strategi yang berkorelasi negatif boleh mendapat pecahan yang ditingkatkan — mereka menginsuranskan antara satu sama lain, dan matriks menggalakkannya.

Amaran tentang anggaran Σ\boldsymbol{\Sigma}

Songsangan matriks kovarians tidak stabil secara berangka: pada anggaran berbunyi, Σ1\boldsymbol{\Sigma}^{-1} membesarkan ralat kecil menjadi berat yang liar. Pengecutan (shrinkage) kovarians ke arah pepenjuru, had leveraj, dan pengganda pecahan yang sama adalah wajib. Tanpa itu, Kelly matriks menghasilkan pecahan yang cantik pada backtest tetapi membunuh dalam pengeluaran.

Pelarasan untuk perdagangan algo dan pembuatan pasaran

Formula tulen hidup dalam dunia steril. Dalam enjin sebenar diperlukan pelarasan.

  • Komisen dan gelinciran mengurangkan kelebihan berkesan. Kira Kelly mengikut pulangan selepas semua kos, jika tidak anda akan secara sistematik bertaruh terlebih.
  • Kediskretan pertaruhan dan saiz lot tidak membenarkan anda mempertaruhkan tepat ff^{*} — bundarkan ke bawah, bukan ke atas.
  • Edge tak pegun memerlukan pengiraan semula dari masa ke masa: anggaran μ\mu dan σ\sigma pada tetingkap gelongsor dengan tempoh separuh hayat, bukan pada keseluruhan sejarah.
  • Had susutan. Di atas Kelly, letakkan siling yang tegas: susutan maksimum, leveraj maksimum, pecahan maksimum bagi satu strategi. Wujud versi Kelly berkekangan susutan (drawdown-constrained) yang formal (Bassett, Boyd), tetapi pada praktiknya cap yang ringkas sudah memadai.
  • Kejujuran anggaran edge. Kesilapan utama — memberi Kelly kelebihan yang diukur in-sample. Ambil hanya anggaran out-of-sample, secara walk-forward, selepas komisen. Edge yang dilebih-lebihkan pada input formula bermakna pertaruhan yang dilebih-lebihkan pada output.

Resipi: cara menggunakannya

  1. Nilai kelebihan dengan jujur. Out-of-sample, secara walk-forward, selepas komisen dan gelinciran. Inilah langkah paling penting — sampah pada input bertukar menjadi kemusnahan pada output.
  2. Kira Kelly penuh. Binari f=pq/bf^{*} = p - q/b untuk hasil diskret atau selanjar f=μ/σ2f^{*} = \mu/\sigma^2 untuk pulangan.
  3. Ambil pecahan. Secara lalai 1/41/41/21/2 daripada Kelly penuh. Semakin tidak mantap edge — semakin kecil pengganda.
  4. Untuk portfolio kira secara matriks. f=Σ1μ\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}\boldsymbol{\mu} dengan pengecutan kovarians, kemudian pengganda pecahan yang sama.
  5. Letakkan cap yang tegas. Maksimum per posisi, maksimum leveraj, had susutan — di atas segalanya.
  6. Kira semula. Apabila anggaran dikemas kini, potong pecahan apabila ketidakpastian meningkat dan edge mereput.

Kod

import numpy as np

def kelly_binary(p, b):
    """p — kebarangkalian menang, b — gandaan bayaran bersih bagi 1 unit pertaruhan."""
    q = 1 - p
    return (b * p - q) / b          # = p - q/b

def kelly_continuous(mu, sigma):
    """mu, sigma — min dan SP pulangan per tempoh (dalam unit yang sama)."""
    return mu / sigma ** 2

def kelly_portfolio(mu, cov, shrink=0.0):
    """Kelly matriks untuk portfolio strategi.
    mu  — vektor pulangan jangkaan;
    cov — matriks kovarians pulangan;
    shrink — pekali pengecutan ke arah pepenjuru (0..1) untuk kestabilan songsangan."""
    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 pecahan dengan cap tegas pada pecahan."""
    return float(np.clip(f_star * kelly_fraction, -cap, cap))

f = kelly_binary(p=0.55, b=1.0)    # 0.10 — Kelly penuh
print(sized(f))                    # 0.025 — quarter Kelly, saiz selamat

Kesilapan lazim

  • Kelly pada in-sample edge. Kesilapan paling mahal. Kelebihan dilebih-lebihkan → bertaruh terlebih → pertumbuhan negatif.
  • Mengabaikan korelasi antara strategi. Jumlah Kelly individu bukanlah Kelly portfolio.
  • Full Kelly dalam pengeluaran. Maksimum matematik untuk pertumbuhan, tetapi 50% peluang susutan separuh deposit. Hampir tidak sesuai untuk sesiapa pun.
  • Kelly pada edge tak mantap. Jika kelebihan mereput, formula secara sistematik melebih-lebihkan pertaruhan.
  • Mencampuradukkan matlamat. Kelly memaksimumkan pertumbuhan geometri modal — bukan Sharpe, bukan kebarangkalian kekal dalam untung dan bukan keselesaan. Jika kelicinan lengkung lebih penting bagi anda, pertaruhkan Kelly pecahan secara sedar.

Kesimpulan

Kriteria Kelly menjawab soalan utama mana-mana strategi — berapa hendak dipertaruhkan — dengan formula yang memaksimumkan pertumbuhan geometri jangka panjang: f=pq/bf^{*} = p - q/b untuk pertaruhan dan f=μ/σ2f^{*} = \mu/\sigma^2 untuk pulangan, dan untuk portfolio — f=Σ1μ\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}.

Tetapi Kelly penuh adalah optimum matematik untuk pertumbuhan, bukan untuk kelangsungan hidup. Kelly pecahan (1/41/41/21/2) mengambil sebahagian besar pertumbuhan pada volatiliti dan susutan yang berganda-ganda lebih kecil. Oleh itu jawapan praktikal kepada soalan tentang pemilihan Kelly untuk strategi berbunyi begini: kira Kelly penuh dengan jujur — tetapi pertaruhkan bahagian pecahannya, di atas had risiko yang tegas.


Bahan berkaitan:

Penafian: Maklumat yang disediakan dalam artikel ini adalah untuk tujuan pendidikan dan maklumat sahaja dan bukan merupakan nasihat kewangan, pelaburan, atau dagangan. Dagangan mata wang kripto melibatkan risiko kerugian yang ketara.

Pengarang

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

Kekal Mendahului Pasaran

Langgan surat berita kami untuk pandangan dagangan AI eksklusif, analisis pasaran, dan kemas kini platform.

Kami menghormati privasi anda. Berhenti melanggan pada bila-bila masa.