📖 ZKIZ Archives


Kelly Criterion

看到Michael兄義憤填膺地談Kelly Criterion,其實大可不必,現今世界並沒有明文規定誰應該用誰不應該用,別人要用,關你咩事(笑)?Kelly Criterion是上世紀五十年代的產物,已在世60幾年,老過池某好多,如果投資或賭博界人士現在看到Kelly Criterion還像發現新大陸一樣大驚小怪、大呼小叫,其背景知識的匱乏可想而知。

池某應算是寫Kelly Criterion寫得較多的Blogger(不敢說是最多),在Google search “Kelly Criterion 投資”或“Kelly Criterion 賭馬”,排在前面的基本上都是池某的文章。在這裡實在有責任作一個提醒:Kelly Criterion是一把雙刃劍,不能亂用;使用得當,它是一個收益放大器;使用不當,它是一個破產加速器。



當年John Kelly證明Kelly Criterion時,使用的是以二次derivative求optimal的傳統方法,簡潔而漂亮,有Pure Maths根底的看起應該沒什麼難度。然而當完美的理論應用到處處受限制的現實,問題就很多了。

理論與現實最大的差距是“無限”,數學的偉大是什麼都可以解釋到無限,但人類社會活動包括經濟活動都是有限的。使用Kelly Criterion時,即使對概率的計算是準確無誤,也完全有可能在幾次交易之後輸掉絕大部份的資本,理論上這並不是什麼問題,只要再經過無數次交易,最終還是能回復到理論值的結果。問題是現實中並不存在“無數次”交易,只要資本跌至低於最低注碼要求或一手股票的金額,就相當於已破產,翻身無望。

故此,經濟學泰斗Paul Samuelson始終對可以令人隨時破產的Kelly Criterion嗤之以鼻,認為是歪理邪說,並一直對之痛毀極詆。

Kelly Criterion後來在某些領域獲得成功驗證,主要是使用了概率論裡的大數法則(law of large numbers)去解決上述的“無限”或“無數次”問題,例如Edward Thorp在賭場一局接一局地賭二十一點,William Benter在香港的馬場一場接一場地賭馬,都是以不斷重複下注的“大數”,使結果接近理論值。

但要注意的是,無論是Edward Thorp賭二十一點還是William Benter賭馬,Kelly Criterion都只是輔助工具,並不是什麼可以贏錢的神奇公式。Edward Thorp贏錢的關鍵是其數牌優勢,William Benter贏馬的靈魂是其logit model。

既然談到“無限”,有必要說多一些。Kelly Criterion裡的“無限”要求,並非財演大師那招“無限補時”,而是無限交易。如果是所謂價值派那種Buy and Hold操作,只做一次交易,相當於只賭一舖大細,Kelly Criterion根本無用武之地。故Kelly Criterion早期在股票投資領域並不流行,特別是James Simons那種一秒鐘交易數十次的高頻交易出現之前。

Kelly Criterion流行不起來的另一個原因,是這條公式雖然看起來簡單,代入預期回報率和機會率就能得出注碼比例,但實際上我們遇到的賭局都不會只得一個選項那麼簡單,只要出現兩個以上選項,就無法以加減乘除計出最優比例,需要解多重積分的專業知識,才能寫出計算比例分配的Kelly calculator。

Kelly calculator又分兩種,第一種是賭馬的情況,無論一場賽事有多少匹馬上陣,所有馬匹的機會率總和是1,其結果也是互斥的,最終只會有一匹馬勝出;第二種是賭波的情況,很多場波球同時進行,它們的機會率是各自獨立的,賽果也是可以多變的。

第一種情況還算比較容易處理,有較多的條件可以利用,池某多年前就曾屙尿撞棍地撞中一條捷徑,繞過那些煩人的多重積分,寫出了比《計得精彩》隨書附送版本更快更穩定的Kelly calculator,計算14隻馬的“獨贏”注碼,瞬間就能出結果。且能不斷增加選項,即使計算有91個選項的“連贏”注碼,也只需兩三秒時間。

第二種情況就沒這麼簡單,就算避得開多重積分,每加一個選項,也少不免要加個loop,其間還有越來越龐大的排列與組合問題需要處理。池某當年絞盡腦汁,用以近兩個星期時間才成功解決。

