रणनीतियों के लिए केली क्राइटेरियन: पोजीशन साइज़िंग और पूंजी आवंटन कैसे करें
पॉज़िटिव एक्सपेक्टेड वैल्यू वाली रणनीति भी अगर बेट साइज़ गलत हो तो आपका अकाउंट उड़ा सकती है। हम केली क्राइटेरियन को फॉर्मूला की व्युत्पत्ति से लेकर रणनीतियों के पोर्टफोलियो तक समझते हैं: फुल केली क्यों खतरनाक है, फ्रैक्शनल केली आधी वोलैटिलिटी में 75% ग्रोथ कैसे देता है, और अल्गोरिदमिक ट्रेडिंग में वास्तव में कौन-सा साइज़िंग रेसिपी अपनाना चाहिए। लेख के बीच में एक इंटरैक्टिव कैलकुलेटर है जो दिखाता है कि केली फ्रैक्शन रिटर्न और रिस्क को कैसे बदलता है।
वह सवाल जिसका जवाब हर रणनीति को देना ही होता है

आपके पास एक रणनीति है जिसमें पॉज़िटिव एज है: लंबे समय में यह पैसा कमाती है। एक बात अभी तय होनी बाकी है — किसी एक ट्रेड में या किसी एक रणनीति में पूंजी का कितना हिस्सा लगाया जाए।
यह कोई गौण सवाल नहीं, बल्कि केंद्रीय सवाल है। पॉज़िटिव एक्सपेक्टेड वैल्यू आपको तबाही से नहीं बचाती: अगर आप बहुत ज़्यादा बेट करते हैं, तो लगातार होने वाली हार आपके अकाउंट को उस स्थिति में ले जाती है जहां से सांख्यिकीय रूप से उबरना संभव नहीं होता (देखें नुकसान और मुनाफे की असमानता)। अगर बहुत कम बेट करते हैं, तो संभावित ग्रोथ का अधिकांश हिस्सा टेबल पर छोड़ देते हैं।
केली क्राइटेरियन एक सटीक जवाब देता है: यह पूंजी का वह हिस्सा है जो दीर्घकालिक ग्रोथ रेट को अधिकतम करता है — ज्यामितीय (geometric) रेट को, अंकगणितीय (arithmetic) को नहीं। यह ज्यामितीय ग्रोथ ही तय करती है कि एक हज़ार ट्रेड के बाद आपका अकाउंट कहां पहुंचता है, क्योंकि रिटर्न जुड़ते नहीं, गुणा होते हैं (देखें रिटर्न की गुणात्मक प्रकृति)।
फॉर्मूला कहां से आता है: पूंजी के लॉगरिदम को अधिकतम करना

