קריטריון קלי גודל פוזיציה מדוד
קריטריון קלי קובע את גודל ההימור מהיתרון. בדקנו עשר שנים של תשואות יומיות במניות: קלי מלא, משיכה וחצי קלי בפועל. התוצאות מראות שקלי מלא בלתי-ישים, מה שמוביל לתובנות מעשיות לסוחרים.
קריטריון קלי הוא נוסחה לגודל ההימור. מזינים לה הסתברות לזכייה, גודל הזכייה וגודל ההפסד, והיא מחזירה את החלק מההון שממקסם את קצב הצמיחה ארוך הטווח של העושר. ג'ון קלי פרסם אותה במעבדות בל ב-1956 כתוצאה מתורת המידע, ומהמרים וסוחרים אימצו אותה לאחר מכן. דף זה מסביר את הנוסחה מעקרונות ראשונים, ואז מודד מה היא קובעת על עשר שנים של תשואות יומיות אמיתיות של מניות, שם הקביעה מתבררת כבלתי-אפשרית ליישום.
מה קריטריון קלי אומר בפועל
ניקח הימור חוזר שזוכה בחלק g מהסכום שהימרו עליו בהסתברות p, ומפסיד חלק l מהסכום שהימרו עליו בהסתברות q, כאשר 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 דולר.
- הימרו על כל הקופה בכל הטלה. עץ בודד מסיים את הרצף לצמיתות, לא משנה מה היה היתרון.
עלות הנסיעה הלוך-חזור של 4% בהימור של 20% היא המחיר של הרכבה של קופה תנודתית, ומטבע של 60/40 מכסה אותה פעמים רבות לאורך רצף ארוך. בהימור של 40% עלות הנסיעה הלוך-חזור היא 16%, והמטבע כבר לא מכסה אותה: קצב הצמיחה בכפול חלק קלי נוחת בערך באפס. מעבר לנקודה זו, הימור עם יתרון אמיתי ומאומת לא מגדל דבר כלל, וזוהי העובדה השימושית ביותר שהנוסחה נושאת.
מה הנוסחה מבקשת בהימור יומי על מניה
כעת נכוון את אותה נוסחה לשוק. נתייחס ליום מסחר אחד במניה אחת כחזרה אחת של ההימור: הסתברות הזכייה היא חלק הימים שנסגרו בעלייה, גודל הזכייה הוא התנועה היומית הממוצעת בעלייה, וגודל ההפסד הוא התנועה היומית הממוצעת בירידה. עשר שנים קלנדריות מלאות של שערי סגירה יומיים, 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קראו את שלוש העמודות הראשונות והיתרון נראה זעיר. שיעורי הזכייה מתרכזים קרוב להטלת מטבע, והיום העולה הממוצע והיום היורד הממוצע קרובים בגודלם עבור כל שם בפאנל. SPY נסגר גבוה יותר ב-55.3% מהמושבים שלו, כשהוא מרוויח 0.71% ביום עלייה ממוצע לעומת 0.76% ביום ירידה ממוצע.
העמודה האחרונה היא המקום שבו הצרות מתחילות. התשומות הקטנות והכמעט מאוזנות האלה יושבות במכנים של הנוסחה, ומכנים קטנים מייצרים תשובות גדולות. החלק שהנוסחה מחזירה עבור SPY הוא 10.1 כפול הון, והנמוך מבין 6 השמות עדיין נוחת ב-2 כפול. קלי מלא על הימור יומי במניות אינו אחוז מהחשבון. זוהי דרישה למינוף שאף ברוקר לא מעניק ואף חשבון לא שורד.
צורת תמורת התמורה
זו התיאוריה. הפאנל הבא הוא הניסוי. ניקח את התשואות היומיות בפועל של עוקב S&P 500 על פני אותן עשר שנים, נקנה כל תשואה יומית בגודל הימור קבוע, ונרכיב את התוצאה. גודל הימור של 1.0x הוא המדד ללא מינוף. גודל הימור של 3.0x מתחייב לשלושה דולר על כל דולר הון, בכל יום, עם איזון מחדש יומי. כל שורה היא מסלול אחד מלא של עשר שנים, עם העושר הסופי שלה והנפילה העמוקה ביותר משיא לשפל שחוותה לאורך הדרך.
ה-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ב-0.5x המסלול הסתיים ב-1.92 כפול ההון ההתחלתי שלו, עם נפילה גרועה ביותר של 18.2% משיא קודם. ב-5x, אותן תשואות יומיות ואותו עשור, המסלול הסתיים ב-14.35 כפול, עם נפילה גרועה ביותר של 94.5%.
שתי העמודות נעות בצורה שונה, וזהו הלקח כולו של קלי חלקי. העושר הסופי עולה עם גודל ההימור לזמן מה, משתטח, ואז פונה מטה כשהגרר מהרכבת התנודתיות גובר על החשיפה הנוספת. לעמודת המשיכה אין נקודת מפנה כזו. היא עולה בכל צעד על פני 8 השורות, והיא עולה מהר יותר ממה שעמודת העושר עלתה אי פעם. מחצית מהצמיחה של ההימור האופטימלי זמינה במחצית מגודל ההימור האופטימלי, בחלק קטן מהכאב. אסימטריה זו היא הטיעון להימור בפחות מ-f*, וזו הסיבה שקיים המוסכמה של חצי קלי בכלל.
האומדן הוא החלק החלש, לא הנוסחה
הנוסחה מדויקת עבור הימור שהסיכויים שלו ידועים. בקזינו הסיכויים מודפסים. בשוק הם מוערכים מההיסטוריה, והאומדן מתנודד. הנה אותו חישוב כמו בפאנל הראשון, המבוצע בנפרד על כל אחת מעשר השנים הקלנדריות עבור עוקב מדד יחיד.
ה-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כל שורה היא אומדן של אותו גודל לא ידוע, הבנוי מכ-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% לעסקה?
לא. כלל אחוז קבוע מתעלם מהסיכויים לחלוטין ומיישם את אותו מספר על כל מצב. קלי משנה את גודל ההימור עם היתרון הנמדד, מה שהופך אותו למגיב יותר כאשר היתרון ידוע ושביר יותר כאשר היתרון מניחש.
כל נתון למעלה מגיע משאילתה שמורה שאתם יכולים לפתוח, לערוך ולהריץ שוב. החליפו את הסמלים, את החלון או את רשת גודלי ההימור ומדדו את תמורת התמורה בעצמכם בטרמינל סטרסמור.