要將Kelly Criterion應用於股票的注碼分配,無疑屬於第二種情況。故此,若想知道一個人是否真的研究過Kelly Criterion,還是現學現賣、濫竽充數、招搖撞騙,最簡單的做法就是以第二種情況作試金石,是龍是蟲一試就知,真的假不了,假的真不了:list出20隻期望回報和機會率都不一樣且都是正expected value的股票,如何計算這20隻股票的最優注碼比例?如果沒作過認真研究,別說20隻,計2隻都很大機會計錯。


後記:

池某寫這篇文章時,基本上是一氣呵成,沒有停頓過,但同時內心是幾經掙扎的。一方面,作為在市場內搵著數的小賭徒,池某非常樂見抱著無用工具、使用錯誤方法的水魚衝進市場引頸受戮;另一方面,作為一名曾經的數學老師,看到數學知識被人如此曲解,而這種謬誤還要被傳播,心裡實在不是滋味。

池某過去從不在意自己的文章有沒有人看,但希望各位blog友方便的話可以幫忙轉發呢篇,多一個人看到,未必多一個人獲救,如果能讓盲從羊群、頭腦發熱的人停一停、想一想,已是萬幸。
PermaLink: https://articles.zkiz.com/?id=229454

繼續Kelly Criterion

投稿到媒體緣於塘人兄那句玩笑話。塘人兄說,懷疑香港的媒體有潛規則,blogger的文章一旦被刊出,就要unlink塘人兄的blog。實踐是檢驗猜說的唯一標準,是真是假,試試便知。


本以為這種blogger的口水貨最多放在網上攝下位走過場就算,沒想到老總很認真地回覆,說看起來也應合雜誌讀者的口味,不如放到雜誌。那就當然要客隨主便了。忽然有一種奇怪的感覺湧起,池某平日的工作是處理別人的來稿,這次卻身份逆轉,變成被處理,聽候發落,報應也。

雜誌是月刊,一個月才出版一次,加上這類稿件沒有時效性,慢慢等吧,只是“實驗”的時程也拉長了,期間塘人兄還要玩搬blog,嚇得池某連忙add晒新舊網址,以確保“實驗”結果可靠。

另一個想不到的是池某的身份被變成“財經博客”,看來要學學Mike兄、森而兄那樣多加些親子、生活題材,將blog的內容多元化了。池某一直沒有為自己所寫內容的定下專門的、特定的範疇,寫這個blog的初衷,在本blog的第一篇blog文已作了說明,就是記下一些需要記得的知識和資訊,特別是那些細微而容易被忽略、漠視的,故取blog名為“積微錄”。

“積微”一詞,出自荀子《強國篇》:

積微,月不勝日,時不勝月,歲不勝時。凡人好敖慢小事,大事至,然後興之務之。如是,則常不勝夫敦比於小事者矣!是何也?則小事之至也數,其縣日也博,其為積也大。大事之至也希,其縣日也淺,其為積也小。故,善日者王,善時者霸,補漏者危,大荒者亡!故,王者敬日,霸者敬時,僅存之國,危而後戚之。亡國,至亡而後知亡,至死而後知死。亡國之禍敗,不可勝悔也。霸者之善箸也,可以時托也。王者之功名,不可勝日誌也。財物貨寶以大為重,政教功名者反是,能積微者速成。詩曰:德如毛,民鮮克舉之。此之謂也。

兩千多年前的文章,論述深刻厚重,指明了為人處事的應有態度,以現代的眼光來看亦不覺過時。文章的大意,用今日的話說,就是大多數人都好高騖遠,對小事不上心,一心只想做大事,實際上這種只想做大事的人,並不如那些認真做好每日小事的人。因為小事很多,每日都有,累計所費的精力與時間很多,但累積的成果也大;真正的大事並不常發生,累計所費的時間與精力不多,積累的成果也少。所以,積累微小之功,實際上是能最快成功的。

用大眾更熟悉的語言來說,就是大多數人一心只想買中隻倍升股或扒個大冷門,一夕發達,實際上最終表現並不如那些長期在平常市況取得平常回報的人,因為大多數市況都是平常的,平常的回報不斷累積就會變得很不平常;而大冷門並不常發生,即使偶然中一次,攤長來看回報也會變得很平常。

中一次100倍和中十次10倍,回報和風險不是一樣嗎?當然不一樣,因為有複式效應,因為有Kelly Criterion。
PermaLink: https://articles.zkiz.com/?id=237849

Kelly Criterion的應用