केली (1956) और बाद में थॉर्प का मूल विचार यह है: आपको एक ट्रेड के एक्सपेक्टेड प्रॉफिट को नहीं, बल्कि अपनी अंतिम पूंजी के एक्सपेक्टेड लॉगरिदम को ऑप्टिमाइज़ करना चाहिए। लॉगरिदम यूं ही नहीं आता — यह वह एकमात्र फंक्शन है जिसका अधिकतमीकरण पूंजी को अधिकतम ज्यामितीय दर से बढ़ाता है।
बाइनरी केस: दो परिणामों वाला बेट
मान लीजिए कि प्रायिकता के साथ बेट प्रति यूनिट (ऑड्स) का नेट पेआउट देता है, और प्रायिकता के साथ हम स्टेक ही गंवा देते हैं। हम अपनी पूंजी का एक हिस्सा बेट करते हैं। एक ट्रेड के बाद जीत पर पूंजी से और हार पर से गुणा होती है।
एक्सपेक्टेड लॉग ग्रोथ:
के सापेक्ष डेरिवेटिव लें और उसे शून्य के बराबर रखें:
समाधान केली फॉर्मूला है:
सीधे शब्दों में: ऑप्टिमल फ्रैक्शन आपके एज को ऑड्स से भाग देने के बराबर है। कोई एज नहीं () — तो कोई बेट नहीं।
उदाहरण
एक रणनीति 1:1 के पेआउट रेशियो () के साथ 55% ट्रेड जीतती है:
फुल केली कहता है कि हर ट्रेड में पूंजी का 10% रिस्क करें। इस संख्या को याद रखें — आगे हम देखेंगे कि लगभग किसी को भी ठीक इतना बेट क्यों नहीं करना चाहिए।
कंटीन्युअस केस: बेट्स की जगह रिटर्न
ट्रेडिंग में एक ट्रेड शायद ही कभी दो परिणामों वाले बेट जैसा दिखता है — यहां रिटर्न का एक डिस्ट्रीब्यूशन होता है। प्रति पीरियड मीन और वेरिएंस वाले रिटर्न के लिए, लीवरेज (फ्रैक्शन) पर एक्सपेक्टेड लॉग ग्रोथ लगभग यह है:
मैक्सिमम इस पर पहुंचता है:
यह केली का प्रसिद्ध कंटीन्युअस रूप है (जिसे मर्टन फ्रैक्शन भी कहा जाता है)। और ऑप्टिमम पर ग्रोथ रेट शार्प रेशियो से बेहद खूबसूरत तरीके से जुड़ी हुई है:
एक निष्कर्ष जो दीवार पर टांगने लायक है: पोर्टफोलियो की अधिकतम ज्यामितीय ग्रोथ रेट उसकी शार्प के वर्ग के आधे के बराबर होती है। शार्प को दोगुना करें, और पूंजी की ग्रोथ रेट चार गुना हो जाती है।
फुल केली क्यों बहुत ज़्यादा है

फॉर्मूला ग्रोथ के लिए गणितीय ऑप्टिमम देता है। लेकिन इस ऑप्टिमम की एक कीमत है जिसके बारे में फॉर्मूला कुछ नहीं बताता: भयंकर पाथ वोलैटिलिटी और ड्रॉडाउन, जो किसी भी असली अकाउंट और असली इंसान को तोड़ देते हैं।
ऑप्टिमम से हटने की ज्यामिति
ग्रोथ फॉर्मूला में फ्रैक्शन (जहां केली मल्टीप्लायर है: फुल केली है, हाफ केली है) डालें। मैक्सिमम के सापेक्ष हमें मिलता है:

यह परवलय (parabola) रिस्क मैनेजमेंट की पूरी कहानी एक ही लाइन में बता देता है:
| मल्टीप्लायर | ग्रोथ का हिस्सा | वोलैटिलिटी | टिप्पणी |
|---|---|---|---|
| 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 | नेगेटिव | — | पॉज़िटिव एज होने के बावजूद तबाही |
तीन निष्कर्ष:
- हाफ केली आधी वोलैटिलिटी में 75% ग्रोथ हासिल करता है। रिस्क/रिटर्न के आधार पर यह फुल केली से कहीं बेहतर है।
- परवलय के आसपास सिमेट्रिकल है। केली बेट करने पर जितनी ही ग्रोथ मिलती है, लेकिन वोलैटिलिटी तीन गुना होती है। ओवरशूटिंग को अंडरशूटिंग से कहीं ज़्यादा सख्ती से दंडित किया जाता है।
- केली पर ग्रोथ शून्य हो जाती है, और उससे आगे यह नेगेटिव हो जाती है। बहुत आक्रामक साइज़िंग जीतने वाली रणनीति के लिए भी पूंजी को खत्म कर देती है।
फुल केली के ड्रॉडाउन: वह फॉर्मूला जो होश में ला देता है

