Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-08-01

केली निकष पोझिशन साईझिंग मोजमाप

केली निकष तुमच्या एज नुसार बेटचा आकार ठरवतो. पूर्ण केली, ड्रॉडाउन आणि हाफ केली प्रत्यक्षात काय सूचित करतात हे दहा वर्षांच्या दैनिक स्टॉक रिटर्न्सवरून पहा.

केली निकष हा बेटच्या आकारासाठी एक सूत्र आहे. जिंकण्याची संभाव्यता, विजयाचा आकार आणि पराभवाचा आकार यात टाका, आणि ते संपत्तीच्या वाढीचा दर वाढवणारे भांडवलाचे प्रमाण देईल. जॉन केली यांनी 1956 मध्ये बेल लॅबमध्ये माहिती-सिद्धांताचा परिणाम म्हणून हे प्रकाशित केले आणि त्यानंतर जुगारी आणि व्यापाऱ्यांनी ते स्वीकारले. हे पान पहिल्या तत्त्वांपासून सूत्र स्पष्ट करते, नंतर दहा वर्षांच्या वास्तविक दैनंदिन स्टॉक रिटर्न्सवर ते काय लिहून देते याचे मोजमाप करते, जिथे ते लिहून दिलेले अव्यवहार्य ठरते.

केली निकष प्रत्यक्षात काय सांगतो

एक पुनरावृत्ती होणारी पैज घ्या जी p संभाव्यतेने स्टेक केलेल्या रकमेचा g अंश जिंकते आणि q संभाव्यतेने स्टेक केलेल्या रकमेचा l अंश गमावते, जिथे q हे p वजा एक आहे. प्रत्येक पुनरावृत्तीवर भांडवलाचे वाढीसाठी इष्टतम प्रमाण आहे:

f* = p / l - q / g

क्लासिक इव्हन-मनी केसमध्ये, जिथे विजय पराभवाच्या खर्चाएवढा असतो, g आणि l दोन्ही 1 च्या बरोबर असतात आणि सूत्र f* = p - q पर्यंत कोसळते. हा फरक म्हणजे एज (edge) स्वतःच आहे. इव्हन मनीवर 60% वेळा जिंकणारी पैज 20-पॉइंट एज (edge) धारण करते आणि केली 20% बँक रोलवर पैज लावते.

हे गणित अपेक्षित संपत्तीच्या लॉगरिथमवर लागू केलेल्या कॅल्क्युलसच्या एका पायरीतून येते. प्रति बेट संपत्तीच्या सरासरी लॉगचे अधिकतमकरण करणे हे दीर्घ क्रमातील चक्रवाढ वाढीच्या दराचे अधिकतमकरण करण्यासारखेच आहे आणि ते साध्य करणारे प्रमाण वरीलप्रमाणे आहे. त्यातून दोन गुणधर्म बाहेर पडतात. केली कधीही संपूर्ण बँक रोल अशा पैजेवर लावत नाही जी सर्व काही गमावू शकते, कारण शून्याचा लॉगरिथम ऋण अनंत आहे. आणि f व्यतिरिक्त कोणतेही निश्चित प्रमाण, पुरेसा वेळ पुनरावृत्ती केल्यास, f पेक्षा हळू चक्रवाढ होते.

हाताने तपासता येण्याजोगा नाणेफेक

या विभागातील आकडे काल्पनिक आहेत, जे अंकगणित दृश्यमान करण्यासाठी निवडले आहेत. 60% वेळा हेड येणारे आणि इव्हन मनी देणारे नाणे घ्या, ज्याचा सुरुवातीचा बँक रोल $1,000 आहे.

  • प्रत्येक फेकीवर बँक रोलच्या 20% पैज लावा. विजयाने $1,000 ते $1,200 होतात; पराभवाने ते $800 पर्यंत खाली येते. एक विजय आणि एक पराभव, कोणत्याही क्रमाने, $960 शिल्लक राहतात.
  • प्रत्येक फेकीवर बँक रोलच्या 40% पैज लावा. त्याचप्रमाणे विजय-नंतर-पराभव जोडी $1,000 ते $1,400 ते $840 पर्यंत जाते.
  • प्रत्येक फेकीवर संपूर्ण बँक रोल लावा. एकच टेल (tail) आल्यास, एज (edge) काहीही असो, क्रम कायमचा संपतो.