上水河馬兄等blog友在上文的留言中談及Kelly Criterion的使用,特別是對於Kelly Criterion是否適用於賭馬,列舉了不同的觀點,池某覺得要三言兩語說清楚這個問題也不容易,故特別找回發表於《信報月刊》三月號那篇文章,雖然內容與池某過去的文章有部份重複,但尚算是較簡單而完整地說明了Kelly Criterion的來龍去脈、適用範圍,以及應用於不同情況要顧及的問題等等。簡而言之,池某的觀點是,不必把Kelly Criterion神化為無往而不利的賭博公式,也不必偏執地把Kelly Criterion貶為無用之物。用得其所,受用不盡;亂用一通,禍患無窮。


1956年,當時美國AT&T公司屬下的《貝爾系統技術期刊》刊發了一篇題為《對信息傳輸速率的重新詮釋》(A New Interpretation of Information Rate)的論文。60年來,論文的內容一面受到投資者、賭徒熱情追捧,一面被名家、學者無情鞭撻。儘管論文的題目早已被人遺忘,它的另一個名稱卻愈來愈廣為人知,那就是Kelly Criterion。

一篇信息學的論文,卻震動了投資界、賭博界,論文的作者John Larry Kelly應不會感到意外,本來他就將論文命名為《信息論與賭博》,只是公司高層因對形象與道德問題有所顧慮,才要求他更改標題。John Kelly這篇論文的出發點就是要計算怎樣以「不公平」的信息從「公平」的賠率中獲利,而且將利潤最大化。

Kelly Criterion,一般譯作凱利公式,其基本形態是這樣的:f=p/a–q/b
其中,f是投入資本的最佳比例,p是盈利的機會率;q是虧損的機會率,在非勝即負賭局中,就是q=1-p了;a是虧損幅度;b是淨盈利率。

一般來說,在賭博遊戲中,輸就輸掉所押賭注,故a=1;如果採用常用的賠率o代替淨盈利率b,即b+1=o,得出:
f=p–q/b=(p*b-1+p)/b=(p*(o-1)-1+p)/(o-1)=(p*o-1)/(o-1)
就是Kelly Criterion最常用於賭博的版本。

例如,以100元本金玩擲硬幣遊戲。假設每次只能押注一面,猜錯會輸掉注碼,猜中賠率為3倍。這是一個對參與者來說明顯有優勢的遊戲,但怎樣才能以最快的速度贏最多的錢呢?想一次過贏得最多,當然是全數押下去,但這樣只要輸一次就「清袋」了;想安全一些,每次押10元如何?似乎效果又很有限。John Kelly在其論文中證明了,Kelly Criterion就是可以令資金增長得最快的公式。

根據Kelly Criterion,這個賭局每次最佳的投入注碼比例為f=(0.5*3-1)/(3-1)=25%。猜中,本金變成100-25+25*3=150元,然後以150元作為新的本金,再以25%的比例下注。如此類推,資本長玩長有,永不可能是零,可以有效避免「清袋」,又能實現以最快的速度增長。理論上很完美,但是...

回到實際,即使是機會率50:50的賭局,也並非必然賭兩局就會贏一局的,連贏兩局並不奇怪,連輸兩局也不奇怪,連輸十幾局也是可能的。上述例子的賭局,只要連續五次猜錯,本金就將萎縮至100*0.75^5=23.7元;連錯十次,本金就會只剩下5.6元。理論上這並不是什麼問題,只要再經過無數次押注,最終還是能回復到理論值的結果。但在現實中這是個大問題,如果遊戲要求每注最低限額為10元,連輸九次就是實質破產,沒有翻身機會了。

由此可見,即使是有全面賠率優勢的賭局,即使概率準確無誤,使用Kelly Criterion,也是可能使人快速破產的。這是理論與現實的差距造成的,理論可以解釋到無限,現實是人類社會的活動,包括經濟活動,都是有限的。故看起來很美好、用起來很危險的Kelly Criterion一直備受咎病和質疑,經濟學泰斗Paul Samuelson就斥之為異端邪說,據說連作者John Kelly本人在其有生之年也從不曾使用Kelly Criterion贏過錢。

但Kelly Criterion由始到終都不乏支持者,包括推薦John Kelly發表這篇論文的信息學鼻祖Claude Shannon,數學家Edward Thorp更親赴賭場賭二十一點去驗證,並將其橫掃賭場的經歷寫成Beat the Dealer一書,Thorp還透露,年輕時已與他相交的股神巴菲特,也是用Kelly Criterion的思維方式來投資的。把香港馬場當作提款機的大鱷William Benter也在多個場合表示,所有成功的賭馬集團都是按某個比例的Kelly Criterion分配注碼的。