कंटीन्युअस मॉडल के लिए, इस प्रायिकता के बराबर कि पूंजी कभी अपने शुरुआती मूल्य के हिस्से तक गिर जाएगी:
केली लेवल डालें — और आपको एक टेबल मिलती है जिसके बाद फुल केली आकर्षक नहीं रह जाता:
| मल्टीप्लायर | 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% तक ले आता है, क्वार्टर केली प्रतिशत के एक अंश तक। और यह एक आदर्श गॉसियन मॉडल में है; असली फैट टेल्स असली ड्रॉडाउन को और भी गहरा बना देती हैं।
कैलकुलेटर: केली फ्रैक्शन बदलें — रिटर्न और रिस्क देखें
स्लाइडर्स को हिलाएं। ऊपर के दो स्लाइडर रणनीति का एज सेट करते हैं (जीतने की प्रायिकता और पेआउट रेशियो), नीचे वाला केली मल्टीप्लायर सेट करता है। देखें कि पूंजी की ग्रोथ रेट और गहरे ड्रॉडाउन की प्रायिकता एक साथ कैसे बदलती है। लेख के मुख्य प्लॉट पर ध्यान दें: हाफ से फुल केली की ओर बढ़ने पर, ग्रोथ थोड़ी बढ़ती है, जबकि ड्रॉडाउन रिस्क कई गुना बढ़ जाता है।
केली फ्रैक्शन स्लाइडर को 0.5 और 1.0 के आसपास आज़माएं: मैक्सिमम के मुकाबले ग्रोथ 75% से बढ़कर 100% हो जाती है, लेकिन 50% ड्रॉडाउन का रिस्क 13% से उछलकर 50% हो जाता है। यही वजह है कि प्रोफेशनल्स परवलय के बाएं आधे हिस्से में रहते हैं।
इंडस्ट्री स्टैंडर्ड के रूप में फ्रैक्शनल केली

गंभीर मैनेजर्स लगभग कभी फुल केली बेट नहीं करते। सामान्य रेंज से केली के बीच होती है। ड्रॉडाउन के अलावा, फ्रैक्शन को घटाने के चार मौलिक कारण हैं।
1. पैरामीटर एस्टिमेशन एरर। फॉर्मूला यह मान लेता है कि आप असली , , , जानते हैं। वास्तव में आप इन्हें एक फिनाइट सैंपल से एस्टिमेट करते हैं। और ग्रोथ फंक्शन असिमेट्रिकल है: एज को ओवरएस्टिमेट करना आपको ऑप्टिमम से आगे धकेल देता है, जहां ग्रोथ उतनी ही अंडरएस्टिमेशन में बढ़ने से ज़्यादा तेज़ी से गिरती है। अगर असली केली है और आपने इसे त्रुटि के साथ एस्टिमेट किया है, तो व्यवस्थित रूप से कम बेट करना ज़्यादा सुरक्षित है। अंगूठे का नियम: जब एस्टिमेट अनिश्चित हो, तो फ्रैक्शन को आधा कर दें।
2. नॉन-स्टेशनरिटी। किसी रणनीति का एज कोई स्थिर संख्या नहीं है — मार्केट रेजीम बदलते हैं, एज घटता है, प्रतिस्पर्धी आइडिया कॉपी कर लेते हैं। कल के डेटा पर कैलकुलेट किया गया केली कल ओवरस्टेटेड निकल सकता है। फ्रैक्शनल मल्टीप्लायर एज के क्षय के खिलाफ एक कुशन है।
3. फैट टेल्स। गॉसियन फॉर्मूला एक्सट्रीम मूवमेंट्स के रिस्क को कम आंकता है। असली हैवी-टेल्ड डिस्ट्रीब्यूशन पर यह व्यवस्थित रूप से ओवर-बेट करता है। फ्रैक्शनल केली इसकी आंशिक रूप से भरपाई करता है।
4. बिज़नेस में ड्रॉडाउन की लागत। मार्केट मेकर के लिए ड्रॉडाउन सिर्फ मनोविज्ञान नहीं है। यह मार्जिन कॉल्स, सबसे बुरे समय में जबरन पोजीशन में कटौती, इन्वेस्टर कैपिटल का बाहर जाना, फंडिंग की बढ़ती लागत है (देखें फंडिंग रेट्स लीवरेज को कैसे मारते हैं)। एक स्मूथ इक्विटी कर्व का अपना एक अलग मूल्य होता है जो केली फॉर्मूला में मौजूद नहीं है।
रणनीतियों के पोर्टफोलियो के लिए केली


