The Witless

スーパーAIによって書かれたスーパーブログ

ケリー基準について

(閲覧注意レベルに長い文章です)

こんにちは、ゆうです( @yuu_kun00)。

突然ですが、みなさんはトレードする際のロットをどのようにして決めていますか?
流動性に応じてロットの上限が決まる以外はトレーダーが自由に決めることができる量です。

ぼくも雰囲気で適当に決めることが多いのですが、ロットが大きすぎれば資金の増減が激しくなり、場合によっては一回の負けで再起が難しくなるほどの損失を被ることもあります。

では、どのようにしてロットサイズを決めるべきなのか。少し調べてみたところ、この問題にはケリー基準 (ケリーの公式)という考え方あるようです。しかし、簡単に調べた限りではケリー基準に基づいてロットサイズを決めることにはどのような意味があるのか、明確ではないように感じたので自分で考察することにしました。

あとバルサラの破産確率なんてのもありますが、破産確率なんてものを気にするなら手持ち資金から一定の割合で賭ければいいだけじゃないですか?
そうすればいくら負けても資金はゼロに漸近するだけなので破産確率はいかなる戦略でもゼロです。

ケリー基準とは

wikipediaによれば、ケリー基準は

In probability theory and intertemporal portfolio choice, the Kelly criterion, Kelly strategy, Kelly formula, or Kelly bet is a formula for bet sizing that leads almost surely to higher wealth compared to any other strategy in the long run (i.e. the limit as the number of bets goes to infinity). The Kelly bet size is found by maximizing the expected logarithm of wealth which is equivalent to maximizing the expected geometric growth rate.  Kelly criterion - Wikipedia

だそうです。

英語が分からない残念な人向けに簡単に日本語で書くと、
「ケリー基準は最も早く資産が増えるベットサイズを得る公式であり、資産の幾何成長率を最大化することで導かれる。」
です。
この文章を見て、「わ~すげ~じゃあこれ使おう~」とか思う人はそれでいいと思いますが、ぼくは全然納得できません。
期待値が正の戦略があるならば、ロットサイズは大きければ大きいほど資産は速く増えるはずだし、そもそも幾何成長率ってなんやねんって感じです。
(成長率は増加率とした方がしっくりきますが、成長率のままいきます。)

簡単な場合におけるケリー基準の導出

幸運なことにwikipediaには簡単な場合におけるケリー基準の導出が載っていたので、それを掘り下げてみます。
(導出とか興味ない人は前提と結果だけ見て飛ばしましょう。)

考えるのは、次のようなケースです。

勝ちか負けの二通りしかない勝率 \( p \) の賭けをします。$\(1\)を賭けた場合、勝てば、賭けた$\(1\)に加えて$\(b\)を得ることができます。負ければ、賭けた$\(1\)を失います(つまりオッズが \(b\) )。賭ける金額は自由に増やすことができるものとします。

この賭けを前にして、まず考えるのは賭け一回における期待値です。これは \( p b - (1-p) \) ですね。期待値が負の場合は賭けを行う意味がないので、 \( p b - (1-p) > 0 \) の場合のみを考えます。

資産が$\( W_0 \)だけあるとき、資産の\(100 x \) %を賭ける(つまり$\( x W_0 \)を賭ける)と、賭けのあとの資産の期待値\( W_1\)は \begin{equation} \label{w1_arith} W_1 = W_0 + ( p b W_0 x - (1-p) W_0 x) = W_0 ( p (1 + b x) - (1-p) (1 - x)) \end{equation} となります。また \( 1 \) 回あたりの賭けでの資産の成長率の期待値 \(R(x)\) は \begin{equation} \label{rrate} R(x) = p (1 + b x) - (1-p) (1 - x) \end{equation} です。
ここで出てきた \( x \) がロットサイズを決める変数で、最適な\( x \)を求める式がケリー基準というわけです (さて本当に最適なのかな~)。

次にケリー基準が最大化してくれるという幾何成長率についてです。後で通常の成長率\eqref{rrate}と比較して説明をしますが、先に幾何成長率 \(G(x)\) を示しておきます。 \begin{equation} \label{grate} G(x) = (1 + b x)^{p} (1 - x)^{1-p} \end{equation}