20% पैज लावण्यावर 4% चा हा राउंड-ट्रिप खर्च अस्थिर बँक रोलच्या चक्रवाढीची किंमत आहे, आणि 60/40 नाणे दीर्घ क्रमात अनेक वेळा ते कव्हर करते. 40% पैज लावण्यावर राउंड-ट्रिप खर्च 16% आहे आणि नाणे ते कव्हर करत नाही: केलीच्या दुप्पट प्रमाणावरील वाढीचा दर अंदाजे शून्य होतो. त्या बिंदूपलीकडे खरी, सत्यापित एज (edge) असलेली पैज काहीही वाढवत नाही, जे सूत्र घेऊन येणारे सर्वात उपयुक्त एकल तथ्य आहे.

दैनंदिन स्टॉक बेटवर सूत्र काय विचारते

आता तेच सूत्र बाजारात लावा. एका स्टॉक मधील एक ट्रेडिंग दिवस एका पैजेची पुनरावृत्ती म्हणून घ्या: विजयाची संभाव्यता म्हणजे वर बंद झालेल्या दिवसांची टक्केवारी, विजयाचा आकार म्हणजे सरासरी वरच्या दिवसाची हालचाल आणि पराभवाचा आकार म्हणजे सरासरी खालच्या दिवसाची हालचाल. दहा पूर्ण कॅलेंडर वर्षांचे दैनंदिन क्लोजिंग, 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

पहिले तीन स्तंभ वाचा आणि एज (edge) खूपच लहान दिसतो. विजयाचे दर नाणेफेकीच्या जवळ जमा होतात आणि सरासरी वरचा दिवस आणि सरासरी खालचा दिवस प्रत्येक नावासाठी आकाराने जवळजवळ सारखेच असतात. 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 ट्रॅकरवर केली कॅल्क्युलेशन, वर्षानुवर्षे, २०१६ ते २०२५ पर्यंत
प्रत्येक आकड्यामागील अचूक 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 मध्ये 53.8% च्या विजयाच्या दरावर 13.7 रिटर्न मिळाले. वर्ष 2025 मध्ये 57.8% च्या विजयाच्या दरावर 12.3 रिटर्न मिळाले. चार्ट दर्शवितो की एका वर्षातून काढलेल्या एका संख्येच्या 10 रीडिंग किती दूर असू शकतात.

हे विचलन सूत्राच्या कोणत्याही सुधारणेपेक्षा अधिक महत्त्वाचे आहे. तुमचा एज (edge) दुप्पट वाढवल्यास सूत्र अंदाजे दुप्पट बेट आकार परत देते, जे तुम्हाला वाढीच्या नकारात्मक बिंदूवर किंवा त्यापलीकडे ठेवते. ते कमी लेखल्यास तुम्ही वाढ गमावता जी तुम्ही जोखीम न घेता चक्रवाढ करू शकला असता. दोन त्रुटी सममितीय नाहीत आणि विषमता बाजू स्वस्त आहे ती लहान बाजू. केली वापरणारे व्यावसायिक सहसा अर्धे किंवा पाव भाग स्टेक करतात आणि सूत्राला लक्ष्यऐवजी मर्यादा मानतात.

मॉडेल बाजाराचे वर्णन करणे कोठे थांबवते

केली गृहीत धरते की तुम्ही निश्चित, ज्ञात ऑड्ससह पुनरावृत्ती करू शकता आणि प्रत्येक पुनरावृत्तीपासून स्वतंत्र परिणाम मिळवू शकता. बाजार या सर्वांना तोडतो. ऑड्स अंदाजित केले जातात आणि वेळेनुसार बदलतात. दैनिक रिटर्न्स एकत्र येतात: शांत काळानंतर शांत काळ येतो आणि हिंसक दिवस गटांमध्ये येतात, जे स्वतंत्रतेच्या गृहीतकापेक्षा जास्त ड्रॉडाउन वाढवतात. पोझिशन्स प्रत्येक दिवसाच्या शेवटी सेटल केल्या जात नाहीत, गॅप्स त्या किमतीच्या पलीकडे जातात जिथे बेट बंद झाले असते आणि मार्जिन कॉल्स मॉडेलच्या वेळापत्रकानुसार नव्हे तर ब्रोकरच्या वेळापत्रकानुसार येतात.

