← Мақалаларға оралу
June 23, 2026
5 мин оқу

Стратегиялар үшін Келли критерийі: позиция көлемін қалай анықтап, капиталды бөлу керек

Стратегиялар үшін Келли критерийі: позиция көлемін қалай анықтап, капиталды бөлу керек
#risk management
#Kelly criterion
#money management
#position sizing
#algorithmic trading
📊
Part 5 of 5 · Collection
Portfolio Construction & Risk

Оң күтілетін мәні бар стратегия да, егер бет мөлшері дұрыс таңдалмаса, шотыңызды жоя алады. Біз Келли критерийін формуланы шығарудан бастап стратегиялар портфеліне дейін талдаймыз: неге толық Келли қауіпті, дробтық Келли жартылай құбылмалылықпен өсімнің 75% қалай қамтамасыз етеді, және алгоритмдік трейдингте нақты қандай мөлшерлеу рецептін қолдану керек. Мақаланың ортасында Келли үлесінің табыс пен тәуекелді қалай өзгертетінін көрсететін интерактивті калькулятор бар.

Әр стратегия жауап беруге міндетті сұрақ

The question every strategy is obliged to answer

Сізде оң артықшылығы (edge) бар стратегия бар: ұзақ мерзімде ол ақша табады. Бір деталь шешілмей қалады — капиталдың қандай бөлігін бір мәмілеге салу немесе бір стратегияға бөлу керек.

Бұл екінші дәрежелі сұрақ емес, керісінше орталық сұрақ. Оң күтілетін мән сізді күйреуден құтқармайды: тым көп тіксеңіз, ұтылыс сериясы шотыңызды статистикалық қалпына келу мүмкін емес аймаққа айдап апарады (қараңыз Шығын мен пайданың асимметриясы). Тым аз тіксеңіз, әлеуетті өсімнің көп бөлігін үстелде қалдырасыз.

Келли критерийі дәл жауап береді: бұл ұзақ мерзімді өсу қарқынын максимумға шығаратын капитал үлесі — арифметикалық емес, геометриялық өсу қарқыны. Дәл геометриялық өсу мың мәміледен кейін шотыңыздың қайда тоқтайтынын анықтайды, өйткені табыстар қосылмайды, көбейеді (қараңыз Табыстардың мультипликативтік табиғаты).

Формула қайдан шыққан: капитал логарифмін максимумға шығару

Where the formula comes from: maximizing the logarithm of capital

Келлидің (1956) және кейінірек Торптың негізгі идеясы: сіз оңтайландыруыңыз керек нәрсе — бір мәміленің күтілетін пайдасы емес, соңғы капиталыңыздың күтілетін логарифмі. Логарифм кездейсоқ пайда болған жоқ — бұл оны максимумға шығару капиталды максималды геометриялық қарқынмен өсіретін жалғыз функция.

Бинарлық жағдай: екі нәтижелі бет

Айталық, pp ықтималдығымен бет бірлікке bb таза төлемін (коэффициент) қайтарады, ал q=1pq = 1 - p ықтималдығымен біз тіккен қаражатты жоғалтамыз. Біз капиталымыздың ff бөлігін тігеміз. Бір мәміледен кейін ұтыста капитал (1+fb)(1 + fb)-ге, ұтылыста (1f)(1 - f)-ге көбейеді.

Күтілетін логарифмдік өсу:

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

ff бойынша туынды алып, оны нөлге теңестіреміз:

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

Шешім — Келли формуласы:

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

Басқаша айтқанда: оңтайлы үлес сіздің артықшылығыңызды коэффициентке бөлгенге тең. Артықшылық жоқ болса (pb=qpb = q) — бет тікпейсіз.

Мысал

Стратегия 1:1 төлем қатынасымен (b=1b = 1) мәмілелердің 55%-ын ұтады:

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

Толық Келли әр мәмілеге капиталдың 10%-ын тәуекел етуді айтады. Бұл санды есте сақтаңыз — төменде дерлік ешкім дәл осындай мөлшерде тікпеуі керек екенін көреміз.

Үздіксіз жағдай: бет орнына табыстар

