Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

केली मानदंड पोजीशन साइज़िंग मापा गया

केली मानदंड आपकी बढ़त से दांव का आकार निर्धारित करता है। दस वर्षों के दैनिक शेयर रिटर्न देखें कि पूर्ण केली, ड्रॉडाउन और आधे केली व्यवहार में क्या संकेत देते हैं।

केली मानदंड दांव के आकार का एक सूत्र है। इसमें जीतने की संभावना, जीत का आकार और हार का आकार डालें, और यह पूंजी का वह अंश लौटाता है जो धन की दीर्घकालिक वृद्धि दर को अधिकतम करता है। जॉन केली ने इसे 1956 में बेल लैब्स में एक सूचना-सिद्धांत परिणाम के रूप में प्रकाशित किया, और बाद में जुआरी और व्यापारियों ने इसे अपनाया। यह पृष्ठ सूत्र को मूल सिद्धांतों से समझाता है, फिर दस वर्षों के वास्तविक दैनिक शेयर रिटर्न पर मापता है कि यह क्या निर्धारित करता है, जहां निर्धारण अव्यावहारिक साबित होता है।

केली मानदंड वास्तव में क्या कहता है

एक बार-बार होने वाले दांव पर विचार करें जो संभावना p के साथ दांव की राशि का एक अंश g जीतता है, और संभावना q के साथ दांव की राशि का एक अंश l हारता है, जहां q एक घटा p है। प्रत्येक पुनरावृत्ति पर लगाने के लिए वृद्धि-अनुकूलित पूंजी अंश है:

f* = p / l - q / g

क्लासिक बराबर-धन मामले में, जहां जीत वही देती है जो हार खर्च करती है, g और l दोनों 1 के बराबर होते हैं और सूत्र f* = p - q में सिमट जाता है। यह अंतर ही बढ़त है। एक दांव जो बराबर धन पर 60% बार जीतता है, उसमें 20 अंक की बढ़त होती है, और केली उस पर बैंकरोल का 20% दांव लगाता है।

व्युत्पत्ति धन के अपेक्षित लघुगणक पर लागू कैलकुलस का एक एकल चरण है। प्रति दांव धन के औसत लॉग को अधिकतम करना, लंबे अनुक्रम पर चक्रवृद्धि वृद्धि दर को अधिकतम करने के बराबर है, और वह अंश जो इसे प्राप्त करता है वह ऊपर दिया गया है। इससे दो गुण निकलते हैं। केली कभी भी पूरा बैंकरोल ऐसे दांव पर नहीं लगाता जो सब कुछ खो सकता है, क्योंकि शून्य का लघुगणक ऋणात्मक अनंत है। और f के अलावा कोई भी निश्चित अंश, पर्याप्त लंबे समय तक दोहराए जाने पर, f की तुलना में धीमी गति से चक्रवृद्धि होता है।

एक सिक्का उछाल जिसे आप हाथ से जांच सकते हैं

इस खंड के आंकड़े काल्पनिक हैं, जिन्हें अंकगणित को दृश्यमान बनाने के लिए चुना गया है। एक सिक्का लें जो 60% बार चित आता है और बराबर धन देता है, जिसमें शुरुआती बैंकरोल $1,000 है।

  • हर उछाल पर बैंकरोल का 20% दांव लगाएं। जीत $1,000 को $1,200 तक ले जाती है; हार इसे $800 तक ले जाती है। एक जीत और एक हार, किसी भी क्रम में, $960 बचता है।
  • हर उछाल पर बैंकरोल का 40% दांव लगाएं। वही जीत-फिर-हार जोड़ी $1,000 से $1,400 से $840 तक जाती है।
  • हर उछाल पर पूरा बैंकरोल दांव लगाएं। एक भी पट अनुक्रम को स्थायी रूप से समाप्त कर देता है, चाहे बढ़त कुछ भी हो।

20% दांव पर वह 4% राउंड-ट्रिप लागत एक अस्थिर बैंकरोल को चक्रवृद्धि करने की कीमत है, और एक 60/40 सिक्का इसे लंबे अनुक्रम में कई बार कवर करता है। 40% दांव पर राउंड-ट्रिप लागत 16% है, और सिक्का इसे कवर नहीं करता: केली अंश के दोगुने पर वृद्धि दर लगभग शून्य पर पहुंच जाती है। उस बिंदु से आगे, एक वास्तविक, सत्यापित बढ़त वाला दांव कुछ भी नहीं बढ़ाता है, जो सूत्र द्वारा दिया गया सबसे उपयोगी एकल तथ्य है।