सूत्र सीमा म्हणून आपले महत्त्व अजूनही कमावते. ते एका ओळीत सांगते की एक बेट आकार आहे ज्याच्या पलीकडे अधिक आत्मविश्वास कमी संपत्ती निर्माण करतो आणि ते प्रमाण निश्चित करते जे व्यापारी किमान मोजण्याचा प्रयत्न करू शकतात. म्हणूनच समान तर्क विविधीकरणाकडे निर्देशित करतो: अनेक अंशतः स्वतंत्र बेट्स एका बेटापेक्षा एकूण जोखीम बजेट अधिक कार्यक्षमतेने सामायिक करतात, जे concentration risk च्या खालील अंकगणित आहे. आणि ठराविक वेळापत्रकानुसार पैसे जोडणाऱ्या गुंतवणूकदारासाठी, पोझिशन-साईझिंग प्रश्न वेळापत्रकानेच सोडवला जातो, जो dollar-cost averaging चा मामला आहे.

वारंवार विचारले जाणारे प्रश्न

केली निकष सूत्र काय आहे?

p संभाव्यतेने स्टेकचा g अंश जिंकणाऱ्या आणि q संभाव्यतेने l अंश गमावणाऱ्या बेटासाठी, वाढीसाठी इष्टतम भांडवली प्रमाण f = p / l - q / g आहे. इव्हन-मनी केसमध्ये ते f = p - q पर्यंत सोपे होते, जे एज (edge) स्वतःच आहे.

व्यापारी पूर्ण केलीऐवजी हाफ केली का वापरतात?

ऑप्टिममच्या जवळ वाढ जवळजवळ सपाट असते तर जोखीम त्याच्या पलीकडे वाढत राहते, म्हणून बेट अर्धे केल्याने दीर्घकालीन वाढीचा माफक प्रमाणात त्याग होतो आणि ड्रॉडाउनचा मोठा भाग काढून टाकला जातो. अंदाजित त्रुटी युक्तिवाद वाढवते: जास्त अंदाजित एज (edge) मुळे दुप्पट झालेले बेट वाढ थांबण्याच्या बिंदूजवळ असते.

केली निकष स्टॉकसाठी काम करतो का?

ते अंकगणित म्हणून लागू होते आणि निश्चित ज्ञात ऑड्स आणि स्वतंत्र परिणामांची त्याची गृहीतके बाजारात टिकत नाहीत. दैनंदिन इक्विटी रिटर्न्सवर निष्काळजीपणे लागू केल्यास ते लीव्हरेज मागते जे कोणत्याही खात्यापेक्षा जास्त आहे, जसे की वरील पहिले पॅनेल दर्शवते.

जर तुम्ही केली प्रमाणापेक्षा जास्त पैज लावली तर काय होते?

दीर्घकालीन वाढीचा दर कमी होतो. केलीच्या दुप्पट प्रमाणावर तो सुमारे शून्य होतो आणि त्यापलीकडे वास्तविक एज (edge) असलेल्या बेटाने कालांतराने भांडवल कमी होते तर त्याचे ड्रॉडाउन वाढत राहतात.

केली निकष प्रति ट्रेड 1% किंवा 2% जोखीम घेण्यासारखेच आहे का?

नाही. निश्चित-टक्केवारी नियम संपूर्णपणे ऑड्सकडे दुर्लक्ष करतो आणि प्रत्येक सेटअपवर समान संख्या लागू करतो. केली मोजलेल्या एज (edge) नुसार स्टेक स्केल करते, ज्यामुळे एज (edge) ज्ञात असताना ते अधिक प्रतिसाद देते आणि अंदाज लावल्यास ते अधिक नाजूक होते.


वरील प्रत्येक आकृती एका संग्रहित क्वेरीमधून येते जी तुम्ही उघडू शकता, संपादित करू शकता आणि पुन्हा चालवू शकता. टिकर्स, विंडो किंवा बेट-साईझ ग्रिड स्वॅप करा आणि स्ट्रॅसमोर टर्मिनलवर ट्रेडऑफचे स्वतः मोजमाप करा.