Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

ケリー基準 ポジションサイジング 実測

ケリー基準でエッジから賭け金を決定。10年分の日次株式リターンでフルケリー、ドローダウン、ハーフケリーを実測。

ケリー基準は賭け金のサイズを決める公式です。勝率、勝った時の利益率、負けた時の損失率を入力すると、長期的な資産の成長率を最大化する資本の割合を返します。ジョン・ケリーが1956年にベル研究所で情報理論の成果として発表し、その後ギャンブラーやトレーダーに採用されました。このページでは、基本原則から公式を導き、実際の10年分の日次株式リターンでその処方箋を測定します。その処方箋は、現実的には実行不可能であることがわかります。

ケリー基準が実際に示すもの

賭け金の g 倍の利益を確率 p で得、賭け金の l 倍の損失を確率 q q = 1 - 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ドルになります。1勝1敗(順序は問わない)で、960ドルになります。
  • 毎回のフリップに資本の40%を賭けます。同じ勝ち→負けの順序で、1,000ドルが1,400ドルになり、840ドルになります。
  • 毎回のフリップに全資本を賭けます。一度でも裏が出れば、どんなにエッジがあっても、その系列は永久に終了します。

20%の賭けでの4%の往復コストは、変動する資本を複利運用する代償であり、60/40のコインは長い系列にわたってそれを何度も補います。40%の賭けでは往復コストは16%となり、コインはもはやそれを補えません。ケリー割合の2倍での成長率はほぼゼロになります。それを超えると、真の検証済みエッジを持つ賭けでも全く成長しません。これは、この公式がもたらす最も有用な単一の事実です。

日次株式賭けで公式が求めるもの

次に、同じ公式を市場に適用します。一銘柄の一取引日を賭けの一回分とみなします。勝率は終値が上昇した日の割合、勝ちサイズは平均上昇日の値動き、負けサイズは平均下落日の値動きです。2016年から2025年までの10暦年分の日次終値データを、6つの有名銘柄について使用します。

クエリ日次終値からのケリー入力、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

最初の3列を見ると、エッジは非常に小さく見えます。勝率はコインフリップに近く、平均上昇日と平均下落日のサイズも、パネル内の全銘柄で近い値です。SPYは、55.3%のセッションで上昇して終了し、平均上昇日は0.71%、平均下落日は0.76%でした。

問題が始まるのは最後の列です。これらの小さくほぼ均衡した入力値が公式の分母にあり、小さな分母は大きな答えを生み出します。SPYに対して公式が返す割合は資本の10.1倍であり、6銘柄の中で最も低いものでも2倍に達します。日次株式賭けに対するフルケリーは、口座のパーセンテージではありません。それは、どのブローカーも提供せず、どの口座も耐えられないレバレッジの要求です。

トレードオフの形状

以上が理論です。次のパネルは実験です。同じ10年間のS&P 500トラッカーの実際の日次リターンを取得し、各日のリターンに固定の賭けサイズを掛け、その結果を複利運用します。賭けサイズ1.0倍はレバレッジなしのインデックスです。賭けサイズ3.0倍は、資本1ドルにつき3ドルを毎日コミットし、毎日リバランスします。各行は10年全体の一つの経路であり、その最終資産と、その過程で経験した最大のピークからの下落幅を示します。

クエリS&P 500の日次リターンを8つの固定ベットサイズで複利運用した10年間:最終資産額と最大ドローダウン
各数値の背後にある正確な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では、同じ日次リターンと同じ10年間で、経路は14.35倍で終了し、最大下落幅は94.5%でした。

この二つの列は異なる動きをし、それがフラクショナルケリーの教訓の全てです。最終資産は、賭けサイズとともにしばらく上昇し、横ばいになり、その後、複利変動による抵抗が追加エクスポージャーを上回るにつれて減少に転じます。ドローダウン列にはそのような転換点はありません。8行にわたってすべてのステップで上昇し、その上昇速度は資産列のそれを上回ります。最適な賭けの成長の半分は、最適な賭けサイズの半分で、苦痛のごく一部で得られます。この非対称性が、f*よりも少ない賭けをする根拠であり、ハーフケリーという慣行が存在する理由です。