Трейдингте мәміле сирек екі нәтижелі бетке ұқсайды — мұнда табыстардың таралуы бар. Периодқа μ\mu орта мәні және σ2\sigma^2 дисперсиясы бар табыстар үшін ff левериджде (үлесте) күтілетін логарифмдік өсу шамамен мынаған тең:

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

Максимум мынада жетеді:

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

Бұл Келлидің әйгілі үздіксіз түрі (Мертон үлесі деп те аталады). Ал оңтайлы нүктедегі өсу қарқыны Шарп коэффициентіне SR=μ/σ\mathrm{SR} = \mu / \sigma керемет талғампаз түрде байланысты:

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

Қабырғаға іліп қоюға тұрарлық қорытынды: портфельдің максималды геометриялық өсу қарқыны оның Шарпының квадратының жартысына тең. Шарпты екі есе арттырсаңыз, капиталдың өсу қарқыны төрт есе артады.

Неге толық Келли тым көп

Why full Kelly is too much

Формула өсу үшін математикалық оңтайлылықты береді. Бірақ бұл оңтайлылықтың формула үнсіз қалдыратын бағасы бар: кез келген нақты шот пен нақты адамды бұзатын жолдың құбылмалылығы мен күйреулер.

Оңтайлылықтан ауытқу геометриясы

Өсу формуласына cfc \cdot f^{*} үлесін (cc — Келли көбейткіші: c=1c = 1 толық Келли, c=0.5c = 0.5 жартылай Келли) қойыңыз. Максимумға қатысты аламыз:

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

Return versus the Kelly fraction: a growth parabola peaking at the optimum and dropping off a cliff beyond it

Бұл парабола тәуекел менеджментінің бүкіл тарихын бір жолмен айтады:

Көбейткіш cc Өсу үлесі 2cc22c - c^2 Құбылмалылық Түсініктеме
0.25 (ширек) 43.8% 25% тәуекелдің ширегінде өсімнің жартысына жуығы
0.50 (жарты) 75.0% 50% практиктердің оңтайлы нүктесі
1.00 (толық) 100.0% 100% максималды өсу, жабайы құбылмалылық
1.50 75.0% 150% жартысымен бірдей өсу, бірақ үш есе тәуекел
2.00 (қос) 0.0% 200% өсу жоқ, максималды тәуекел
> 2.00 теріс оң артықшылыққа қарамастан күйреу

Үш қорытынды:

  1. Жартылай Келли құбылмалылықтың жартысымен өсімнің 75%-ын қамтамасыз етеді. Тәуекел/табыс тұрғысынан бұл толық Келлиден әлдеқайда жақсы.
  2. Парабола c=1c = 1 айналасында симметриялы. 1.5×1.5\times Келли тігу 0.5×0.5\times-пен бірдей өсу береді, бірақ үш есе құбылмалы. Асыра тігу жеткіліксіз тігуден қаттырақ жазаланады.
  3. 2×2\times Келлиде өсу нөлге дейін түседі, ал одан әрі теріс болады. Тым агрессивті мөлшерлеу тіпті ұтымды стратегияда да капиталды өлтіреді.

Толық Келлидің күйреулері: есіңе келтіретін формула

Drawdown risk grows with bet size: calm curves versus deep plunges

Үздіксіз модель үшін капиталдың бастапқы мәнінің α\alpha бөлігіне дейін түсу ықтималдығы:

P(α дейінгі күйреу)=α2ccP(\alpha \text{ дейінгі күйреу}) = \alpha^{\frac{2 - c}{c}}

Келли деңгейлерін қойыңыз — және толық Келли тартымды болудан қалатын кестеге ие боласыз:

Көбейткіш cc P(қандай да бір сәтте −50%) P(қандай да бір сәтте −75%)
1.00 (толық) 50% 75%
0.50 (жарты) 12.5% 1.6%
0.25 (ширек) 0.78% 0.006%
2.00 (қос) 100% 100%

Толық Келли бойынша қандай да бір сәтте 50% күйреуді көру ықтималдығы 50%-ға тең. Бұл шеткі сценарий емес — бұл тиынды лақтырумен тең. Жартылай Келли оны 12.5%-ға, ширек Келли пайыздың бір бөлшегіне дейін түсіреді. Және бұл идеалдандырылған Гаусс моделінде; нақты ауыр құйрықтар нақты күйреулерді одан да тереңдетеді.