これが一体なにを示す量なのかこの式を見てもよく分かりませんが、無限回成長率の観測してその幾何平均とったものだということは分かります。
分からない人のためにもう少し分かりやすく説明します。対比のためにまず普通の成長率から。
\(N\) 回賭けをして、\(K\) 回勝ったとしましょう。すると成長率の算術平均値 \(R_N\) は、 \begin{equation} R_N = \frac{K (1 + b x) + (N-K) (1-x)}{N} \end{equation} となります。そして無限回観測すれば、\(K\)は限りなく\(pN\)に近づくので、

\begin{equation} \lim_{N \to \infty} R_N = p (1 + b x) + (1-p)(1-x) = R(x) \end{equation}

となります。つまり、成長率の期待値\eqref{rrate}になるってことですね。
一方、成長率の幾何平均値 \(G_N\) は、 \begin{equation} G_N = ( (1 + b x)^{K} (1 - x)^{N-K} )^{1/N} \end{equation} となります。やはり無限回観測すれば、\(K\)は限りなく\(pN\)に近づくので、 \begin{equation} \lim_{N \to \infty} G_N = (1 + b x)^{\frac{K}{N}} (1 - x)^{\frac{N-K}{N}} = (1 + b x)^{p} (1-x)^{1-p} = G(x) \end{equation} となります。今度は先ほど出てきた幾何成長率\eqref{grate}がでてきましたね。

何となくでも、幾何成長率がどんなものなのか分かったでしょうか。後はこれを最大化する \(x\) を見つければいいだけです。
微分を習いたての高校生にはちょうどいい問題ですね。
一回に賭けられる資産の下限は$\(0 \) で最大は $\( W_0 \)であり(つまり \( 0 < x \leq 1\) )、そのとき\( G(0) = G(1) = 0 \) であることに注意ししましょう。微分をしやすくするために \( G(x) \)の対数を取り、 \(x\)について微分すると、 \begin{equation} \frac{ {\rm d} \ln G(x) }{ {\rm d} x} = \frac{pb}{1+bx} - \frac{1-p}{1-x} \end{equation} となり、\( \ln G(x) \) は \begin{equation} \label{kelly_x} x = \frac{pb +p - 1}{b} \end{equation} で極大値を取ります。端点との比較をするとここが最大値であることが分かります。対数関数は単調増加関数なので、 \( G(x) \) の最大値を与える \( x \) も式\eqref{kelly_x}です。

ここで得られた式\eqref{kelly_x}がケリー基準といわれる式です。

ケリー基準の簡単な例

損失額と利益額の比率、勝率が分かっているならこのまま普段のトレードに適用することも簡単です。
$\( 1000 \) の証拠金があり、勝率\(50\)%、損切幅$\(10\)、利確幅$\(15\)のトレードをこれからするとしましょう。この場合、 \( p = 0.5 \)、\( b = \frac{15}{10} = 1.5\)なので、式\eqref{kelly_x}から\( x = \frac{0.5 \times 1.5 + 0.5 - 1}{1.5} \simeq 0.167\) です。
つまり、損切額が \( \$1000 \times 0.167 = \$167 \) となるようなロットサイズ、つまり、\( 167 / 10 \simeq 16.7 \) 枚でトレードすれば資産の幾何成長率が最大になるということです。

少し面倒かもしれませんがトレード毎に損切幅、利確幅と大体の勝率を見積もることができれば、このように簡単な計算をして適切なロットサイズでトレードができるようになります。
(近似的にはいいのですが、正確にはダメです。勝率、損切幅と利確幅の比率がトレード毎に変化するならその確率分布も考慮しなければなりません。)










は?

いやいやいや。まさかみんなこれで納得してないよね?てか、こんなんで誰が納得すんの?だから幾何成長率を最大化してなんの意味があんの?なにが適切なロットサイズだよ。素性のしれない指標を最大化してこれがベストとか言われても困るんだけど。確率的に分布している値を何回も観測したら算術平均値になるでしょ。幾何平均値じゃないから。期待値ってそういうものじゃん。結局ケリー基準に従うって何の意味があるんだよ。全く説明になってないじゃん。ふざけんなよ。

って思いますよね?

ぼくは思いました。そこらへんに転がっている説明も上で行ったようなものばっかりです。この段階ではケリー基準の意味はよく分かりません。

