2022. 9. 9. 20:29ㆍ골아픈퀀트/지식

퀀트투자에 발을 들이면 맨 먼저 켈리 공식을 접하게 된다
켈리 공식이란 어떤 게임의 승률과 손익금을 알 때 최적의 투자 비중을 계산해주는 공식이다
왜 이런 공식이 필요한 걸까?
만약 우리가 승률 100%이고 이기면 수익률이 10%, 지면 파산인 게임에 참여한다고 하자
고민할 필요 없이 매번 전재산을 베팅하면 된다
그러면 이번에는 승률이 50%이고 이기면 수익률이 10%, 지면 파산인 게임에 참여한다고 하자
이제는 문제가 조금 어려워 졌다
매번 전재산을 베팅하기에는 리스크가 너무 크다
따라서 안정적인 투자를 위해 우리는 승률과 손익률에 따른 일련의 투자공식이 필요하다
켈리공식은 다음과 같다

수익과 손실의 비율은 예시를 들어 설명하자면
1) 게임에 이겼을 때 수익률이 100%이고 졌을 때 손실률이 100%라면
b = 100/100 = 1
2) 게임에 이겼을 때 수익률이 50%이고 졌을 때 손실률이 100%라면
b = 50/100 = 1/2
켈리공식은 다음과 같이 쓸 수도 있다

둘이 똑같은 식이다

그렇다면 처음 문제를 다시 한번 살펴보자
승률이 50%이고 이기면 수익률이 10%, 지면 파산인 게임이다
우리가 투자해야 할 최적의 투자비율은

...투자비율이 음수가 나왔다
이는 이 게임에 참여하면 안 된다는 것을 의미한다
어떤 투자 비율을 정하든 매우매우 불리한 게임이라는 뜻이다
그렇다면 승률이 80%이고 이기면 수익률이 30%, 지면 파산인 게임을 구해보자

자산의 13.3% 정도를 투자하는 것이 최적이다
여기까지 켈리공식 포스팅이 끝났습니다~~~~~~~
....가 아니라 그렇다면 왜 켈리공식에 따른 값이 최적 투자 비중일까?
게임이 진행됨에 따라 자산은 어떻게 변화할까?
게임을 진행함에 따라 자산은 위와 같이 변화한다
이는 자산의 변화율을 다음과 같이 표현할 수 있다는 말과 같다

그렇다면 n번 진행된 게임의 1게임 당 평균 손익률도 계산할 수 있지 않을까?
기하평균을 이용해 구하면 된다

시행횟수를 무한대로 늘리면 게임 당 평균 손익률을 계산할 수 있다

이때 W, L, p, q는 이미 값이 정해진 상수이다
변수는 투자 비중인 f만 존재한다
-> f 값에 따라 게임 당 평균 손익률이 변화한다
그러므로 f는 리스크라고 볼 수 있다
그렇다면 G를 최대화시키는 f를 찾기 위해서 어떻게 해야할까?
G를 f에 대해서 미분하고 그 값이 0이 되는 f를 찾으면 될 것이다

즉 게임의 평균 수익률을 극대화시키는 f값은 위 식을 따르게 되고
이 식을 켈리 공식이라고 부른다
그렇다면 파이썬을 이용해 켈리공식을 수치해석적으로 살펴보자


1) 기초 정보들을 설정한다
2) Kelly Criterion을 계산한다

3) 0~1까지 0.01 간격의 베팅 비율에 따른 기대 Growth를 계산한다
4) 가장 기대 Growth값이 큰 베팅 비율과 Kelly Criterion에 따른 비율을 비교해본다

5) 베팅 비율에 따른 기대 성장률(수익률)을 그래프로 표현
6) 켈리비중을 그래프 위에 표현
해당 코드 파일을 올려둡니다
ipynb 파일은 jupyter notebook이나 colab을 통해 열 수 있습니다
이번 포스팅에서는 켈리공식에 대한 이해를 위한 기초지식을 알아보았습니다
다음에는 켈리공식의 다중 자산에 대한 응용과 에드워드 소프의 주식시장 응용, 켈리공식을 주식시장에 적용하는 파이썬 알고리즘등을 다룰까 합니다
시간이 허락한다면...ㅠ
네이버 블로그에는 더욱 다양한 내용이 있습니다