推定値が弱点であり、公式ではない

公式は、オッズが既知の賭けに対しては正確です。カジノではオッズは印刷されています。市場では、オッズは過去のデータから推定され、その推定値は変動します。以下は、最初のパネルと同じ計算を、単一のインデックストラッカーについて10暦年それぞれ個別に実行したものです。

クエリ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の読み取り値が、一つの数値に対してどれだけ離れて着地しうるかを示しています。

このばらつきは、公式のどのような洗練よりも重要です。エッジを2倍過大評価すると、公式は約2倍の賭けサイズを返し、成長がマイナスになる地点かそれを超えたところに位置づけます。過小評価すると、複利運用できたはずの成長を放棄することになりますが、破滅のリスクはありません。この二つの誤りは対称的ではなく、非対称性の有利な側は小さい側です。ケリーを実際に使用する実務家は、その半分または4分の1を賭け、公式を目標ではなく上限として扱う傾向があります。

モデルが市場を説明しなくなる地点

ケリーは、固定された既知のオッズで繰り返し可能な賭けと、各繰り返しが独立した結果であることを前提としています。市場はそのすべてを破ります。オッズは推定され、時間とともに変化します。日次リターンはクラスター化します。静かな期間は静かな期間に続き、激しい日はグループで到来し、独立性の仮定が予測する以上にドローダウンを拡大させます。ポジションは各日の終わりに決済されるわけではなく、ギャップは賭けがクローズされたであろう価格を飛び越え、マージンコールはモデルのスケジュールではなくブローカーのスケジュールで発生します。

それでも、この公式は境界としての価値を保ちます。それは、一行で、より多くの確信がより少ない富を生み出す賭けサイズが存在することを述べ、トレーダーが少なくとも測定を試みることができる数量からその境界を特定します。これこそが、同じ論理が分散投資を指し示す理由でもあります。いくつかの部分的に独立した賭けは、一つの賭けよりも効率的に同じ総リスク予算を共有します。これは、集中リスクの根底にある算術です。また、個別の賭けのサイジングではなく、定期的に資金を追加する投資家にとっては、ポジションサイジングの問題はスケジュール自体によって答えられます。これは、ドルコスト平均法の根拠です。

FAQ

ケリー基準の公式は何ですか?

賭け金の g 倍の利益を確率 p で得、 l 倍の損失を確率 q で被る賭けの場合、成長最適な資本の割合はf = p / l - q / gです。イーブンマネーの場合はf = p - qに簡略化され、それがエッジそのものです。

なぜトレーダーはフルケリーではなくハーフケリーを使うのですか?

最適値付近では成長はほぼ横ばいである一方、リスクはそれを超えて上昇し続けるため、賭けを半分に減らすと長期的な成長をわずかに犠牲にする代わりに、ドローダウンの大部分を除去します。推定誤差がこの議論をさらに強固にします。過大評価されたエッジによる2倍の賭けは、成長が止まる地点付近に位置します。

ケリー基準は株式に有効ですか?

算術としては適用可能ですが、固定された既知のオッズと独立した結果という前提は市場では成立しません。上記の最初のパネルが示すように、日次株式リターンに単純に適用すると、どの口座も耐えられないレバレッジを要求します。

ケリー割合を超えて賭けるとどうなりますか?

長期的な成長率は低下します。ケリー割合の約2倍で成長率はほぼゼロに達し、それを超えると、真のエッジを持つ賭けでも時間とともに資本が減少し、ドローダウンはさらに深まります。

ケリー基準は1トレードあたり1%や2%のリスクと同じですか?

いいえ。固定パーセンテージルールはオッズを完全に無視し、すべてのセットアップに同じ数値を適用します。ケリーは測定されたエッジに応じて賭け金をスケーリングするため、エッジが既知の場合にはより敏感に反応し、エッジが推測の場合にはより脆弱になります。


上記のすべての数値は、保存されたクエリから取得されたもので、開いて編集し、再実行することができます。ティッカー、期間、または賭けサイズのグリッドを変更して、Strasmoreターミナルでご自身でトレードオフを測定してください。