Kelly Kriterium Positionsgröße gemessen
Das Kelly Kriterium setzt die Einsatzhöhe aus Ihrem Vorteil. Sehen Sie, was zehn Jahre tägliche Aktienrenditen über Full Kelly, Drawdown und Half Kelly in der Praxis bedeuten.
Das Kelly-Kriterium ist eine Formel zur Bestimmung der Einsatzhöhe. Man gibt die Gewinnwahrscheinlichkeit, die Höhe eines Gewinns und die Höhe eines Verlusts ein, und die Formel liefert den Anteil des Kapitals, der die langfristige Wachstumsrate des Vermögens maximiert. John Kelly veröffentlichte es 1956 bei den Bell Labs als ein Ergebnis der Informationstheorie, und später übernahmen es Spieler und Händler. Diese Seite leitet die Formel aus ersten Prinzipien her und misst dann, was sie über zehn Jahre mit realen täglichen Aktienrenditen vorschreibt, wobei sich die Vorgabe als nicht praktikabel erweist.
Was das Kelly-Kriterium tatsächlich besagt
Betrachten Sie eine wiederholte Wette, die mit Wahrscheinlichkeit p einen Bruchteil g des Einsatzes gewinnt und mit Wahrscheinlichkeit q einen Bruchteil l des Einsatzes verliert, wobei q gleich eins minus p ist. Der wachstumsoptimale Anteil des Kapitals, der bei jeder Wiederholung eingesetzt wird, ist:
f* = p / l - q / g
Im klassischen Fall mit gleichem Geld, bei dem ein Gewinn genauso viel einbringt, wie ein Verlust kostet, sind g und l beide gleich 1, und die Formel vereinfacht sich zu f* = p - q. Diese Differenz ist der Vorteil selbst. Eine Wette, die bei gleichem Geld in 60 % der Fälle gewinnt, hat einen Vorteil von 20 Punkten, und Kelly setzt 20 % des Guthabens darauf.
Die Herleitung ist ein einziger Schritt der Infinitesimalrechnung, angewandt auf den erwarteten Logarithmus des Vermögens. Die Maximierung des durchschnittlichen Log-Vermögens pro Wette ist gleichbedeutend mit der Maximierung der durchschnittlichen jährlichen Wachstumsrate über eine lange Sequenz, und der Bruchteil, der dies erreicht, ist der oben genannte. Daraus ergeben sich zwei Eigenschaften. Kelly setzt niemals das gesamte Guthaben auf eine Wette, die alles verlieren kann, da der Logarithmus von Null negativ unendlich ist. Und jeder andere feste Bruchteil als f, der lange genug wiederholt wird, wächst langsamer zusammen als f.
Ein Münzwurf, den Sie von Hand überprüfen können
Die Zahlen in diesem Abschnitt sind hypothetisch und so gewählt, dass die Rechnung sichtbar wird. Nehmen Sie eine Münze, die in 60 % der Fälle Kopf zeigt und gleiches Geld auszahlt, mit einem Startguthaben von 1.000 $.
- Setzen Sie bei jedem Wurf 20 % des Guthabens. Ein Gewinn bringt 1.000 $ auf 1.200 $; ein Verlust bringt es auf 800 $. Ein Gewinn und ein Verlust, in beliebiger Reihenfolge, hinterlassen 960 $.
- Setzen Sie bei jedem Wurf 40 % des Guthabens. Das gleiche Paar aus Gewinn und Verlust bringt 1.000 $ auf 1.400 $ auf 840 $.
- Setzen Sie bei jedem Wurf das gesamte Guthaben. Ein einziger Zahl beendet die Sequenz dauerhaft, egal wie groß der Vorteil war.
Diese 4 % Rundreisekosten bei einem Einsatz von 20 % sind der Preis für die Aufzinsung eines volatilen Guthabens, und eine 60/40-Münze deckt dies über eine lange Sequenz hinweg vielfach ab. Bei einem Einsatz von 40 % betragen die Rundreisekosten 16 %, und die Münze deckt sie nicht mehr: Die Wachstumsrate beim doppelten Kelly-Bruchteil liegt bei etwa null. Jenseits dieses Punktes wächst eine Wette mit einem echten, verifizierten Vorteil überhaupt nicht mehr, was die nützlichste einzelne Tatsache ist, die die Formel liefert.
Was die Formel bei einer täglichen Aktienwette verlangt
Richten Sie nun dieselbe Formel auf einen Markt. Behandeln Sie einen Handelstag in einer Aktie als eine Wiederholung der Wette: Die Gewinnwahrscheinlichkeit ist der Anteil der Tage, die im Plus schlossen, die Gewinnhöhe ist die durchschnittliche Bewegung an einem Tag im Plus, und die Verlusthöhe ist die durchschnittliche Bewegung an einem Tag im Minus. Zehn volle Kalenderjahre mit täglichen Schlusskursen, 2016 bis 2025, bei sechs bekannten Namen:
Das exakte SQL hinter jeder Zahl
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 DESCLesen Sie die ersten drei Spalten, und der Vorteil sieht winzig aus. Die Gewinnraten liegen nahe an einem Münzwurf, und der durchschnittliche Tag im Plus und der durchschnittliche Tag im Minus sind in ihrer Größe für jeden Namen in der Tabelle nahe beieinander. SPY schloss an 55.3% seiner Sitzungen höher, mit einem Gewinn von 0.71% an einem durchschnittlichen Tag im Plus gegenüber 0.76% an einem durchschnittlichen Tag im Minus.
Die letzte Spalte ist der Beginn der Probleme. Diese kleinen, nahezu ausgeglichenen Eingaben stehen in den Nennern der Formel, und kleine Nenner ergeben große Antworten. Der Bruchteil, den die Formel für SPY zurückgibt, beträgt 10.1 mal das Kapital, und der niedrigste der 6 Namen liegt immer noch bei 2 mal. Volles Kelly bei einer täglichen Aktienwette ist kein Prozentsatz des Kontos. Es ist eine Forderung nach Hebelwirkung, die kein Broker gewährt und kein Konto überlebt.
Die Form des Zielkonflikts
Das ist die Theorie. Die nächste Tabelle ist das Experiment. Nehmen Sie die tatsächlichen täglichen Renditen des S&P 500 Trackers über denselben Zeitraum von zehn Jahren, skalieren Sie die Rendite jedes Tages mit einer festen Einsatzhöhe und zinsen Sie das Ergebnis auf. Eine Einsatzhöhe von 1,0x ist der ungehebelte Index. Eine Einsatzhöhe von 3,0x setzt jeden Tag drei Dollar für jeden Dollar Kapital ein, täglich neu gewichtet. Jede Zeile ist ein vollständiger Zehn-Jahres-Pfad mit seinem Endvermögen und dem tiefsten Hoch-Tief-Rückgang, den er auf dem Weg erlitten hat.
Das exakte SQL hinter jeder Zahl
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 betBei 0.5x endete der Pfad mit dem 1.92-fachen des Startkapitals, mit einem schlimmsten Rückgang von 18.2% von einem vorherigen Hoch. Bei 5x endete der Pfad mit denselben täglichen Renditen und demselben Jahrzehnt mit dem 14.35-fachen, mit einem schlimmsten Rückgang von 94.5%.
Die beiden Spalten bewegen sich unterschiedlich, und das ist die ganze Lektion des fraktionalen Kelly. Das Endvermögen steigt eine Weile mit der Einsatzhöhe, flacht ab und fällt dann, wenn der Nachteil aus der Aufzinsung der Volatilität das zusätzliche Engagement übersteigt. Die Spalte für den Rückgang hat keinen solchen Wendepunkt. Sie steigt bei jedem Schritt über die 8 Zeilen hinweg an, und sie steigt schneller als die Vermögensspalte es je tat. Die Hälfte des Wachstums der optimalen Wette ist bei der Hälfte der optimalen Einsatzhöhe verfügbar, bei einem kleinen Bruchteil des Schmerzes. Diese Asymmetrie ist das Argument für einen geringeren Einsatz als f*, und sie ist der Grund, warum die Halb-Kelly-Konvention überhaupt existiert.
Die Schätzung ist der schwache Teil, nicht die Formel
Die Formel ist exakt für eine Wette, deren Quoten bekannt sind. In einem Casino sind die Quoten aufgedruckt. In einem Markt werden sie aus der Geschichte geschätzt, und die Schätzung schwankt. Hier ist dieselbe Berechnung wie in der ersten Tabelle, separat für jedes der zehn Kalenderjahre für einen einzelnen Index-Tracker durchgeführt.
Das exakte SQL hinter jeder Zahl
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 yearJede Zeile ist eine Schätzung derselben unbekannten Größe, basierend auf etwa 250 Beobachtungen. Das Jahr 2016 ergab 13.7, bei einer Gewinnrate von 53.8%. Das Jahr 2025 ergab 12.3, bei einer Gewinnrate von 57.8%. Das Diagramm zeigt, wie weit 10 Messungen einer Zahl auseinanderliegen können, wenn jede aus einem einzigen Jahr stammt.
Diese Streuung ist wichtiger als jede Verfeinerung der Formel. Überschätzen Sie Ihren Vorteil um den Faktor zwei, und die Formel gibt ungefähr die doppelte Einsatzhöhe zurück, was Sie an oder über den Punkt bringt, an dem das Wachstum negativ wird. Unterschätzen Sie ihn, und Sie geben Wachstum auf, das Sie hätten aufzinsen können, ohne Ruinrisiko. Die beiden Fehler sind nicht symmetrisch, und die günstige Seite der Asymmetrie ist die kleine Seite. Praktiker, die Kelly überhaupt verwenden, neigen dazu, die Hälfte oder ein Viertel davon einzusetzen und die Formel eher als Obergrenze denn als Ziel zu behandeln.
Wo das Modell aufhört, einen Markt zu beschreiben
Kelly setzt eine Wette voraus, die Sie mit festen, bekannten Quoten wiederholen können, und Ergebnisse, die von einer Wiederholung zur nächsten unabhängig sind. Ein Markt bricht all dies. Quoten werden geschätzt und ändern sich im Laufe der Zeit. Tägliche Renditen clustern: Ruhige Phasen folgen auf ruhige Phasen, und gewalttätige Tage treten in Gruppen auf, was die Rückgänge über das hinaus ausdehnt, was eine Unabhängigkeitsannahme vorhersagt. Positionen werden nicht am Ende jedes Tages abgerechnet, Kurslücken überspringen den Preis, zu dem eine Wette geschlossen worden wäre, und Margin Calls treten nach dem Zeitplan des Brokers und nicht nach dem Zeitplan des Modells auf.
Die Formel verdient ihren Platz dennoch als Grenze. Sie besagt in einer Zeile, dass es eine Einsatzhöhe gibt, jenseits derer mehr Überzeugung weniger Vermögen produziert, und sie lokalisiert diese Grenze anhand von Größen, die ein Händler zumindest zu messen versuchen kann. Das ist auch der Grund, warum dieselbe Logik auf Diversifikation verweist: Mehrere teilweise unabhängige Wetten teilen sich dasselbe Gesamtrisikobudget effizienter als eine einzelne Wette, was die Arithmetik hinter dem Konzentrationsrisiko ist. Und für einen Anleger, der Geld nach einem Zeitplan hinzufügt, anstatt diskrete Wetten zu platzieren, wird die Frage der Positionsgröße durch den Zeitplan selbst beantwortet, was das Argument für den Cost-Average-Effekt ist.
FAQ
Wie lautet die Formel des Kelly-Kriteriums?
Für eine Wette, die mit Wahrscheinlichkeit p einen Bruchteil g des Einsatzes gewinnt und mit Wahrscheinlichkeit q einen Bruchteil l verliert, ist der wachstumsoptimale Kapitalanteil f = p / l - q / g. Im Fall gleichen Geldes vereinfacht es sich zu f = p - q, dem Vorteil selbst.
Warum verwenden Händler das halbe Kelly anstelle des vollen Kelly?
Das Wachstum ist nahe dem Optimum annähernd flach, während das Risiko darüber hinaus weiter steigt. Daher opfert man durch die Halbierung des Einsatzes einen bescheidenen Betrag des langfristigen Wachstums und beseitigt einen großen Teil des Rückgangs. Der Schätzfehler verstärkt das Argument: Ein verdoppelter Einsatz aufgrund eines überschätzten Vorteils liegt nahe dem Punkt, an dem das Wachstum aufhört.
Funktioniert das Kelly-Kriterium für Aktien?
Es gilt als Arithmetik, aber seine Annahmen fester bekannter Quoten und unabhängiger Ergebnisse gelten nicht an Märkten. Naiv auf tägliche Aktienrenditen angewandt, verlangt es nach einer Hebelwirkung, die weit über das hinausgeht, was ein Konto tragen kann, wie die erste Tabelle oben zeigt.
Was passiert, wenn Sie mehr als den Kelly-Bruchteil setzen?
Die langfristige Wachstumsrate sinkt. Bei etwa dem doppelten Kelly-Bruchteil erreicht sie etwa null, und darüber hinaus schrumpft eine Wette mit echtem Vorteil das Kapital im Laufe der Zeit, während ihre Rückgänge weiter zunehmen.
Ist das Kelly-Kriterium dasselbe wie das Risiko von 1 % oder 2 % pro Trade?
Nein. Eine feste Prozentregel ignoriert die Quoten vollständig und wendet dieselbe Zahl auf jedes Setup an. Kelly skaliert den Einsatz mit dem gemessenen Vorteil, was es reaktionsschneller macht, wenn der Vorteil bekannt ist, und fragiler, wenn der Vorteil geschätzt wird.
Jede obige Zahl stammt aus einer gespeicherten Abfrage, die Sie öffnen, bearbeiten und erneut ausführen können. Tauschen Sie die Ticker, das Zeitfenster oder das Einsatzhöhenraster aus und messen Sie den Zielkonflikt selbst auf dem Strasmore-Terminal.