켈리 기준 포지션 사이징 실제 측정
켈리 기준으로 에지에서 베팅 크기를 설정합니다. 10년 일별 주식 수익률로 풀 켈리, 하프 켈리, 인출 실현 가능성을 측정한 실제 데이터를 확인하세요.
켈리 기준(Kelly criterion)은 베팅 규모를 결정하는 공식이다. 승리 확률, 승리 시 수익 규모, 패배 시 손실 규모를 입력하면 장기 부의 성장률을 극대화하는 자본 비율을 산출한다. 존 켈리(John Kelly)는 1956년 벨 연구소에서 정보 이론의 결과물로 이를 발표했으며, 이후 도박꾼과 트레이더들이 채택했다. 이 페이지는 첫 원리부터 공식을 설명한 뒤, 10년간의 실제 일별 주식 수익률에 공식을 적용해 그 처방이 실현 불가능함을 측정한다.
켈리 기준이 실제로 말하는 것
승리 시 베팅 금액의 g 비율을 얻을 확률이 p이고, 패배 시 베팅 금액의 l 비율을 잃을 확률이 q(q = 1 - p)인 반복 베팅을 생각하자. 각 반복에서 투입할 성장 최적 자본 비율은 다음과 같다:
f* = p / l - q / g
승리와 패배의 금액이 동일한 고전적인 동일 금액( even-money ) 경우, g와 l이 모두 1이므로 공식은 f* = p - q로 축약된다. 이 차이가 바로 에지(edge) 자체다. 동일 금액 베팅에서 60% 확률로 이기는 도박은 20% 포인트의 에지를 가지며, 켈리 기준은 자본의 20%를 베팅하도록 한다.
유도 과정은 부의 기대 로그에 대한 미적분학의 한 단계일 뿐이다. 베팅당 평균 로그 부를 최대화하는 것은 긴 시퀀스에 걸친 복합 성장률을 최대화하는 것과 동일하며, 이를 달성하는 비율이 위 공식이다. 여기서 두 가지 속성이 도출된다. 켈리 기준은 모든 것을 잃을 수 있는 베팅에 전체 자본을 걸지 않는데, 이는 로그 0이 음의 무한대이기 때문이다. 또한 f 이외의 고정 비율을 충분히 오래 반복하면 f보다 복리 성장 속도가 느려진다.
손으로 확인할 수 있는 동전 던지기
이 섹션의 수치는 가상의 것으로, 계산을 명확히 보여주기 위해 선택되었다. 앞면이 60% 확률로 나오고 동일 금액을 지급하는 동전을 생각하며, 초기 자본은 1,000달러다.
- 매번 던질 때마다 자본의 20%를 건다. 승리 시 1,000달러는 1,200달러가 되고, 패배 시 800달러가 된다. 순서에 관계없이 한 번의 승리와 한 번의 패배는 960달러를 남긴다.
- 매번 던질 때마다 자본의 40%를 건다. 동일한 승리-패배 쌍은 1,000달러에서 1,400달러, 다시 840달러로 이어진다.
- 매번 던질 때마다 전체 자본을 건다. 뒷면이 한 번만 나와도 에지가 아무리 크더라도 시퀀스는 영구히 종료된다.
20% 베팅에서의 4% 왕복 비용은 변동성 있는 자본을 복리로 운용하는 대가이며, 60/40 동전은 긴 시퀀스에 걸쳐 이를 여러 배로 상쇄한다. 40% 베팅에서 왕복 비용은 16%이며, 동전은 더 이상 이를 상쇄하지 못한다. 켈리 비율의 두 배에서 성장률은 거의 0에 도달한다. 이 지점을 넘어서면 진정하고 검증된 에지를 가진 베팅도 전혀 성장하지 않으며, 이것이 공식이 제공하는 가장 유용한 단일 사실이다.
공식이 일별 주식 베팅에 요구하는 것
이제 동일한 공식을 시장에 적용해보자. 한 주식의 하루 거래를 베팅의 한 번 반복으로 간주한다. 승리 확률은 상승 마감한 거래일의 비율, 승리 규모는 평균 상승일 변동폭, 손실 규모는 평균 하락일 변동폭이다. 2016년부터 2025년까지 10년간의 일별 종가 데이터를 여섯 개의 친숙한 종목에 대해 살펴본다:
모든 수치 뒤에 숨겨진 정확한 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 배에 달한다. 일별 주식 베팅에 대한 완전 켈리(Full Kelly)는 계좌의 백분율이 아니다. 이는 어떤 브로커도 제공하지 않고 어떤 계좌도 견딜 수 없는 레버리지를 요구하는 것이다.
절충의 형태
이것이 이론이다. 다음 패널은 실험이다. 동일한 10년 동안의 S&P 500 추종 ETF(SPY) 실제 일별 수익률을 가져와, 각 거래일의 수익률에 고정 베팅 규모를 곱한 후 결과를 복리로 계산한다. 베팅 규모 1.0배는 레버리지가 없는 지수다. 베팅 규모 3.0배는 자본 1달러당 3달러를 매일 투입하며, 매일 재조정된다. 각 행은 하나의 전체 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 bet0.5x에서 경로는 시작 자본 대비 1.92 배로 끝났으며, 이전 고점 대비 최대 하락폭은 18.2%였다. 5x에서는 동일한 일별 수익률과 동일한 10년 동안 경로가 14.35 배로 끝났으며, 최대 하락폭은 94.5%였다.
두 열은 다르게 움직이며, 이것이 분할 켈리(fractional Kelly)의 전체 교훈이다. 최종 부는 베팅 규모에 따라 한동안 증가하다가 평탄해지고, 변동성 복리의 부담이 추가 노출을 추월하면서 감소한다. 하락폭 열에는 그러한 전환점이 없다. 8개 행 전체에 걸쳐 매 단계마다 상승하며, 부 열이 그랬던 것보다 더 빠르게 상승한다. 최적 베팅 성장의 절반은 최적 베팅 규모의 절반에서 고통의 극히 일부만으로 얻을 수 있다. 이러한 비대칭성이 f*보다 적게 베팅해야 하는 근거이며, 하프 켈리(half-Kelly) 관행이 존재하는 이유다.
추정치가 약점이지 공식이 아니다
공식은 확률이 알려진 베팅에 대해 정확하다. 카지노에서는 확률이 인쇄되어 있다. 시장에서는 역사 데이터로 추정되며, 추정치는 흔들린다. 다음은 첫 번째 패널과 동일한 계산을 단일 지수 추종 ETF에 대해 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 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년은 53.8%의 승률로 13.7을 반환했다. 2025년은 57.8%의 승률로 12.3을 반환했다. 차트는 각각이 단일 연도에서 추출될 때 10개의 하나의 숫자 판독값이 얼마나 멀리 떨어질 수 있는지 보여준다.
이러한 분산은 공식의 어떤 개선보다 더 중요하다. 에지를 2배로 과대평가하면 공식은 대략 두 배의 베팅 규모를 제시하며, 이는 성장이 음수로 전환되는 지점 또는 그 이상에 위치하게 된다. 과소평가하면 파산 위험 없이 복리로 누적할 수 있었던 성장을 포기하게 된다. 두 오류는 대칭적이지 않으며, 비용이 적은 쪽은 작은 쪽이다. 켈리 기준을 사용하는 실무자들은 일반적으로 절반 또는 4분의 1을 베팅하며, 공식을 목표치가 아닌 상한선으로 취급한다.
모델이 시장을 설명하지 못하는 지점
켈리 기준은 고정되고 알려진 확률과 반복 간 독립적인 결과를 가진 반복 가능한 베팅을 가정한다. 시장은 이 모든 것을 깨뜨린다. 확률은 추정되며 시간에 따라 변한다. 일별 수익률은 군집화한다. 조용한 기간은 조용한 기간을 따르고, 폭력적인 날들은 그룹으로 도착하여 독립성 가정이 예측하는 것 이상으로 하락폭을 늘린다. 포지션은 매일 종료 시점에 청산되지 않으며, 갭(gap)은 베팅이 마감되었을 가격을 건너뛰고, 증거금 콜(margin call)은 모델의 일정이 아닌 브로커의 일정에 따라 도착한다.
그럼에도 공식은 경계선으로서 그 가치를 유지한다. 더 많은 확신이 더 적은 부를 생산하는 베팅 규모가 존재한다는 것을 한 줄로 명시하며, 트레이더가 최소한 측정을 시도할 수 있는 양으로부터 그 경계를 찾아낸다. 이것이 동일한 논리가 분산 투자를 가리키는 이유이기도 하다. 여러 개의 부분적으로 독립적인 베팅은 하나의 베팅보다 동일한 총 위험 예산을 더 효율적으로 공유하며, 이는 집중 위험(concentration risk)의 기초가 되는 산술이다. 그리고 일정에 따라 돈을 추가하는 투자자에게는, 개별 베팅 규모를 정하는 문제는 일정 자체에 의해 해결되며, 이것이 달러-코스트 평균화(dollar-cost averaging)의 근거다.
FAQ
켈리 기준 공식은 무엇인가요?
베팅 금액의 g 비율을 얻을 확률이 p이고, l 비율을 잃을 확률이 q인 베팅의 경우, 성장 최적 자본 비율은 f = p / l - q / g입니다. 동일 금액( even-money ) 경우에는 f = p - q, 즉 에지 자체로 단순화됩니다.
트레이더들은 왜 완전 켈리 대신 하프 켈리를 사용하나요?
최적점 근처에서 성장은 거의 평탄한 반면 위험은 계속 증가하므로, 베팅을 절반으로 줄이면 장기 성장을 약간 포기하는 대신 하락폭의 큰 부분을 제거합니다. 추정 오류는 이 주장을 강화합니다. 과대평가된 에지로 인해 두 배가 된 베팅은 성장이 멈추는 지점 근처에 위치합니다.
켈리 기준은 주식에 적용되나요?
산술적으로는 적용되지만, 고정된 알려진 확률과 독립적인 결과라는 가정은 시장에서 성립하지 않습니다. 위의 첫 번째 패널에서 보여주듯, 일별 주식 수익률에 순진하게 적용하면 어떤 계좌도 감당할 수 없는 수준의 레버리지를 요구합니다.
켈리 비율보다 더 많이 베팅하면 어떻게 되나요?
장기 성장률이 하락합니다. 대략 켈리 비율의 두 배에서 성장률은 약 0에 도달하며, 그 이상에서는 실제 에지를 가진 베팅도 시간이 지남에 따라 자본을 줄이면서 하락폭은 계속 깊어집니다.
켈리 기준은 거래당 1% 또는 2%를 거는 것과 같은가요?
아닙니다. 고정 비율 규칙은 확률을 완전히 무시하고 모든 설정에 동일한 숫자를 적용합니다. 켈리 기준은 측정된 에지에 따라 베팅 규모를 조정하므로, 에지를 알 때 더 반응적이고 에지를 추측할 때 더 취약합니다.
위의 모든 수치는 저장된 쿼리에서 가져온 것으로, 열고 편집하고 다시 실행할 수 있습니다. 티커, 기간 또는 베팅 규모 그리드를 변경하고 스트라스모어 터미널(Strasmore terminal)에서 직접 절충 관계를 측정해보십시오.