今天我們來聊聊大名鼎鼎的凱利公式(英文叫 Kelly Formula 或 Kelly Criterion,所以中文也譯作凱利準則)。
凱利公式由 John R. Kelly, Jr. 於1956年提出(Kelly 1956)。它指出在一個期望收益為正的重複性賭局或者重複性投資中,每一期應該下注的最優比例。凱利公式在“拉斯維加斯”和“華爾街”久負盛名。很多數學天才將它在賭場和投資中發揚光大,取得了非凡的成就。這其中最著名的大概就是 Dr. Edward Thorp,他開辟了戰勝 Blackjack(21 點)的策略,並使用凱利公式計算出來的比例進行下注(Thorp 1962);玩轉賭場後,Thorp 博士將它在統計學和概率論上的天賦用在投資中,他創建的 PNP 對衝基金曾在近 30 年內取得了年化 20% 以上的收益率(Thorp 2017)。此外,學術界也對凱利公式的各種數學性質以及實踐應用進行了大量的研究,這些成果匯總於 MacLean 等人編輯的論文集 MacLean et al. Eds (2010) 中。
凱利公式的計算非常簡單,但它背後所傳達的數學含義至關重要。本文從一個扔硬幣遊戲出發介紹凱利公式以及它的性質,之後會揭示凱利公式背後的實質。最後文章介紹如何把凱利公式推廣到量化投資中確定投資的最優杠杆比例。
鑒於凱利公式的知名度,網上介紹它的文章自不在少數。本文是我和另一位合夥人高老板思想碰撞的產物,雖不求另辟蹊徑,但也希望能給小夥伴們理解凱利公式提供一些新的思路。
讓我們從扔硬幣說起。
假設在一個賭局遊戲中,我們一直不斷的扔硬幣。每局中,硬幣出現正麵的概率為
(出現反麵的概率為 )且局與局之間扔硬幣的結果獨立。每局中我們下注一定的金額,如果出現正麵我們贏錢(假設賠率為 1,即不算本金,我們贏的錢和下注的金額相等),反之我們虧錢。由於
,這個遊戲長期的期望收益為正,因此玩下去對我們是有利的。
在這個遊戲中,我們需要做的決策是決定每局下注的金額。令
表示第 局的下注金額; 表示在第 局中獲勝、 表示在第 局中失敗。假設初始資金是 ,則第 局之後的資金量
滿足:
假設我們的目標是最大化
的期望 。由上麵的關係時可知,
的表達式如下:
由於
,最大化 相當於在每一局都最大化當期下注金額的期望 。這意味著,每一局中我們都應該有多少押多少。舉例來說,在第一局中,我們應該押注所有的初始資金,因此 ;如果我們贏了則 ,在第二局中下注
,以此類推。
這個遊戲的期望收益雖然為正,但我們每局獲勝的概率
畢竟不等於 1,而是小於 1。也許我們能連贏幾次,但總有“運氣用盡”的那一局。一旦在某一局中硬幣出現反麵,由於押注了全部資金,我們將會輸掉所有。由於 ,隨著賭局數 的增加,“輸掉全部”這種結果一定會出現。所以,以最大化
為目標的下注策略(即每把都“滿倉幹”)並不是最優的。
下麵讓我們看另一個策略 —— 固定比例投注(fixed fraction betting)。假設我們按照
的方式投注。每一局中,我們下注現有資金量的一個固定比例 。用 和 分別表示在 局中獲勝和失敗的次數, 。 局後的資金
為:
由於
,那麽我們永遠不會輸光。但是 顯然和 的取值有關。應該如何決定最優的 呢?因為扔硬幣有隨機性,因此 和
的取值也是不確定的,那麽這個最優又是從什麽意義上來說的呢?這就是凱利研究的問題。
定義函數
如下:
這個
是什麽呢?由 可知, 就是單局資金的指數增長率(即單局的對數收益率)。在決定最優的下注比例 時,凱利選擇最大化單局對數收益率的期望(下文會解釋為什麽),記為
:
令
的一階導數等於 0 可以求出最優值 ,此外不難驗證在 (0,1) 區間上 的二階導恒為負,因此 在
時有最大值。
就是最優的下注比例,它就是凱利公式。在上麵的例子中,我們假設每局的賠率等於 1。更一般的,如果用
表示每局賠率,則凱利公式的一般形式為:
如果我們一直將這個遊戲玩下去,按
比例下注將最大化對數收益率的期望。對於任何給定的局數 (和初始資金 ),按此比例下注實際上就是在最大化 ,即
局後資金量的對數的期望。
按照凱利公式,我們在每局下注時都在最大化
;而按照之前說的每局都全押,我們是在最大化 。由對數函數的特性可知, ,所以我們自然會問,為什麽要最大化
?這麽做如何就最優了?
按照
比例而非其他比例下注有如下這兩點顛覆性的優勢(在數學上都被證明了,我們隻需要牢記就行了):
的增大,按照凱利公式 下注的資金 將遠遠超過按照任何其他比例 下注的資金
上述兩點是按照凱利公式
下注時, 的重要性質。尤其是第一條,用白話來說,它的意思是隻要我們一直玩下去( 足夠大),那麽想贏得最多的錢( 盡量大),那麽就應該按照 下注。事實上,當 小的時候, 很有可能小於 —— 即凱利公式策略的資金額比不過其他下注比例的資金額。但隻要足夠大,凱利公式一定會笑到最後,戰勝其他任何比例。下麵我們就來解讀凱利公式背後的實質。
從上一節的數學表達式可知,凱利公式的推導中考慮的是當局數
趨近於無窮時,資金量 逼近其極限情況的一些特性。 一定超過其他 也是以 足夠大為前提的。但是在現實中,足夠大是多大呢?畢竟無論是在賭場中還是在投資中,我們的局數(投資期數) 都是有限的。對於有限次數的賭局或者投資,無法保證按照凱利公式下注能產生最高的期末資金量 ;當 有限時,使用凱利公式最優比例下注得到的在多大概率上優於其他下注比例?是否有比凱利公式更好的下注比例呢?
為了搞清楚這些問題,考慮下麵這個實驗。令
, , ,初始資金為 1。由凱利公式易知 。假設我們玩 20 局,即 。除了 外,考慮另一個下注比例。通過一百萬次蒙特卡羅仿真來比較這兩個策略。每次仿真中扔硬幣 20 局,並記錄 20 局後這兩個策略的資金額,最後對這一百萬次結果取均值。
結果顯示,按 0.6 比例下注的策略可以獲得比按照凱利公式下注更高的平均期末資金,即
。這其實不難理解,因為凱利公式的目標是最大化 ,而不是為了最大化 。每次全押(即 )的策略最大化 ,任何大於 的下注比例的期末期望 都會大於凱利公式的。
然而有意思的是,在這一百萬次實驗中,按照 0.6 比例下注的策略最終的
取值僅僅在 12.6% 的情況中戰勝了按照凱利公式下注得到的 。在現實中顯然無法將這 20 局的賭局進行一百萬次,我們隻能進行一次。雖然按照 0.6 下注的期望更高,但就隻進行一次 20 盤的賭局最終能得到的資金來看,使用凱利公式下注戰勝使用 0.6 的比例下注的概率高達 87.4%。
這是為什麽呢?
下圖顯示了當
取 時, 的概率質量函數(probability mass function)。扔硬幣 20 局,出現正麵的次數取值是 0 到 20 這 21 個數,因此對於每一個 , 的取值隻有 21 個。圖中橫坐標是 的可能取值,縱坐標是取值對應的概率。隨著 的增大, 的取值範圍隨指數增長, 的最大、最小值都按指數的速度在橫坐標的左右兩端延伸。由於 無論如何也不會低於 0,所以它能變小的範圍有限,而它可能變大的範圍則要大得多(比如 時, 的最大值為 38.34;而當 時, 的最大值為 12089.26)。因此, 的分布是非常右偏的。這種病態的右偏造成了 。由於嚴重的右偏, 在橫坐標上的位置非常靠右,但是在現實中根本無法實現。因此以最大化為目標的下注一定不是最優的。
隨著
的增大, 分布的右偏越來越嚴重,其越來越多的取值被壓縮在整體分布的左側,因此 大於任何給定常數 的概率 —— 隨 的增大而快速下降。舉例來說,當 時, 的概率為 0.416;而當 時, 的概率驟減到 0.126。這暗示著在 20 局結束後, 比更高的概率很大。即便是對於有限局數(本例中的 20),凱利公式計算出的下注比例仍然是非凡的。
我們將上麵的結論推廣到更一般的情況。對於現實世界中任意給定的
、 以及賠率 (下麵假設 ),我們都能利用凱利公式算出 ,那麽最少需要玩多少局我們就能拍著胸脯說使用下注一定比其他任何別的 f 所獲得的收益更高呢?
下麵這個熱圖為
以 90% 的概率(足夠拍著胸脯說了)戰勝其他 所需要的最小局數。其中每一行左邊的數值為出現正麵概率 的取值,每一列最下方的數字代表下注比例 。每個 對應的 也相應的標注在圖中。舉個例子,如果我們看 那一行, 的格子所在列為 ,說明 。該行的其他列中的數字說明了 以 90% 的概率打敗 所需要的最小的局數 。比如當 時,對應的格子裏的數字是 28,說明僅需要 局, 就能以 90% 的概率戰勝。
當
接近 的時候, 打敗 所需要的最小局數要高一些。但在現實中,如果 ,那麽我們刻意去拿它和 或者 這些很接近它的比例去比也沒什麽意義。 越接近 , 也就越接近 ,所以我們會用一個和 顯著不同的 來對比。從上麵的熱圖可以看到,對於任意給定的 ,當 和 顯著不同時, 僅僅需要很少的局數(一般不超過 50)就可以以 90% 的概率戰勝 了。50 是一個什麽概念?如果我們在賭場待幾天,重複的玩一個賭局 50 次恐怕很容易。如果我們做投資,以周頻為單位的話,50 次隻不過是短短一年,以月頻為單位的話,50 次也不過區區 4 年出頭。所以,50 次以內在現實生活中是非常容易達到的次數。因此,對於現實中的有限的情況,凱利公式也能在很大的概率上保證是最優的。
第二節直接給出了結論說明當
足夠大的時候, 一定是最高的;本節通過實證說明即便在 有限的情況下, 也大概率是最高的。那麽,到底是什麽保證了凱利公式的如此非凡呢?下一節就來給出答案。
上一節的介紹讓我們對凱利公式已經有一定的理解。本節就來揭示凱利公式背後的實質。
前文說到,以最大化
為目標製定下注比例根本不靠譜。那麽來看看靠譜的目標。第二節指出,凱利最大化的是單期對數收益率的期望,對於任何給定的 ,這等價於最大化 ,即 的對數的期望。在上一節中,我們給出了 時, 的概率質量函數,並指出隨著的增大它呈現出越來越顯著的病態右偏。
下麵就請睜大眼睛,我們要變魔術了!
將上一節中
的概率質量函數的橫坐標變成以 為底的對數坐標,那麽它們就變成了下麵這個樣子。由於進行了坐標變換,下麵這個其實就是的概率質量函數。
怎麽樣?
, 的概率分布不再右偏,而是呈現出幾乎左右對稱的鍾形(bell-shaped)形狀(當然 的取值還是隨著 的增大越來越寬)。這個鍾形不太平滑是因為 的取值比較小。假如 ,那麽不同比例 下的分布如下圖所示,分布更加平滑,鍾形左右更加對稱。
你一定已經猜到了我為什麽多次提到“鍾形”。因為正態分布的形狀就是“鍾形”的。隨著
的增大, 的分布越來越接近正態分布!此外,上麵了兩張圖說明隨著 的增大, 的眾數(即 的所有取值裏麵概率最高的那一個,就是圖中概率質量函數的那個"尖兒"對應的 的取值)先變大、後變小,在 時達到峰值。對於正態分布來說,它的眾數就是它的期望。因此,分布上這個“尖兒”對應的 的取值向右移動的過程就是 向右移動的過程。這意味著 在 時最大,而這正是凱利求解時的初衷。
對於初始資金
(假設等於 1), 就是整個局的對數收益率。對數收益率的最大好處是它的可加性,把單期的對數收益率相加就得到整體的對數收益率。
由於不同期之間是相互獨立的,
期對數收益率相加相當於 個獨立的隨機變量相加。由中心極限定理(Central limit theorem)可知,它們的和 逼近正態分布,這解釋了為什麽上麵的概率分布呈現出“鍾形”。
由於
是整個 期的對數收益,因此 就是每期對數收益率的均值。由大數定律(Law of Large Numbers)可知, 隨著 的增大一定會收斂於它的期望,即 ;對於給定的 , 期的總收益會收斂於。
我們玩一個賭局或者投資,最終是想讓
越大越好,但我們不知道 最終會變成什麽樣,或者會收斂到什麽值。但上麵的分析說明隻要 足夠大,大數定律保證了 的對數,即 ,一定會非常接近它的期望 ,那麽我們自然就想找到一個下注比例使得 盡可能的大。而凱利公式的 恰恰就是使最大的下注比例。這就是凱利公式為什麽 NB 的原因。
由於中心極限定理和大數定律的特性,我們並不要求單期的收益率滿足特定的分布。因此即便本文中使用扔硬幣這個例子 —— 它的單期收益率是個伯努利分布 —— 凱利公式的思想,即最大化單期對數收益率,可以應用到任何不同的分布中。
最後想提一句的是,凱利當初選擇使用對數收益率是受了伯努利對數效用函數的啟發。伯努利於 1738 年發表了一篇關於風險下做決策的重要論文(原作不是英文版,後來為了推廣,於 1954 年被一個大牛教授翻譯成英文出版,見 Bernoulli 1954)。在那篇文章中,伯努利提出了對數效用函數以及著名的聖彼得堡悖論(St. Petersburg paradox)。
隨 的變化如上圖所示。由於對數函數的特性,它說明當 時(即我們在期末贏錢了),我們掙得越多,感受到的邊際喜悅越低;當 時(即我們在期末虧錢了),我們虧的越多,感受到的邊際痛苦越高,這十分符合人在投資時的主觀感受。所以,從最終收益 的效用的角度來說,最大化期望效用
也是對凱利的初衷的一種解釋。當然,對數收益率可以相加,這樣單期的收益率能和總體的收益率聯係起來。因此從業務實際出發,選擇對數收益率作為優化目標實屬必然。
最後就來看看如何將凱利公式應用於量化投資中確定投資品的最佳杠杆比例(倉位)。
首先來看一種“生搬硬套”的方法。對於很多策略(特別是技術分析策略),一般都有勝率和盈虧比的概念。這裏勝率就是每次交易賺錢的概率,即
;盈虧比就相當於賠率 ,即每單位虧損對應的收益。所以,我們可以使用凱利公式計算每次交易的倉位。當然,考慮到投資者對於風險的訴求,還可以在這個倉位控製上加一個風險係數,從而進一步降低倉位。
但這種方法並不是很好。這裏的賠率的計算方法是所有盈利交易的平均收益除以所有虧損交易的平均虧損。由於每個交易的開倉、平倉時間並不固定,因此每次交易的持續時間都是不同的。這種方法在計算收益率時完全不考慮交易時間這個因素。比如兩次贏錢的交易,一次開倉時間為 2 天,收益 1%;而另一次開倉時間為 3 小時,收益為 1%。它們的平均收益為 1%,但是顯然這兩次交易的風險特性完全不同。所以,這個不考慮交易時間的賠率計算方式是有問題的,以此計算的
並不合理。
下麵就來看看更合理的應用凱利公式的方法。我們並不是生搬硬套第二節中的那個
公式,而是利用凱利公式的思想,即最大化單期對數收益率。由於收益率都是相對一個給定的頻率而言的(如日收益率、周收益率等),因此這種方法更加合理。
假設一個投資品的單期的百分比收益率(即期末價格 / 期初價格 - 1)滿足均值為
、標準差為 的正態分布。可以證明,在這個假設下,該投資品的單期對數收益率的期望為 。我們來看看最大化該對數收益率的杠杆率是多少。
當我們使用
倍的杠杆時,均值和標準差分別變為 和 ,因此對數收益率變為 。以 為自變量來最大化。對其求一階導數並使它為 0,並檢查其二階導數有:
一階導數二階導數
由一階導數等於 0 可得最優的杠杆率為
,由於二階導數恒小於 0,因此對數收益率在有最大值。因此,凱利公式確定的最優杠杆率就是:
在實際使用中,
和 難以估計,此外不同期之間的收益率也很難保證絕對獨立,因此業界普遍的觀點是凱利公式的理論杠杆率風險較高。為此,普遍的做法是把 看作是杠杆率的上限,而使用的杠杆率,這稱之為“half-Kelly”。投資者可根據自己願意承擔的最大風險來決定是否進一步降低杠杆率。
最後想說明的是,無論如何應用凱利公式,重複性投資畢竟不是玩一個有固定且獨立收益特征的賭局。投資的收益參數隨時間不停的變化,這就給我們在投資中應用凱利公式帶來了更多的障礙。有人說凱利公式的核心是控製風險,我比較認同這句話。畢竟,控製好風險才能在市場中活得長,活得長才有可能獲得更高的收益。
參考文獻
免責聲明:文章內容不可視為投資意見。市場有風險,入市需謹慎。
原創不易,請保護版權。如需轉載,請聯係獲得授權,並注明出處,謝謝。已委托“維權騎士”(維權騎士_領先的原創內容監測、保護及快速授權平台) 為進行維權行動。