Калькулятор: Келли үлесін жылжытыңыз — табыс пен тәуекелді бақылаңыз

Слайдерлерді жылжытыңыз. Жоғарғы екеуі стратегияның артықшылығын (ұту ықтималдығы мен төлем қатынасы) орнатады, төменгісі Келли көбейткішін cc орнатады. Капиталдың өсу қарқыны мен терең күйреу ықтималдығы бір мезгілде қалай өзгеретінін бақылаңыз. Мақаланың басты графигіне назар аударыңыз: жартылайдан толық Келлиге көшкенде өсу аздап артады, ал күйреу тәуекелі бірнеше есе артады.

Kelly Calculator
Trade win probability55%
Payout ratio (win : loss)1.0
Kelly fraction (multiplier c)0.50x
Move the sliders.
10.0%
Full Kelly f*
5.0%
Your bet c·f*
75%
Growth vs maximum
x43
Capital over 1000 trades
0.50x
Volatility
13%
Drawdown risk ≥50%
2%
Drawdown risk ≥75%
+0.375%
Log growth per trade
c = 0optimum (full Kelly)c = 2: growth goes to zero

Келли үлесі слайдерін 0.5 бен 1.0 мәндері айналасында қозғап көріңіз: максимумға қатысты өсу 75%-дан 100%-ға дейін артады, ал 50% күйреу тәуекелі 13%-дан 50%-ға дейін секіреді. Дәл сондықтан кәсіпқойлар параболаның сол жақ жартысында өмір сүреді.

Дробтық Келли — индустрия стандарты ретінде

Fractional Kelly as the industry standard

Байыпты менеджерлер толық Келлиді дерлік ешқашан тікпейді. Әдеттегі диапазон 1/41/4-тен 1/21/2 Келлиге дейін. Күйреулерден бөлек, үлесті азайтудың төрт негізгі себебі бар.

1. Параметрлерді бағалау қатесі. Формула сіздің pp, bb, μ\mu, σ\sigma нақты мәндерін білетініңізді болжайды. Шындығында сіз оларды шектеулі үлгіден бағалайсыз. Ал өсу функциясы асимметриялы: артықшылықты асыра бағалау сізді оңтайлы нүктеден асырып жібереді, онда өсу сол дәрежедегі кем бағалауда өскенінен жылдамырақ түседі. Егер нақты Келли ff^{*}-ге тең болса және сіз оны қатемен бағаласаңыз, жүйелі түрде азырақ тігу қауіпсізірек. Тәжірибелік ереже: баға белгісіздігі жоғары болса, үлесті екі есе азайтыңыз.

2. Стационарлық еместік. Стратегияның артықшылығы тұрақты шама емес — нарық режимдері өзгереді, артықшылық ыдырайды, бәсекелестер идеяны көшіреді. Кешегі деректерде есептелген Келли ертең асыра бағаланған болып шығуы мүмкін. Дробтық көбейткіш — артықшылықтың ыдырауына қарсы жастықша.

3. Ауыр құйрықтар. Гаусс формуласы f=μ/σ2f^{*} = \mu/\sigma^2 экстремалды қозғалыстардың тәуекелін кем бағалайды. Нақты ауыр құйрықты таралуларда ол жүйелі түрде асыра тігеді. Дробтық Келли мұны ішінара өтейді.

4. Бизнестегі күйреулердің құны. Маркет-мейкер үшін күйреу тек психология ғана емес. Бұл маржа қоңыраулары, ең қолайсыз сәтте позицияны мәжбүрлеп қысқарту, инвестор капиталының кетуі, қаржыландыру құнының өсуі (қараңыз Фандинг мөлшерлемелері левериджді қалай өлтіреді). Тегіс эквити қисығының Келли формуласында жоқ өз алдына құны бар.

Стратегиялар портфелі үшін Келли

Kelly for a portfolio of strategies

Matrix Kelly for a portfolio: the covariance matrix allocates capital across strategies