あと複利で何回も賭けをする前提だから幾何平均が適切だとか言ってるひと。 サイコロを振って出た目が偶数なら掛け金を \( 2 \) 倍、奇数なら \( 0.25 \) 倍にされるゲームがあっても参加しないってことかな?幾何平均なら増加率は \( 2^{0.5} 0.25^{0.5} \simeq 0.7 \) だもんなぁ。増加率は \( 1 \) 未満だからやればやるほど資金減っちゃうもんなぁ。

・・・と思ってしまいがちですが、この考え方は実に正しい。むしろ本質的な考え方です。
もちろんこのゲームでの掛け金の増加率の期待値は \( 1.125 \) って分かりますね。つまりやればやるほど儲かるゲームです。だからガンガン賭けていくべき、とはならないんです。

勝率は \( 0.5 \) なのでたくさんゲームをやれば勝ち数と負け数は大体同じ数になります。例えば\( 10 \) 回やって確率通り \( 5 \) 回勝って、\( 5 \) 回負けたとします。
もし毎回全額賭けていれば、勝ち負けの順序によらず資金は \( 2^{5} {0.25}^{5} = 1/32 \) 倍になっています。確率通りの勝率なのにボロ負けですね。
分かっている人には簡単なトリックですが、期待値が正なのは勝ち数が上振れしたときの利益が非常に大きいからです。つまり一部の運がいい人が爆益で、その他のちょっと運がいい人、普通くらいの運の人は爆損します。(適当にトレードしたってこのような分布になるのはスナフキンさんのブログでも説明されていますね。https://sshuhei.com/entry/x100/)
この意味では運に自信のある人以外は幾何平均に従って賭けをしないほうがいいとも言えます。統計に従って賭けたところで、個人の結果は統計値ではなくて個別にサンプリングされた結果の一つに過ぎないので、容易に運に左右される結果になってしまうということです。

いかに期待値が優れているとしても、このように運に左右されることは避けられません。こうやって考えると幾何成長率を最大化するケリー基準は運に左右されない優れた戦略を提供してくれるように見えてきます。

幾何平均についての考察

先ほどの例で少しケリー基準の意味が分かったような気がしますが、まだ明確ではありません。 よく分からない原因は幾何平均です。どんな状況なら幾何平均が大きくなるのか、また逆に小さくなるのかが分からないから明確なイメージを持てないのです。 幾何平均について考察するために一般的な話に立ち返りましょう(高校2~3年から大学1年レベルの算数の話をします)。分からない人は読み飛ばして次のセクションに行ってください。特に問題ない気がします。

適当な離散確率分布 \(P(X)\) を考えます。\( X = x_i \) が起こる確率が \( P(x_i) \)ってことです。式をいっぱい書くことになるので、 \( P_i = P(x_i) \) と定義しておきます。\( i \) の取る範囲は何でもいいですが、\( 1 \leq i \leq M \) の整数とでもしておきましょう。

このとき、確率変数 \( X \) の算術平均(期待値) \( E[X]\)、幾何平均 \( G[X] \) はつぎのような式で与えられます。

\begin{equation} \label{amean} E[X] = \sum_{i} P_i x_i \end{equation}

\begin{equation} \label{gmean} G[X] = \prod_{i} {x_i}^{P_i} \end{equation}

幾何平均について、このままではどうにもできないので、対数を取ってみます。

\begin{equation} \label{gmean_log} \ln G[X] = \sum_{i} {P_i} \ln x_i \end{equation}

なんとなく、期待値( 式\eqref{amean} ) っぽい形に見えます。確かに通常の期待値との関係や違いが分かれば幾何平均についての理解が深まるかもしれないので、式\eqref{amean}によせるという戦略で式変形を進めます。

式\eqref{gmean_log}と式\eqref{amean}の違いは対数関数です。もし\( \ln x \) を \(x\)の多項式で表せたらな~ってみんな思うはずです。 はい、テイラー展開ですね。特に \( \ln (1 + x) \) の \( x = 0 \) を中心としたテイラー展開は次数ゼロの項を含まないので都合が良さそうです。

\begin{equation} \label{ln_taylor} \ln (1 + x) = \sum_{j=1}^{k} (-1)^{j+1} \frac{x^{j}}{j} + \mathcal{O}(x^{k+1}) \quad \end{equation} (収束半径 \( |x| \leq 1\) に注意しましょう)

式\eqref{gmean_log} に式\eqref{ln_taylor}を適用するために、確率変数とその観測値を\( X = 1 + Y \)、\( x_i = 1 + y_i \)と置き換えます。
まず、 \( \ln (1 + x) \) のテイラー展開で\( 1 \)次の項まで取ると、

\begin{equation} \ln G[X] = \sum_{i} {P_i} (y_i + \mathcal{O}(y_i^{2}) ) = E[Y] + \mathcal{O}(E[Y^{2}]) \end{equation}

つまり、

\begin{equation} G[X] = \exp(E[Y]) \exp(\mathcal{O}(E[Y^{2}]) = \exp(E[X] - 1) \exp(\mathcal{O}(E[Y^{2}]) \end{equation}

となります。この式から分かることは、期待値 \( E[X] \)が\( 1 \) に近いとき、幾何平均\( G[X] \) は \( \exp(E[X] - 1) \)っぽく振る舞うということです。さらに\( x \sim 1 \) の条件下では、\( \exp(x - 1) \simeq x \) と近似できるので、期待値と幾何平均はほとんど同じ振る舞いをすることが分かります。

う~ん・・・でもこれだと幾何平均を最大化する意味はよく分かりませんね。もしケリー基準が期待値と同じような量を最大化したいなら最初から期待値を最大化すればいいはずです。
我々は幾何平均と期待値の違いを知りたいんですよね。 \( \ln (1 + x) \) のテイラー展開の次数を\( 2 \)次の項まで取ってもう一回、式\eqref{gmean_log}を変形してみましょう。

\begin{equation} \label{lngt2} \ln G[X] = \sum_{i} {P_i} (y_i - \frac{1}{2} y_i^{2} + \mathcal{O}(y_i^{3}) ) = E[Y] - \frac{1}{2} E[Y^{2}]+ \mathcal{O}(E[Y^{3}]) \end{equation}

今度は、\( Y^{2} \)の期待値が出てきました。統計の式で \( E[Y^{2}] \) みたいな量が現れたらみんな分散\( \mathrm{Var}[Y] \)に置き換えたくなると思います。 分散\( \mathrm{Var}[Y] \)は次の式で与えられます。

\begin{equation} \label{variance} \mathrm{Var}[Y] = \sum_i P_i (y_i - E[Y])^{2} = E[Y^{2}] - E[Y]^{2} \end{equation}

また\( X = 1 + Y \)は確率分布の平行移動なので \( \mathrm{Var}[Y] = \mathrm{Var}[X] \)です。
まとめて、

\begin{equation} \mathrm{Var}[X] = \mathrm{Var}[Y] = {\xi}^{2} \end{equation}

と表すことにします。\( \xi \)は標準偏差ですね。(おい、はてなブログって\sigma出せないのかよ。どういうことだよ。標準偏差が \( \xi \) なんて聞いたことないよ。)
式\eqref{lngt2}に式\eqref{variance}を代入すると、

\begin{equation} \ln G[X] = E[Y] - \frac{1}{2} E[Y]^2 - \frac{1}{2} \xi^{2} + \mathcal{O}(E[Y^{3}]) \end{equation}

となります。
もう一息です。最初に使った \( \ln (1 + x) \) の2次のテイラー展開を思い出してください。

\begin{equation} \ln (1 + x) = x - \frac{1}{2} x^{2} + \mathcal{O}(x^{3}) \end{equation}

ですね。\( x = E[Y] \) と置けば上式は、

\begin{equation} \ln G[X] = \ln(1 + E[Y]) - \frac{1}{2} \xi^{2} + \mathcal{O}(E[Y^{3}]) + \mathcal{O}(E[Y^{3}]) = \ln(E[X]) - \frac{1}{2} \xi^{2} + \mathcal{O}(E[Y^{3}]) + \mathcal{O}(E[Y^{3}]) \end{equation}

と変形できます。 \( \mathcal{O}(E[Y^{3}]) + \mathcal{O}(E[Y^{3}]) \) は誤差項なので、\( \varepsilon \)とでもしておきましょう。\( (E[Y^{3}] \) と \( E[Y^{3}] \) が十分 \( 0 \) に近ければ \( \varepsilon \) は \( 0 \) に収束します。
結局、\( G[X] \)は

\begin{equation} G[X] = \exp (\ln G[X] ) = E[X] \exp( - \frac{1}{2} \xi^{2} ) \exp(\varepsilon) \end{equation}

と表せるということですね。

ふむふむ。これはある程度意味が分かりやすい式が得られました。テイラー展開の収束半径に関する条件や誤差項がありますが、これは \( Y \) が \(0 \) に近い場合、つまり \( X \) が 1に近い場合は特に考えなくてもいいということだけ覚えておきましょう。

ケリー基準の解釈

さて、前セクションで確率変数 \( X \) の幾何平均 \( G[X] \) は、期待値 \( E[X] \) と 分散 \( \mathrm{Var}[X] = \xi^{2} \) を用いて、

\begin{equation} \label{gmean_approx} G[X] = E[X] \exp( - \frac{1}{2} \xi^{2} ) \exp(\varepsilon) \simeq E[X] \exp( - \frac{1}{2} \xi^{2} ) \end{equation}

と表現できることが分かりました。 \( \varepsilon \) は \( X \) が \( 1 \) に近いときに\( 0 \) とみなせる誤差です。

もともとケリー基準は資産の成長率の幾何平均、幾何成長率\eqref{grate}を最大化するための戦略でしたね。
式\eqref{gmean_approx}における確率変数 \( X \) を資産の成長率とすれば、式\eqref{grate}の \( G(x) \)はそのまま \( G[X] \) となります。 また \( E[X] \) は \( R(x) \) ですね (式\eqref{rrate})。 ( \( X \)と \( x\) は全然違うことに注意。 \( X \) は資産の成長率、\( x \) は一回の賭けに何割の資産を投じるかを決める変数。紛らわしくてすまん。)

\( X \) が資産の成長率であること念頭において、もう一度式\eqref{gmean_approx}を眺めます。

\begin{align} G(x) = G[X] & \simeq E[X] \exp( - \frac{1}{2} \xi^{2} ) \notag \\ &= \frac{ R(x) } { \exp( \frac{1}{2} \xi^{2} ) } \label{gmean_approx2} \end{align}

ここまで書き下して、ぼくはやっとケリー基準の意味が分かりました。
式\eqref{gmean_approx2}では、資産の成長率の期待値を資産の成長率の分散 (の指数関数) で割っていますね。これを最大化するのがケリー基準という戦略です。
同じような考え方を見たことをある方は多いのではないでしょうか。

そう、シャープレシオです( シャープ・レシオ - Wikipedia ) 。 リターンの期待値をリターンの標準偏差で割ることで定義される量です。リターンの期待値は成長率から1を引いた量、リターンの標準偏差は成長率の分散の平方根と同じ量です。幾何成長率の近似式をよく似ていますね。

リターンの標準偏差はその戦略の運に左右されやすさと言い換えられます。標準偏差が大きい戦略では成長率が正でも運がとてもよくないと簡単に負け組になってしまいます。上述のサイコロのゲームはその一例ですね。 運に左右される度合いに比べてどの程度のリターンを期待できるのかを表す量がシャープレシオです。 シャープレシオが高い戦略は、あまり運に左右されずに安定した利益を上げられるということです。 (しかし残念ながら上で述べたようなシンプルなゲームにはシャープレシオを最大化するという戦略は使えません。なぜならどのようなロットでもシャープレシオは一定だからです。)

一方、ケリー基準ではリターンの期待値 (に \(1\) を加えた成長率) をリターンの分散の指数関数で割った量で近似できる幾何成長率を最大化します。
リターンの標準偏差が少しでも増加すれば、幾何成長率は急激に減少してしまいます。分母は指数関数なのでシャープレシオよりもずっと敏感に反応します。逆にリターンの標準偏差が小さいときに幾何成長率は最大となりそうです。 つまり運に左右されることを極端に嫌う戦略がケリー基準と解釈できます。言い換えれば自分の運が悪いと思ってるってことです。自信のない、典型的な非モテが取りそうな戦略ですね。
とある人が言うには金融の世界でもリスクを取ってトレードをするフロントデスクがモテるそうです。リスクがどうのこうのとみみっちいことを言うミドルデスクは陰キャだそうです。

数値計算による検証

ここまででケリー基準の意味はよく分かりましたね。チキン戦法です。しかしまだ議論すべき点がいくつか残っています。

まずケリー基準の解釈に用いた式\eqref{gmean_approx2} は近似式です。 式\eqref{gmean_approx}における確率変数 \( X \) が1に近い場合、つまり資金の成長率が \( 1 \) に近い場合は誤差項はほぼゼロですが、そうではない場合はどの程度の精度で近似が成立しているのかは分かりません。
またケリー基準を用いた場合とそうでない場合にトレードにおいてどの程度の違いが発生するのか、数式だけから見抜くことはできましたか? 多分できてないですよね。
厳密な幾何成長率と式\eqref{gmean_approx2}による近似的な幾何成長率の違い、そしてケリー基準を用いた場合とそうでない場合のトレード結果への影響を数値的に明らかにしましょう。

ケース1

最初に用いたシンプルなゲームについて考えます。
勝ちか負けの二通りしかない勝率 \( p \) 、オッズ \(b\) のゲームです。 $\(1\)を賭けた場合、勝てば、賭けた$\(1\)に加えて$\(b\)を得ることができます。負ければ、賭けた$\(1\)を失います。
トレードでの言葉に言い換えれば、利確幅 \( / \) 損切幅 \( = b \) ということです。

ケース1では極端な例は考えません。勝率 \( p = 0.5 \)、オッズ \( b = 1.2 \) とします。 リターンの期待値は0.1なので、ゲームをやるたびに掛け金は1.1倍になると期待できます。所持金を $\( W_0 \) として、ゲーム参加時には $\( x W_0 \) を賭けます。

\( x\) を変数として、資金の成長率(増加率)の期待値(算術平均)、幾何平均、幾何平均の近似値(式\eqref{gmean_approx2})、標準偏差、そしてシャープレシオをプロットしました。

f:id:yuuccxcc:20190425050837j:plain:w450
Fig. 1

当然成長率の期待値、標準偏差は \( x \) について線形です。したがって \( x \) が 大きくなれば厳密な幾何平均に対する式\eqref{gmean_approx2}の誤差が大きくなります。このグラフで見たところ成長率が\( 1.05 \) 程度までであればそこまで精度が悪くないように見えます。また誤差が大きくなっても定性的なふるまいにあまり違いはないようです。\( x \) が大きすぎれば、つまり一回当たりに賭ける資金の割合が大きすぎれば幾何平均は減少します。前セクションで近似式\eqref{gmean_approx2}から得られたケリー基準の定性的な解釈は近似の精度が悪いときでも有効そうですね。シャープレシオは前述の通り \( x\) によらず一定ですね。
そして \( x \simeq 0.0807 \) で幾何平均は最大になります。この \( x\) は \( x_{k_1} \) と呼ぶことにします。

\( x_{k_1} \)を基準にして、いくつかの \( x \) について \( 20 \) 回、\( 40 \) 回、\( 60 \) 回ゲームを行ったときの資金の成長率のヒストグラムをプロットしました。サンプル数は \( 100 \) 万個です。

f:id:yuuccxcc:20190425122704j:plain:w800
Fig. 2 左から   x = 0.5 x_{k_1},  x_{k_1},  2x_{k_1} 。横軸は対数であることに注意。

まああまり言うことはないのですが、\(x\) を大きくすれば成長率の期待値は上がりますが、その分損する人も増えます。もうちょっと極端な例で確認したいですね。

ケース2

ケース1と同じゲームです。 しかし今度は勝率 \( p = 0.25 \)、オッズ \( b = 5 \) とします。低勝率損小利大なケースです。リターンの期待値は \( 0.5 \) なので、ゲームをやるたびに掛け金は \( 1.5 \) 倍になると期待できます。期待値の高い賭けに見えます。

\( x\) を変数として、資金の成長率(増加率)の期待値(算術平均)、幾何平均、幾何平均の近似値(式\eqref{gmean_approx2})、標準偏差、そしてシャープレシオをプロットしましょう。

f:id:yuuccxcc:20190425132934j:plain:w450
Fig. 3

ロットを上げれば( \( x\) を大きくすれば)、成長率は大きくなりますが、幾何成長率は \( x \simeq 0.101 \) で最大となります。これを \( x_{k_2} \) とします。つまりケリー基準に従うなら毎回資金の \(10\) 分の \( 1\) しか賭けてはいけないそうです。一回のゲームで掛け金は \( 1.5 \) 倍になるというチャンスを前にしてビビっているのでしょうか。

先ほどと同様に \( x_{k_2} \)を基準にして、いくつかの \( x \) について \( 20 \) 回、\( 40 \) 回、\( 60 \) 回ゲームを行ったときの資金の成長率のヒストグラムをプロットしました。サンプル数は \( 100 \) 万個です。

f:id:yuuccxcc:20190425134932j:plain:w800
Fig. 4 左から   x = 0.5 x_{k_2},  x_{k_2},  2x_{k_2} 。横軸は対数であることに注意。

成長率を対数で見ているからということもありますが、ケース1に比べて明らかに有利、絶対儲かるって感じには見えません。ビビり倒したロットのケリー基準に従った場合でも約 \( 25 \) %の確率で原資割れ、\( 60 \) 回ゲームをして最終的に約資金 \( 3 \) 倍が中央値です。運がよければ資金 \( 100 \) 倍も可能なようですが。利益が少ないことに嫌気がさしてケリー基準の\( 2 \) 倍でゲームをやれば運が良ければ資金 \( 1 \) 万倍も可能ですが、約 \( 50 \) %の確率で原資割れです。

ついでにケリー基準の \( 4 \) 倍でゲームを行った場合についても載せておきます。

f:id:yuuccxcc:20190425141909j:plain:w450
Fig. 5   x = 4 x_{k_2} 。横軸は対数であることに注意。

ほぼ損をして終わります。ゲームをやればやるほど分布の中央値は低下することが分かります。もちろん夢のような資金成長率を達成する可能性もありますが。

この結果を踏まえると極端な低勝率損小利大なトレード戦略でめちゃくちゃ儲かっていると自称している人はスーパートレーダーかただの運がいい人、または嘘つきということなんでしょうか。ぼくにはさっぱり分かりません。もちろん高勝率損小利大な戦略も存在するわけで、一概に損小利大戦略が悪いわけではありません。

ケース3

再び同じゲームです。 勝率 \( p = 0.85 \)、オッズ \( b = 0.77 \) とします。高勝率損大利小なケースです。リターンの期待値は ほぼ\( 0.5 \) なので、ケース2と同じですね。ゲームをやるたびに掛け金は \( 1.5 \) 倍になると期待できます。

これまでの流れ通り、\( x\) を変数として、資金の成長率(増加率)の期待値(算術平均)、幾何平均、幾何平均の近似値(式\eqref{gmean_approx2})、標準偏差、そしてシャープレシオをプロットしましょう。

f:id:yuuccxcc:20190425142855j:plain:w450
Fig. 6

成長率の期待値はケース2と同じなのですが、幾何平均は全く異なるふるまいをしていますね。ケース1、ケース2では \( x \) が大きくなればすぐに幾何平均は減少していたのに、今回は\( x = 0.65\) 程度までは上昇しています。あと、もはやどうでもいいのですが、近似式\eqref{gmean_approx2}の精度もずいぶんといいですね。これは成長率の標準偏差が小さいからです。気になる人は元の式を自分で眺めてね。

さて、ケース3では幾何成長率は \( x \simeq 0.656 \) で最大となります。これを \( x_{k_3} \) とします。これまでに比べる非常に大きい値です。ケリー基準ではゲーム1回に資金の約65%を投入してよいらしいです。ケース2でこんなことをやれば極めて高い確率で負け越します。

やはり \( x_{k_3} \)を基準にして、いくつかの \( x \) について \( 20 \) 回、\( 40 \) 回、\( 60 \) 回ゲームを行ったときの資金の成長率のヒストグラムをプロットしました。サンプル数は \( 100 \) 万個です。今回は   x = 0.5 x_{k_3},  x_{k_3}のみです。というもの \( x_{k_3} \)の値が大きく、 \(2x_{k_3} \) は1を超えるからです。

f:id:yuuccxcc:20190425144625j:plain:w650
Fig. 7 左から   x = 0.5 x_{k_3},  x_{k_3} 。横軸は対数であることに注意。

はい、強すぎですね。ケース2と全く同じリターンの期待値にもかかわらず、ほぼ確実に勝ち越せます。これで負けちゃう人はそ運ゴって感じです。
そして大きな掛け金を投入できるので、資金の成長率も非常に大きいです。ケース2ではケリー基準に従っても資金の \( 10 \) %程度しか賭けられないため、\( 60 \) 回ゲームを行った後の資金成長率の中央値は約3倍でした。そして約\( 25\) % の確率で負け越します。一方ケース3では、ケリー基準に従い資金の \( 65 \) %を賭けると、資金成長率の中央値は約 \( 63000 \)倍、そして負け越す確率は約 \( 0.5 \) % です。

もちろんこれまでの結果から分かるように   x を小さくすれば、より安定した利益を得ることができます。例えば \( x = x_{k_2} \) (ケース2のケリー基準)としてシミュレーションをしてみます。

f:id:yuuccxcc:20190425150342j:plain:w450
Fig. 8   x = x_{k_2} 。横軸は対数であることに注意。

ケース2と同じリターンの期待値のゲーム、同じ割合で資金を賭けていますが、Fig. 3の中央のヒストグラムとは全く違う分布ですね。\( 60 \)回ゲームをやることで安定して資金は \( 10倍 \) になり、\( 100 \) 万サンプルを取っても負け越したサンプルを得ることはできませんでした。代わりに資金が \(100\) 倍になるような確率もほぼゼロとなっています。

ケース4

確率分布が連続的な場合も書こうと思ってたけど無理。もうだるい。(実は上述の \( 3 \) つのケースもただの二項分布だから計算する前から分かりきったことだったし、対数正規分布正規分布についても同じようなことが起こるだけ。2項分布は正規分布で近似できるし、みんな再生性を持ってるからね。)

まとめ

ケリー基準は資産の幾何成長率を最大化する一回の賭けに投入する資金の割合を与えるものです。
資産の幾何成長率は資産の成長率の期待値と分散で近似でき、シャープレシオと似たような概念です。しかしシャープレシオよりずっと敏感に成長率の分散に反応します。
資産の成長率の分散は運にどの程度左右されるかを示す量です。分散が大きいとリターンの期待値が正でも運がよくなければ勝ち越すことはできません。
ケリー基準はできるだけ運に左右されずできるだけ大きい利益を上げようとする賭け方の一つであり、シャープレシオを最大化することと似たようなものです。最も効率的に資産が増加する賭け方などではありません。そもそも「最も効率的」という曖昧な表現に情報量はありません。賭け方というのは資産のうちどれだけを損失のリスクに晒して利益を得るのかという単なる選択の問題です。ただケリー基準に従っておけばそれなりに安定した賭け方ができること、ケリー基準を大幅に超えたロットを賭けるとリターンの期待値が正でも高い確率で負け越すことが分かりました。

リターンの期待値が同等な低勝率な損小利大戦略と高勝率な損大利小戦略にケリー基準を適用すると、高勝率な損大利小戦略の方が大きなロットを投入でき、安定して大きな利益を得られることが分かりました。同じリターンの期待値であれば損大利小戦略のほうがはるかに優秀だといえそうです。
一体なぜ損小利大戦略の方が優れているかのような言説が流布されているんですかね。明確な根拠を知ってる人はぜひ教えてください。

また、ここで考察したことは全てリターンの期待値が正の戦略があることが前提です。そのような戦略がない人は何をしても無駄です。どうしても勝ちたければおとなしく無限ナンピンをしましょう。

今回は単一のトレード戦略のロットを決めるための方策としてケリー基準を考察しましたが、複数の戦略がある場合は、それらを適切に組み合わせることでシャープレシオや幾何平均を上昇させることが可能です。例えば相関の低い小ロットの低勝率損小利大ストラテジーと大ロットの高勝率損大利小ストラテジーを同時に運用すれば、資金の成長率はより安定します。こういうのを戦略ポートフォリオっていうんですかね。例えばBBBさんが関連noteポートフォリオの考え方|ProjectBBB|noteを書いていますね。

**

数式をいじいじして幾何平均の綺麗な近似式を得られたことに興奮して久しぶりにブログ書いたらくっそ長くなって草