अब तक हमने एक ही रणनीति की बात की है। लेकिन असली सवाल बहुवचन में रणनीतियों के लिए केली चुनने का है: आपके पास कई रणनीतियां हैं, और आपको उनके बीच पूंजी बांटनी है।
नैवीव अप्रोच — हर एक के लिए अलग से केली कैलकुलेट करना और उन्हें जोड़ देना — भयंकर रूप से गलत है, क्योंकि यह कोरिलेशन को नज़रअंदाज़ करता है। दो कड़े कोरिलेटेड रणनीतियां मूलतः एक ही डबल बेट हैं, और कुल रिस्क को एक ही रणनीति की तरह गिना जाना चाहिए।
मैट्रिक्स फॉर्म
एक्सपेक्टेड रिटर्न के वेक्टर और कोवेरियंस मैट्रिक्स के लिए, सभी रणनीतियों के लिए एक साथ फ्रैक्शन का ऑप्टिमल वेक्टर:
ऑप्टिमम पर ग्रोथ रेट पोर्टफोलियो शार्प के वर्ग तक सामान्यीकृत होती है:
ध्यान दें: मैक्सिमम-शार्प पोर्टफोलियो (टैंजेंसी पोर्टफोलियो) की दिशा है। केली और मीन-वेरिएंस ऑप्टिमाइज़ेशन एक ही सिक्के के दो पहलू हैं: केली सिर्फ लीवरेज लेवल को उस स्तर पर तय करता है जो ज्यामितीय ग्रोथ को अधिकतम करता है।
इनवर्स कोवेरियंस क्या करता है
- कोरिलेटेड रणनीतियां रिस्क बजट साझा करती हैं। अगर दो रणनीतियां लगभग समान हैं, तो मैट्रिक्स उनके कंबाइंड फ्रैक्शन को अपने आप एक ही रणनीति के स्तर तक घटा देगा — बिना किसी मैनुअल हैक के।
- अनकोरिलेटेड रणनीतियों को डायवर्सिफिकेशन प्रीमियम मिलता है। उन्हें उनके व्यक्तिगत साइज़ के करीब रखा जा सकता है, और पोर्टफोलियो का कुल शार्प हर एक से अलग-अलग से ज़्यादा होगा।
- नेगेटिवली कोरिलेटेड रणनीतियों को बढ़ा हुआ फ्रैक्शन मिल सकता है — वे एक-दूसरे को हेज करती हैं, और मैट्रिक्स इसे रिवॉर्ड करता है।
एस्टिमेट करने पर एक चेतावनी
कोवेरियंस मैट्रिक्स को इनवर्ट करना संख्यात्मक रूप से अस्थिर है: नॉइज़ी एस्टिमेट पर छोटी त्रुटियों को भयंकर वज़न में फुलाता है। डायगोनल की ओर कोवेरियंस की श्रिंकेज, लीवरेज कैप्स, और वही फ्रैक्शनल मल्टीप्लायर अनिवार्य हैं। इनके बिना, मैट्रिक्स केली ऐसे फ्रैक्शन देता है जो बैकटेस्ट में खूबसूरत और प्रोडक्शन में जानलेवा दिखते हैं।
अल्गोरिदमिक ट्रेडिंग और मार्केट मेकिंग के लिए एडजस्टमेंट