Осы уақытқа дейін біз бір стратегия туралы айттық. Бірақ нақты сұрақ — көпше түрдегі стратегиялар үшін Келлиді таңдау: сізде бірнеше стратегия бар, және капиталды олардың арасында бөлу керек.

Аңғал тәсіл — әрқайсысы үшін жеке Келлиді есептеп, оларды қосу — түбегейлі қате, өйткені ол корреляцияларды елемейді. Күшті корреляцияланған екі стратегия негізінен бір қосарланған бетке тең, және жалпы тәуекел бір стратегиядағыдай саналуы керек.

Матрицалық форма

Күтілетін табыстардың μ\boldsymbol{\mu} векторы мен ковариация матрицасы Σ\boldsymbol{\Sigma} үшін бірден барлық стратегиялар бойынша үлестердің оңтайлы векторы:

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

Оңтайлы нүктедегі өсу қарқыны портфель Шарпының квадратына жалпыланады:

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}

Назар аударыңыз: Σ1μ\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu} — максималды Шарпы бар портфельдің (тангенс портфелі) бағыты. Келли мен орта-дисперсиялық оңтайландыру бір тиынның екі жағы: Келли жай ғана геометриялық өсуді максимумға шығаратын леверидж деңгейін бекітеді.

Кері ковариация не істейді

  • Корреляцияланған стратегиялар тәуекел бюджетін бөліседі. Егер екі стратегия дерлік бірдей болса, матрица олардың біріктірілген үлесін бір стратегия деңгейіне дейін автоматты түрде — қолмен ешбір айла-шарғысыз қысқартады.
  • Корреляцияланбаған стратегиялар диверсификация сыйақысын алады. Оларды жеке мөлшерлеріне жақынырақ ұстауға болады, және портфельдің жалпы Шарпы әрқайсысынан бөлек алғаннан жоғары болады.
  • Теріс корреляцияланған стратегиялар үлесі арттырылуы мүмкін — олар бір-бірін хеджирлейді, және матрица мұны марапаттайды.

Σ\boldsymbol{\Sigma} бағалау туралы ескерту

Ковариация матрицасын кері айналдыру сандық тұрғыдан тұрақсыз: шулы бағалауларда Σ1\boldsymbol{\Sigma}^{-1} кіші қателерді жабайы салмақтарға дейін үрлейді. Диагональға қарай ковариацияны шринкаждау, леверидж шектеулері және сол дробтық көбейткіш міндетті. Оларсыз матрицалық Келли бэктестте әдемі, ал өндірісте өлімге әкелетін үлестер шығарады.

Алгоритмдік трейдинг пен маркет-мейкинг үшін түзетулер

Adjustments for algorithmic trading and market making

Таза формула стерильді әлемде өмір сүреді. Нақты қозғалтқышта түзетулер қажет.

  • Комиссиялар мен сырғанау (slippage) тиімді артықшылықты азайтады. Келлиді барлық шығындардан кейінгі табыстарда есептеңіз, әйтпесе жүйелі түрде асыра тігесіз.
  • Бет дискреттілігі мен лот өлшемі сізге дәл ff^{*} тігуге мүмкіндік бермейді — жоғарыға емес, төменге дөңгелектеңіз.
  • Стационарлық емес артықшылық уақыт өте есептеуді қайталауды талап етеді: бүкіл тарихта емес, жартылай өмірі бар жылжымалы терезеде μ\mu мен σ\sigma бағалаулары.
  • Күйреу шектеуі. Келлиден бөлек, қатаң төбе орнатыңыз: максималды күйреу, максималды леверидж, бір стратегияға максималды үлес. Формальды күйреу-шектелген Келли нұсқалары бар (Busseti, Boyd), бірақ тәжірибеде қарапайым шек жеткілікті.
  • Артықшылықты бағалаудағы адалдық. Негізгі қате — Келлиге сынама ішінде (in-sample) өлшенген артықшылықты беру. Тек сынамадан тыс (out-of-sample) бағалауды алыңыз, walk-forward негізінде, комиссиялардан кейін. Формулаға кіретін асыра бағаланған артықшылық шығатын асыра бағаланған бет дегенді білдіреді.