दैनिक शेयर दांव पर सूत्र क्या मांगता है

अब उसी सूत्र को बाजार पर लागू करें। एक स्टॉक में एक ट्रेडिंग दिवस को दांव की एक पुनरावृत्ति मानें: जीतने की संभावना उन दिनों का हिस्सा है जो बढ़त पर बंद हुए, जीत का आकार औसत बढ़त-दिवस की चाल है, और हार का आकार औसत गिरावट-दिवस की चाल है। 2016 से 2025 तक दस पूर्ण कैलेंडर वर्षों के दैनिक बंद, छह परिचित नामों पर:

क्वेरी2016 से 2025 तक दैनिक बंद से केली इनपुट: जीत दर, औसत लाभ, औसत हानि, और सूत्र द्वारा लौटाया गया अंश
हर आंकड़े के पीछे का पूरा SQL
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
           argMax(toFloat64(close), window_start) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'JNJ', 'MSFT', 'NVDA', 'TSLA')
      AND window_start >= '2016-01-01 00:00:00'
      AND window_start <  '2026-01-01 00:00:00'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, dt
),
steps AS (
    SELECT ticker, dt, c,
           lagInFrame(c) OVER (PARTITION BY ticker ORDER BY dt
                               ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev
    FROM daily
),
rets AS (
    SELECT ticker, c / prev - 1 AS ret
    FROM steps
    WHERE prev > 0 AND c != prev
)
SELECT ticker,
       round(100 * countIf(ret > 0) / count(), 1) AS win_rate_pct,
       round(100 * avgIf(ret, ret > 0), 2) AS avg_gain_pct,
       round(100 * abs(avgIf(ret, ret < 0)), 2) AS avg_loss_pct,
       round(countIf(ret > 0) / count() / abs(avgIf(ret, ret < 0))
             - countIf(ret < 0) / count() / avgIf(ret, ret > 0), 1) AS full_kelly_x
FROM rets
GROUP BY ticker
HAVING countIf(ret > 0) > 0 AND countIf(ret < 0) > 0
ORDER BY full_kelly_x DESC
Run this yourself

पहले तीन कॉलम पढ़ें और बढ़त बहुत छोटी दिखती है। जीत दरें सिक्का उछाल के करीब केंद्रित हैं, और पैनल में प्रत्येक नाम के लिए औसत बढ़त वाला दिन और औसत गिरावट वाला दिन आकार में करीब हैं। SPY अपने 55.3% सत्रों में ऊंचा बंद हुआ, एक औसत बढ़त वाले दिन पर 0.71% लाभ हुआ, जबकि औसत गिरावट वाले दिन पर 0.76% हानि हुई।

अंतिम कॉलम वह जगह है जहां से परेशानी शुरू होती है। वे छोटे, लगभग संतुलित इनपुट सूत्र के हर में बैठते हैं, और छोटे हर बड़े उत्तर उत्पन्न करते हैं। SPY के लिए सूत्र जो अंश लौटाता है वह 10.1 गुना पूंजी है, और 6 नामों में से सबसे कम अभी भी 2 गुना पर है। दैनिक इक्विटी दांव पर पूर्ण केली खाते का प्रतिशत नहीं है। यह उत्तोलन की एक मांग है जो कोई ब्रोकर नहीं देता और कोई खाता जीवित नहीं रह सकता।

व्यापार-बंद का आकार

यह सिद्धांत है। अगला पैनल प्रयोग है। उसी दस वर्षों में S&P 500 ट्रैकर के वास्तविक दैनिक रिटर्न लें, प्रत्येक दिन के रिटर्न को एक निश्चित दांव आकार से गुणा करें, और परिणाम को चक्रवृद्धि करें। 1.0x का दांव आकार बिना उत्तोलन वाला सूचकांक है। 3.0x का दांव आकार पूंजी के प्रत्येक डॉलर के लिए तीन डॉलर प्रतिबद्ध करता है, हर दिन, दैनिक पुनर्संतुलन के साथ। प्रत्येक पंक्ति एक पूर्ण दस-वर्षीय पथ है, जिसमें उसकी अंतिम संपत्ति और रास्ते में सबसे गहरी चोटी-से-गर्त गिरावट है।

क्वेरीS&P 500 के एक दशक के दैनिक रिटर्न आठ निश्चित दांव आकारों पर संयोजित: अंतिम संपत्ति और सबसे खराब ड्रॉडाउन
हर आंकड़े के पीछे का पूरा SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
           argMax(toFloat64(close), window_start) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2016-01-01 00:00:00'
      AND window_start <  '2026-01-01 00:00:00'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY dt
),
steps AS (
    SELECT dt, c,
           lagInFrame(c) OVER (ORDER BY dt ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev
    FROM daily
),
rets AS (
    SELECT dt, c / prev - 1 AS ret
    FROM steps
    WHERE prev > 0
),
sizes AS (
    SELECT arrayJoin([0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0]) AS bet
),
paths AS (
    SELECT bet, dt,
           exp(sum(log(greatest(1 + bet * ret, 0.0001)))
               OVER (PARTITION BY bet ORDER BY dt
                     ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)) AS equity
    FROM rets CROSS JOIN sizes
),
peaks AS (
    SELECT bet, dt, equity,
           max(equity) OVER (PARTITION BY bet ORDER BY dt
                             ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS peak
    FROM paths
)
SELECT concat(toString(bet), 'x') AS bet_size,
       round(argMax(equity, dt), 2) AS ending_multiple,
       round(100 * max(1 - equity / peak), 1) AS max_drawdown_pct
FROM peaks
GROUP BY bet
ORDER BY bet
Run this yourself

0.5x पर पथ अपनी शुरुआती पूंजी के 1.92 गुना पर समाप्त हुआ, जिसमें पिछली ऊंचाई से 18.2% की सबसे बुरी गिरावट थी। 5x पर, उसी दैनिक रिटर्न और उसी दशक में, पथ 14.35 गुना पर समाप्त हुआ, जिसमें 94.5% की सबसे बुरी गिरावट थी।

दो कॉलम अलग-अलग चलते हैं, और यही आंशिक केली का पूरा सबक है। अंतिम संपत्ति कुछ समय के लिए दांव आकार के साथ बढ़ती है, फिर सपाट हो जाती है, और फिर नीचे मुड़ जाती है क्योंकि अस्थिरता को चक्रवृद्धि करने का खिंचाव अतिरिक्त जोखिम से आगे निकल जाता है। ड्रॉडाउन कॉलम में ऐसा कोई मोड़ बिंदु नहीं है। यह 8 पंक्तियों में हर कदम पर चढ़ता है, और यह संपत्ति कॉलम की तुलना में तेजी से चढ़ता है। अनुकूलित दांव की आधी वृद्धि, अनुकूलित दांव के आधे आकार पर, पीड़ा के एक छोटे से अंश पर उपलब्ध है। यह विषमता f* से कम दांव लगाने का तर्क है, और यही कारण है कि आधा-केली परंपरा बिल्कुल मौजूद है।

अनुमान कमजोर हिस्सा है, सूत्र नहीं

सूत्र उस दांव के लिए सटीक है जिसकी संभावनाएं ज्ञात हैं। कैसीनो में संभावनाएं मुद्रित होती हैं। बाजार में उनका अनुमान इतिहास से लगाया जाता है, और अनुमान डगमगाता है। यहां पहले पैनल के समान गणना है, जो एक एकल इंडेक्स ट्रैकर के लिए दस कैलेंडर वर्षों में से प्रत्येक पर अलग-अलग चलाई गई है।

क्वेरीS&P 500 ट्रैकर पर वर्ष-दर-वर्ष, 2016 से 2025 तक वही केली गणना
हर आंकड़े के पीछे का पूरा SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
           argMax(toFloat64(close), window_start) AS c
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2016-01-01 00:00:00'
      AND window_start <  '2026-01-01 00:00:00'
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY dt
),
steps AS (
    SELECT dt, c,
           lagInFrame(c) OVER (ORDER BY dt ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev
    FROM daily
),
rets AS (
    SELECT dt, c / prev - 1 AS ret
    FROM steps
    WHERE prev > 0 AND c != prev
)
SELECT toString(toYear(dt)) AS year,
       round(100 * countIf(ret > 0) / count(), 1) AS win_rate_pct,
       round(100 * avgIf(ret, ret > 0), 2) AS avg_gain_pct,
       round(100 * abs(avgIf(ret, ret < 0)), 2) AS avg_loss_pct,
       round(countIf(ret > 0) / count() / abs(avgIf(ret, ret < 0))
             - countIf(ret < 0) / count() / avgIf(ret, ret > 0), 1) AS full_kelly_x
FROM rets
GROUP BY year
HAVING countIf(ret > 0) > 0 AND countIf(ret < 0) > 0
ORDER BY year
Run this yourself

प्रत्येक पंक्ति एक ही अज्ञात मात्रा का अनुमान है, जो लगभग 250 अवलोकनों से बनाया गया है। वर्ष 2016 ने 13.7 लौटाया, 53.8% की जीत दर पर। वर्ष 2025 ने 12.3 लौटाया, 57.8% की जीत दर पर। चार्ट दिखाता है कि एक संख्या के 10 रीडिंग कितनी दूर हो सकती हैं जब प्रत्येक एक ही वर्ष से लिया गया हो।

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

जहां मॉडल बाजार का वर्णन करना बंद कर देता है

केली एक ऐसे दांव को मानता है जिसे आप निश्चित, ज्ञात संभावनाओं के साथ दोहरा सकते हैं, और परिणाम जो एक पुनरावृत्ति से दूसरी में स्वतंत्र हैं। एक बाजार यह सब तोड़ता है। संभावनाओं का अनुमान लगाया जाता है और समय के साथ बदलता है। दैनिक रिटर्न क्लस्टर होते हैं: शांत अवधि शांत अवधियों का अनुसरण करती है, और हिंसक दिन समूहों में आते हैं, जो ड्रॉडाउन को स्वतंत्रता धारणा की भविष्यवाणी से परे खींचते हैं। प्रत्येक दिन के अंत में स्थितियां निपटाई नहीं जाती हैं, अंतराल उस कीमत को छोड़ देते हैं जहां दांव बंद होता, और मार्जिन कॉल ब्रोकर के कार्यक्रम पर आते हैं न कि मॉडल के कार्यक्रम पर।

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

अक्सर पूछे जाने वाले प्रश्न

केली मानदंड सूत्र क्या है?

एक दांव के लिए जो दांव का एक अंश g संभावना p के साथ जीतता है और एक अंश l संभावना q के साथ हारता है, वृद्धि-अनुकूलित पूंजी अंश f = p / l - q / g है। बराबर-धन मामले में यह f = p - q, यानी बढ़त ही, में सरल हो जाता है।

व्यापारी पूर्ण केली के बजाय आधा केली का उपयोग क्यों करते हैं?

वृद्धि इष्टतम के पास लगभग सपाट होती है जबकि जोखिम इसके आगे बढ़ता रहता है, इसलिए दांव को आधा करने से दीर्घकालिक वृद्धि की एक मामूली राशि का त्याग होता है और ड्रॉडाउन का एक बड़ा हिस्सा हट जाता है। अनुमान त्रुटि तर्क को बढ़ा देती है: अधिक बताई गई बढ़त से दोगुना दांव उस बिंदु के पास होता है जहां वृद्धि रुक जाती है।

क्या केली मानदंड शेयरों के लिए काम करता है?

यह अंकगणित के रूप में लागू होता है, और निश्चित ज्ञात संभावनाओं और स्वतंत्र परिणामों की इसकी धारणाएं बाजारों में लागू नहीं होती हैं। दैनिक इक्विटी रिटर्न पर भोलेपन से लागू करने पर यह उत्तोलन की मांग करता है जो किसी भी खाते की क्षमता से कहीं अधिक है, जैसा कि ऊपर पहला पैनल दिखाता है।

यदि आप केली अंश से अधिक दांव लगाते हैं तो क्या होता है?

दीर्घकालिक वृद्धि दर गिर जाती है। लगभग केली अंश के दोगुने पर यह लगभग शून्य तक पहुंच जाती है, और उससे आगे, एक वास्तविक बढ़त वाला दांव समय के साथ पूंजी को सिकोड़ता है जबकि इसके ड्रॉडाउन गहरे होते रहते हैं।

क्या केली मानदंड प्रति ट्रेड 1% या 2% जोखिम उठाने के समान है?

नहीं। एक निश्चित-प्रतिशत नियम संभावनाओं को पूरी तरह से अनदेखा करता है और प्रत्येक सेटअप पर समान संख्या लागू करता है। केली मापी गई बढ़त के साथ दांव को स्केल करता है, जो इसे अधिक उत्तरदायी बनाता है जब बढ़त ज्ञात होती है और अधिक नाजुक जब बढ़त का अनुमान लगाया जाता है।


ऊपर दिया गया प्रत्येक आंकड़ा एक संग्रहीत क्वेरी से आता है जिसे आप खोल सकते हैं, संपादित कर सकते हैं और फिर से चला सकते हैं। टिकर, विंडो या दांव-आकार ग्रिड को बदलें और स्ट्रासमोर टर्मिनल पर स्वयं व्यापार-बंद को मापें।