शुद्ध फॉर्मूला एक स्टेराइल दुनिया में रहता है। असली इंजन में आपको एडजस्टमेंट चाहिए।
- कमीशन और स्लिपेज प्रभावी एज को कम करते हैं। सभी लागतों के बाद के रिटर्न पर केली कैलकुलेट करें, वरना आप व्यवस्थित रूप से ओवर-बेट करेंगे।
- बेट की डिस्क्रीटनेस और लॉट साइज़िंग आपको ठीक बेट करने से रोकते हैं — नीचे राउंड करें, ऊपर नहीं।
- नॉन-स्टेशनरी एज को समय के साथ फिर से कैलकुलेट करने की ज़रूरत होती है: पूरे इतिहास पर नहीं, बल्कि हाफ-लाइफ वाली रोलिंग विंडो पर और के एस्टिमेट।
- ड्रॉडाउन कॉन्स्ट्रेंट। केली के ऊपर, एक हार्ड सीलिंग सेट करें: मैक्सिमम ड्रॉडाउन, मैक्सिमम लीवरेज, प्रति एकल रणनीति मैक्सिमम फ्रैक्शन। केली के फॉर्मल ड्रॉडाउन-कॉन्स्ट्रेंड वर्ज़न मौजूद हैं (Busseti, Boyd), लेकिन प्रैक्टिस में एक सिंपल कैप ही काफी है।
- एज एस्टिमेट करने में ईमानदारी। मुख्य गलती केली को इन-सैंपल मापे गए एज पर आधारित करना है। सिर्फ आउट-ऑफ-सैंपल एस्टिमेट लें, वॉक-फॉरवर्ड पर, कमीशन के बाद। फॉर्मूला में जाने वाला ओवरस्टेटेड एज बाहर आने वाले ओवरस्टेटेड बेट का मतलब है।
रेसिपी: इसे कैसे लागू करें
- एज को ईमानदारी से एस्टिमेट करें। आउट-ऑफ-सैंपल, वॉक-फॉरवर्ड पर, कमीशन और स्लिपेज के बाद। यह सबसे महत्वपूर्ण स्टेप है — कचरा अंदर जाने पर तबाही बाहर आती है।
- फुल केली कैलकुलेट करें। डिस्क्रीट परिणामों के लिए बाइनरी या रिटर्न के लिए कंटीन्युअस ।
- एक फ्रैक्शन लें। डिफॉल्ट रूप से फुल केली का –। एज जितना कम रोबस्ट हो, मल्टीप्लायर उतना छोटा।
- पोर्टफोलियो के लिए, मैट्रिक्स फॉर्म में कैलकुलेट करें। कोवेरियंस श्रिंकेज के साथ , फिर वही फ्रैक्शनल मल्टीप्लायर।
- हार्ड कैप्स सेट करें। प्रति पोजीशन मैक्सिमम, मैक्सिमम लीवरेज, एक ड्रॉडाउन लिमिट — बाकी सब के ऊपर।
- फिर से कैलकुलेट करें। जैसे-जैसे एस्टिमेट अपडेट होते हैं, अनिश्चितता बढ़ने और एज घटने पर फ्रैक्शन को घटाएं।
कोड
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% संभावना। लगभग किसी के लिए भी उपयुक्त नहीं।
- अस्थिर एज के साथ केली। अगर एज घटता है, तो फॉर्मूला व्यवस्थित रूप से बेट को ओवरस्टेट करता है।
- उद्देश्यों को मिला देना। केली पूंजी की ज्यामितीय ग्रोथ को अधिकतम करता है — न कि शार्प, न मुनाफे में बने रहने की प्रायिकता, और न ही आराम। अगर आपके लिए एक स्मूथ कर्व ज़्यादा मायने रखता है, तो जानबूझकर फ्रैक्शनल केली बेट करें।
निष्कर्ष
केली क्राइटेरियन हर रणनीति के केंद्रीय सवाल — कितना बेट किया जाए — का जवाब एक ऐसे फॉर्मूला से देता है जो दीर्घकालिक ज्यामितीय ग्रोथ को अधिकतम करता है: बेट्स के लिए और रिटर्न के लिए , और पोर्टफोलियो के लिए — ।
लेकिन फुल केली ग्रोथ के लिए गणितीय ऑप्टिमम है, सर्वाइवल के लिए नहीं। फ्रैक्शनल केली (–) कई गुना कम वोलैटिलिटी और ड्रॉडाउन के साथ अधिकांश ग्रोथ को कैप्चर करता है। तो रणनीतियों के लिए केली चुनने के सवाल का व्यावहारिक जवाब यह है: फुल केली को ईमानदारी से कैलकुलेट करें — लेकिन उसका एक फ्रैक्शन बेट करें, हार्ड रिस्क लिमिट्स के साथ।
संबंधित सामग्री:
Authors
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.