Рецепт: мұны қалай қолдану керек

  1. Артықшылықты адал бағалаңыз. Сынамадан тыс, walk-forward негізінде, комиссиялар мен сырғанаудан кейін. Бұл ең маңызды қадам — кіретін қоқыс шығатын күйреуге айналады.
  2. Толық Келлиді есептеңіз. Дискретті нәтижелер үшін бинарлық f=pq/bf^{*} = p - q/b немесе табыстар үшін үздіксіз f=μ/σ2f^{*} = \mu/\sigma^2.
  3. Бөлшек алыңыз. Әдепкі бойынша толық Келлидің 1/41/41/21/2. Артықшылық неғұрлым тұрақсыз болса, көбейткіш соғұрлым кіші болуы керек.
  4. Портфель үшін матрицалық форматта есептеңіз. Ковариацияны шринкаждаумен f=Σ1μ\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}, содан кейін сол дробтық көбейткіш.
  5. Қатаң шектер орнатыңыз. Позиция бойынша максимум, максималды леверидж, күйреу шегі — барлығынан бөлек.
  6. Қайта есептеңіз. Бағалаулар жаңарған сайын белгісіздік артқанда және артықшылық ыдырағанда үлесті қысқартыңыз.

Код

import numpy as np

def kelly_binary(p, b):
    """p — win probability, b — net payout ratio per 1 unit of stake."""
    q = 1 - p
    return (b * p - q) / b          # = p - q/b

def kelly_continuous(mu, sigma):
    """mu, sigma — mean and standard deviation of period returns (in the same units)."""
    return mu / sigma ** 2

def kelly_portfolio(mu, cov, shrink=0.0):
    """Matrix Kelly for a portfolio of strategies.
    mu  — vector of expected returns;
    cov — covariance matrix of returns;
    shrink — shrinkage coefficient toward the diagonal (0..1) for stable inversion."""
    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):
    """Fractional Kelly with a hard cap on the fraction."""
    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, a safe size

Жиі кездесетін қателер

  • Сынама ішіндегі артықшылықтағы Келли. Ең қымбат қате. Асыра бағаланған артықшылық → асыра тігу → теріс өсу.
  • Стратегиялар арасындағы корреляцияларды елемеу. Жеке Келлилердің қосындысы портфель Келлиі емес.
  • Өндірістегі толық Келли. Өсудің математикалық максимумы, бірақ шоттың жартысына дейін күйреудің 50% мүмкіндігі. Дерлік ешкімге сай келмейді.
  • Тұрақсыз артықшылықпен Келли. Артықшылық ыдыраса, формула бетті жүйелі түрде асыра бағалайды.
  • Мақсаттарды шатастыру. Келли капиталдың геометриялық өсуін максимумға шығарады — Шарпты, пайдада қалу ықтималдығын немесе ыңғайлылықты емес. Егер сіз үшін тегіс қисық маңыздырақ болса, әдейі дробтық Келли тігіңіз.

Қорытынды

Келли критерийі кез келген стратегияның орталық сұрағына — қанша тігу керек — ұзақ мерзімді геометриялық өсуді максимумға шығаратын формуламен жауап береді: беттер үшін f=pq/bf^{*} = p - q/b және табыстар үшін f=μ/σ2f^{*} = \mu/\sigma^2, ал портфель үшін — f=Σ1μ\mathbf{f}^{*} = \boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}.

Бірақ толық Келли — өсу үшін математикалық оңтайлылық, тірі қалу үшін емес. Дробтық Келли (1/41/41/21/2) бірнеше есе төмен құбылмалылық пен күйреумен өсімнің көп бөлігін қамтиды. Сондықтан стратегиялар үшін Келли таңдау сұрағының практикалық жауабы мынадай: толық Келлиді адал есептеңіз — бірақ оның бір бөлігін тігіңіз, қатаң тәуекел шектерінен бөлек.


Байланысты материалдар:

blog.disclaimer

Authors

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

Нарықтан бір қадам алда болыңыз

AI сауда талдаулары, нарық аналитикасы және платформа жаңалықтары үшін біздің ақпараттық бюллетеньге жазылыңыз.

Біз сіздің жекелігіңізді құрметтейміз. Кез келген уақытта жазылымнан шығуға болады.