按某個比例的Kelly Criterion下注,就是成功規避「快速破產危機」的手段,例如使用0.5倍的Kelly Criterion,即每次只以半數的Kelly Criterion賭注下注,雖然回報會略為減少,卻能大大降低波動性,大幅降低破產的可能性。不過,這種為安全買保險而捨棄了增長速度的Kelly Criterion,嚴格來說已稱不上是能令資本增長最快的公式,但與其他投資策略相比較,其效果依然是最好的。

2005年,William Poundstone所著一書Fortune's Formula出版,收錄了John Kelly、Claude Shannon、Edward Thorp與Kelly Criterion發展的詳盡故事,一紙風行,使Kelly Criterion成了家傳戶曉的「財富公式」,也使無數投資者和賭徒爭相仿效,但真正能體驗到Kelly Criterion威力的人並不多。原因有二:其一,很多人只是隨大流追逐Kelly Criterion,而誤以為Kelly Criterion就是一條可以創造財富的公式;其二,不少人都「以為」自己在正確使用Kelly Criterion,實際上並不是那麼回事。

Kelly Criterion本身並不能產生財富,而是任何可盈利系統的最優加速器。例如Edward Thorp在賭場賭二十一點,贏錢的關鍵是他獨創的那套數牌技巧,甚至他後來轉戰金融市場,贏得「量化投資之父」的榮譽,靠的也是他自己所創的,比Black–Scholes model更早的期權定價公式;而William Benter賭馬能贏錢,則是靠他苦心經營的統計模型。Kelly Criterion的角色,只是「輔助」數牌技巧和統計模型把其原本優勢發揮得更有效而已。也就是說,如果使用者手上沒有一套具優勢的投資系統,Kelly Criterion也就沒有著力點了。

另一方面,人們之所以經常誤用Kelly Criterion而不自知,是因為Kelly Criterion看起來很簡單,f= (p*o-1)/(o-1),只需代入概率p和賠率o,就能計算出最優投入資本比例f,連小學生都能看明白。但現實中的賽局,很少是如上述擲硬幣的遊戲那麼單純的,例如一場馬,有14匹馬上陣,其中有些需要下注有些不需要下注;又如同一時間有10場球賽開賽,同樣其中有些需要下注有些不需下注,那麼最優的投注比例應該怎樣計算?

把問題簡化一些,當作一場有A、B、C三匹馬上陣的賽馬。假設A、B、C三匹馬的勝出概率分別為0.5、0.3和0.2,而實際賠率為2.2、3.2及2.3倍。如果逐個代入Kelly Criterion,那麼只有A值得投注,投入本金比例f=(0.5*2.2-1)/(2.2-1)=8.33%。

大多數投資者都會以為這樣簡單地把概率p和賠率o代入公式就是正確使用了Kelly Criterion,但這是錯的!試看看同時投注A及B的情況,同時投注A和B,回報是1/(1/2.2+1/3.2)=1.3037倍,A和B兩個選項覆蓋了0.5+0.3=0.8的機會率,故最佳投注比例為(0.8*1.3037-1)/(1.3037-1)=14.15%。

所以這個賭局要投入賭本的14.15%,才能發揮Kelly Criterion的威力,按表面數字直接代入得出的8.33%是錯的。14.15%的賭本如何分配在A、B兩匹馬身上,又產生了新的計算問題。而這僅是一場3匹馬上陣的簡單情況,現實中在香港一場賽馬可多至14匹馬上陣,所涉及的計算量和複雜程度已遠遠超出人力所能應付的範圍,一定要編寫電腦程式才能解決。這等於為Kelly Criterion的使用者設置了一個知識和技術的門檻。

不幸的是,賽馬的情況還是相對簡單的,因為無論一場賽事有多少匹馬上陣,所有馬匹的機會率總和一定是1,其結果是互斥的,最終只有一匹馬勝出,有了這些條件可以利用,對跨過了技術門檻的人來說不算是高難度。至少比計算同時進行的多個獨立賽局(例如一個股票組合或同時進行的多場球賽)要容易一些。

故投資者欲以Kelly Criterion在市場裡尋寶,幾個要點不可不注意:第一,自己是否已擁有一個具優勢的可盈利交易系統?第二,自己的知識和技術是否已經跨過了可正確使用Kelly Criterion的門檻?第三,任何時候都不能忘記,即使所有計算都準確無誤,使用Kelly Criterion也是有可能令人迅速破產的。稍一不慎,天堂很遙遠,地獄在眼前。
PermaLink: https://articles.zkiz.com/?id=252867

Next Page

ZKIZ Archives @ 2019