2016年12月9日 星期五

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友方便的話可以幫忙轉發呢篇,多一個人看到,未必多一個人獲救,如果能讓盲從羊群、頭腦發熱的人停一停、想一想,已是萬幸。

314 則留言:

  1. 池兄真才實學,能最好地演繹kelly criterion的投資者,非你莫屬:)

    至於阿大師...可能要佢用擲硬幣、解釋如何用Kelly criterion來分注本金,也有難度了吧~

    回覆刪除
    回覆
    1. 用擲硬幣解釋Kelly criterion唔易架,如果同時擲20個硬幣,每個的賠率和概率都不一樣,就會同文章裡那道題一樣咁攞命。

      刪除
  2. 其實價值投資者用Kelly Criterion的確幾好笑。

    相信可能係見池兄的博客火紅,知道有市場,所以又打算用來開班搵食吧。

    回覆刪除
    回覆
    1. 係好笑。池某都好好奇「無限補時」同「無限交易」可以點樣共冶一爐。
      另,池某個blog唔火紅架。呢度冇野教,冇野學,冇大師,冇學員,冇吹捧,冇權威,百無之地,只有同blog友的互相砥礪同互相虐待,唔係咁多人受得。XD

      刪除
    2. //池某都好好奇「無限補時」同「無限交易」可以點樣共冶一爐。

      有無限金錢咪得囉!

      刪除
    3. 簡單黎講,大師班係讀書分享會,讀完一本書見到d好似好勁嘅野就加入課程分享。問題係佢睇概通常係d蜻蜓點水專俾大眾睇嘅書,如kelly呢d牽涉數學嘅書,其實應該係搵番一堆專業嘅數學書或paper去研究,一知半解不如唔好知,否則如池兄所講係好危險。

      對於大眾黎講,用以下較簡單嘅資金管理策略便可:
      1) Fixed Dollar Amount
      2) Fixed Risk per Trade
      3) Volatility based Position Sizing
      網上大把呢d免費資訊,使咩報讀書會,要人讀俾你聽?(而且內容仲有機會錯)

      不過以上策略牽涉止蝕,又可能唔岩「無限補時黨人」用......

      刪除
    4. 補回link:
      http://www.quantshare.com/sa-411-5-position-sizing-techniques-you-can-use-in-your-trading-system

      刪除
    5. um......補多句。
      同時資金管理策略又要同你嘅投資策略匹配,所以又唔好見到就用,先諗清諗楚自己嘅策略係咩,再諗下應唔應該用以上技巧......

      刪除
    6. average true range, static re-balancing, 1/n naive wager

      刪除
    7. 邊有咁複離,人地只需估下賠率估下概率身家就爆升。XD

      刪除
    8. Wanderer師弟,師兄我尋晚睇金庸,見到有一門神功叫「九陰真經」,頭先又睇到一門絕學叫「降龍十八掌」,你師兄我對任何神功絕學只要一睇個名,加兩分幻想、三分亂估,即全盤掌握,你想唔想學?今晚教你丫,記得磅水先喎。

      刪除
    9. 流星你終於出現了,可喜可賀!

      刪除
  3. 股神應該有用Kelly criterion來分配投注,但實際上如何應用是個迷,池兄有見解,何況股票回報期望值和機率是相當個性因素。

    回覆刪除
    回覆
    1. 股神是有用Kelly criterion的,巴郡每季的交易紀錄都水蛇春咁長,好多都係增持減持平衡比例,絕非簡單的Buy and Hold。

      刪除
    2. 魔術師提到合理估值ODD和機率EDGE用checklist是較好方法之一。本身checklist 和估值有相關係數,而估值有多種假設,某些假設如未來現金流模式明顯對新興行業發展模式有大偏差,而checklist問題組成對得分-機會率評估有重大影響,似乎難有統一模式,在這部份完成前,方可談到Kelly 公式吧。

      刪除
    3. 機率靠估還說得過去,連賠率都靠估基本上係死路一條。
      如果賠率估估下都冇壞,池某又使乜勞師動眾搵IT人寫個app去勾馬會即時賠率?

      刪除
    4. 池兄,賭馬可能已經進入賠率也要估的年代,能愈準確預測率者愈大優勢。

      HG

      刪除
    5. 哈哈。明白你的意思,不過要估o岩賠率恐怕比估中頭馬更難。

      刪除
    6. 只有大庄才有可能真正掌握,的確難。以MLR為基礎再加自動化亦需要加上回扣(或其他賠率優勢)才有機會與大鱷一戰!

      刪除
    7. 不必同大鱷決戰。只要市場上那種概念模糊、一知半解、乜都靠估的水魚足夠多,就有搵食空間。Edge是客觀存在的,不是估出來的。

      刪除
    8. 市場生態本來就是這樣。

      刪除
    9. 雖然Edge是客觀存在,但要搵到,談何容易,池兄和其他blog友尋找倒的edge是得來不易。揾到的又是一另種edge。

      刪除
    10. 如果大家一同找到就大家都沒edge了,過程就像那些啡綠格。:)

      刪除
  4. //1 賠率我理解為合理估值 Odds= (目標價格+股息)/現時價格
    //2 機會edge =中了多小個checklist要求。(不需要全中,以得分作爲機會率)

    Kelly 的賠率,是客觀的,不就observer的主觀意識而轉變;但大師的理解明顯係主觀的(即使以同樣的價位買入,你和我的odds 和edge可以不同)...

    仲有如果開唔出(1)的賠率,即是又繼續無限補時,賭局永世唔開牌...

    回覆刪除
    回覆
    1. 想要幾多倍就有幾多倍,咁使鬼kelly咩,隻隻訓身就得。

      刪除
  5. 池兄你好,閣下文章令在下獲益良多,有一些題外話, 望池兄能指點一二.
    小弟是新手,最近在試做MLR,用的variables都是一般馬會網站找到的資料,但出來p value全都大於0.05,個別還大到0.99,效果相差千里,因為小弟datebase暫時只有200場左右,請問是variables錯還是採樣真是太少呢?
    P.S 小弟用STATA

    回覆刪除
    回覆
    1. 200場data應該是太少了,根據Bill Benter的說法,有1000場data左右點都可以做到一個似樣的model。

      刪除
    2. 謝謝池兄指教!小弟現在是用人手一筆一筆輸入...打到想叫救命:(
      另外我現在是把ln odds放在同一個model來用,發現嚴重影響整個model準確性,煩惱之際無意中在閣下的版裡看到一個two steps model的文章,躍躍欲試.
      但無奈不太明白裡面所說的 parameters alpha 和 beta 具體應該怎樣求,不知池兄可否指點一下迷津,感激不盡!

      刪除
    3. two steps model:
      第一步,用自己做的model,搵出所有馬的機率。
      第二步,用用自己做的model的結果,同odds再做一個model。呢個model只有兩個parameter,一個叫alpha,代表你自己的model,另一個叫beta,代表odds。

      刪除
    4. 明白,多謝晒.
      但例如今季才開始做model,根本不可能計到開始時的機率,因為要儲到一定場數才能generate到參數,要到今季過後,用整季的資料來generate一堆參數用來計下季的機率,到下季機率又儲得差不多時先可以用整季所有馬的機率來generate個alpha來做two steps model,池兄,這樣理解對嗎?

      刪除
    5. 馬會網站和蘋果馬網都有多季賽績連同賠率,做大路的factor已夠用。

      刪除
    6. 恕在下又插個隊問一下, 小弟亦係用2 step model, 但係發現左一個現像,就係賠率熱既馬,例如少過2點幾倍既,一Combine左自己既expected odds就會變得更熱,冷既就會更冷, 搞到原本計到值搏既變成不值搏,相當頭痛, 請問池兄有何高見?

      刪除
    7. 插嘴問問THOR兄, 你在step two regression時...odd 的chi square會否偏高???

      刪除
    8. 會, 計出黎的chi square誇張地小

      刪除
    9. 我也有同樣情況..但我是chi square出奇地偏高....摸不著頭腦...請池sir 解答.

      刪除
    10. 回thor兄:
      這是正常的,logit model的概率分佈是double exponential distribution,係會尖的更尖,平的更平。
      你應也會留意到,這樣你本來應該輸的注碼也會輸少很多。

      刪除
    11. odds的chi square出奇地偏高問題,即係你本來的model準確度不如公眾賠率。

      刪除
    12. 池兄如果第一步regression時就把odd加入model內,可否有效解決此問題???

      刪除
    13. 不能。只會被其中一個model dominated了另一個。

      刪除
    14. 多謝池兄一言驚醒夢中人

      刪除
    15. 哈哈。池某經歷過呢D失敗先敢講得咁肯定。

      刪除
    16. 謝謝池兄指教,小弟現在亦正在被其中一個DOMINATE左,仲頭痛緊,相信係EO仲未計得準確所致

      刪除
    17. !!!!odds的chi square出奇地偏高問題,即係你本來的model準確度不如公眾賠率。!!!!

      池兄.如自己的model不如公眾賠率準確,但因為會把兩個model combind,結合後會取各取兩個model的好處,能增加命中率。 

      刪除
    18. 說過很多次了,一定要突破命中率這個思維誤區,不要追求命中率。
      如果自己的model遠不如公眾賠率準確,無論怎樣combine,都是要輸錢的。

      刪除
    19. 不好意思, 想插一下嘴請教.
      本人是用one step model, 因為two step model人力物力上做不到,
      現正面對著被賠率影響很深的問題, 其實理論上是不是只要本身模型樣本夠多夠準, 然則就算是one step model也不會被賠率影響得那麼慘?

      刪除
    20. 1.two step model不會增加太多工作量,因為第二個model只得2個variable。
      2.本身model夠準是會令賠率的比重下降的,但那是整個model與賠率的比較,若把賠率放在model之中,是沒有任何一個factor能與之匹敵的,一定會被賠率dominate左。

      刪除
    21. 不會增加工作量?
      two step model首先要有所有馬的機率, 比如有1000場數據就要先計算返這1000場裡所有上陣馬的機率, 再用這1000場每隻馬的機率generate一次得出一個參數, 然後再同果1000場的賠率夾埋計.
      問題是要先重新計回那1000場所有馬的機率, 這才是令本人不知從何入手, 請問是這樣做嗎? 還是本人根本理解錯了, 請池兄糾正.
      本人也是沒辦法才用one step model放埋賠率下去...

      刪除
    22. 理解完全正確。
      直接用excel function或者用.Formula,話咁快計完。loop都唔駛行。

      刪除
    23. 池兄有個基本問題我請教一吓你. 我係用勝率代表騎師,每一埸賽事後騎師勝率都會有變化.database內所以騎師的勝率會一同更新.還是舊的數據會freeze佢.不受新成績影響? 謝謝...

      刪除
    24. 但假設手上只有1000場數據, 要計回此1000場馬的機率, 就要再借助對上多起碼1000場的數據才能算準確點...這問題又該如何解決?
      還是如果手上只有1000場, 就只能用來做準備計下個1000場馬的機率, 如是者就是手上要非常多數據才能踏入two step的門檻?

      此外池兄提到用excel function可以計返以前1000場的機率, 請問大體要按哪裡? 因為本人的excel只是打晒所有場次的raw data而已, 並沒有逐場分.

      刪除
    25. //係用勝率代表騎師
      要更新,不能做每場,至少每個賽日後要更新。騎師勝率變化可以很大,韋達近年的勝率就遠不如前幾年。

      刪除
    26. //用excel function可以計返以前1000場的機率
      將統計軟件搵到的Parameter Estimate擺落excel,對應返原本data,用SUMPRODUCT就得,但逐場分是必須的。
      手上有多少場data就計多少場,沒有門檻的問題。當然data需要不斷更新的,不能用上一千場去預測下一千場。

      刪除
    27. //要更新,不能做每場,至少每個賽日後要更新。騎師勝率變化可以很大,韋達近年的勝率就遠不如前幾年。

      例如騎師A, 賽後他的勝率由10%->11%, 我EXCEL SETUP逢騎師A
      就會由10%更新到11%(包括過去的賽日) 這做法有錯嗎???

      刪除
    28. 多謝池兄
      今晚就試下

      刪除
    29. 1000場好小兒科o者。祝成功。

      刪除
    30. 祝池兄越羸越多!
      問多一句用原本1000場搵到參數再在果1000場裡計機率, 不是說同一組數據不能用來計返同一組機率嗎?

      而且那1000場果個參數是未發生的事件(相對於1000場裡的第一場而言), 不會有衝突嗎?

      刪除
    31. 那應該是針對做R^2 test而言。
      這裡做的是把整組機率當成一個參數來計算。

      刪除
    32. 原本如此
      真要謝謝池兄耐指點我這一知半解之輩.

      刪除
    33. 一齊討論o者。池某說的不一定是對的。

      刪除
    34. 邊討論邊指教 哈哈
      其實要試一個參數有沒有效, 大概是要用多少場才能真正測出呢?

      刪除
    35. Bill Benter講過,1000場左右的數據已夠做一個大致有效的model。

      刪除
  6. 認同池兄所言,口說無憑,還是讓該位人兄先出成績來吧。

    回覆刪除
    回覆
    1. 唔使成績。計得出文章裡面條題就證明真係識。

      刪除
  7. 奈何很多人都不會明白law of large numbers的概念. 所以很多人唯有個人心理主導, 持股不停蝕就無限加時. 如果升少少就即刻賣出.

    回覆刪除
    回覆
    1. 市場上真的很多買一注大細又話用kelly、買一隻股票又話用kelly這種一知半解、東施效顰的水魚,如果他們誤解埋large number就更加正了。XD

      刪除
  8. 我有一半認同Paul Samuelson說Kelly是歪理邪說, 特別用在賭馬, 用這個做例子f = (p*o-1)/(o-1)
    Kelly的第一個前置條件是expected net winnings > 0, 本人嘗試過做了一個實驗, 發現expected net winnings最少要多0.2才能穩定地正數, 第二個重要條件是命中既頻率要平均不能有太大偏態, 即不能成日輸.

    而最關鍵的一點, 就是個P的準確度, 如果P是機率包的平均數, 那個標準差或偏態已經足以摧毀整條公式.因為這個公式是計正不計負, 輸打贏要的...

    回覆刪除
    回覆
    1. 河馬兄亦有道理,但方向應是如何補救Kelly 可能出現的缺陷。

      刪除
    2. 很多人以為直接把賠率和機率代入這條公式就是在使用Kelly Criterion,實際上無論賭馬、賭波,還是股票組合都是不能這樣直接代入計算的。就如文章裡那條題目,即使把股票數目減少到2隻,大部份人都是會計錯的。
      要成功解決multi Kelly和simultaneous Kelly的運用,才算是真正在使用Kelly。

      刪除
    3. 如果要用Kelly用得好, 首先要解決個P的準確度, 但如果搞得掂個P, 已經唔需要用Kelly.

      刪除
    4. 如果可以解決p,用不用kelly都能贏錢,但用kelly效果會最好;如果p是錯的,用kelly只會更衰。

      刪除
    5. 你有無考慮過封頂問題? 例如一場馬的獨贏, 你最多可以投注幾多錢? 佔彩池幾多變無著數?

      刪除
    6. 池某未去到beyond兄數百萬當係碎銀的層次,未諗到咁長遠。

      刪除
    7. 上水河馬2016年12月13日 下午6:51

      【你有無考慮過封頂問題? 例如一場馬的獨贏, 你最多可以投注幾多錢? 佔彩池幾多變無著數? 】

      google translate:

      [1]使用賭注池的大小(沒有你的賭注)和百分比抽水,確定新的賠率是如果你做出的賭注
      [2]使用這些新的賠率,重新計算最佳下注大小
      [3]如果最新的下注尺寸與先前的下注尺寸明顯不同(在舍入到當前的下注單位之後),則使用最新的下注尺寸返回步驟[1]

      上述過程“收斂”給定資金和池大小的最佳下注尺寸,假設初始下注不夠大,不足以使得賠率不盈利。

      刪除
    8. 如果一場買10-20萬, 已經可以影響差價的回報率, 所以做唔到無限擴大這一點...

      刪除
    9. 個pool始終有限,唔可能無限擴大。

      刪除
  9. 剛讀完Lecture 2: The Kelly criterion for favorable games:
    stock market investing for individuals https://www.stat.berkeley.edu/~aldous/157/Slides/lecture_2.pdf
    結論是:I’m not going to discuss whether you should invest in the stock market at
    all. If you choose to do so, here’s the academic viewpoint.
    The default choice is (something like) a S&P index fund, available with very low expenses.
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    If you really want to do better then there are three vaguely plausible ways
    none of which I recommend.
    Borrow money, if you can find a low interest rate.
    Diversified Kelley-optinmized portfolio, like IFA.
    Long term market timing such as the Shiller PE ratio [show

    回覆刪除
    回覆
    1. 余兄這種廣泛了解的精神很可取。
      江湖術士一葉障目以為執到寶,自食其果是咎由自取,害埋其他人又於心何忍?

      刪除
  10. KELLY的條件我就睇唔明了,不過原來池兄曾是數學老師!
    "阿SIR,呢條數點計呀?"
    "放學到保健室搵我!"

    GOOD~~~BYE~~~SIR~~~~

    回覆刪除
    回覆
    1. 放心。池某係攞正教育局permit的,絕對唔係冇牌開班。

      刪除
  11. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 一般來說,看到江湖郎中賣假藥,即使無效,只要無害,還是會寬容對待的,人地都係搵食o者,最多是調侃幾句而已。但看到在藥裡錯加了可能有毒成份而其本人又懵然不知,是否還能無動於衷呢?

      刪除
  12. 因為我著實是不吐不快,別人要用當然不關我事,但教人用以致富就是另一回事,所以才打了幾句希望有意了解的人多作了解才作決定。

    回覆刪除
    回覆
    1. 是的。如果是一些無益也無害的基礎知識,大家笑笑就算了。數學問題,啱就係啱,錯就係錯,識就係識,唔識就係唔識,冇可能明明唔識亂估一通就當係啱左。

      刪除
  13. 即使大師本人真係識計,但是開班授徒的目標卻是以為聽完照做即可的伸手式信徒,很難想像大師要如何在短時間內教會一眾信徒計掂哩條數……

    快餐人上

    回覆刪除
    回覆
    1. 識計?那不是加減乘除或excel + 計數機所能解決的,寫program都要用很多個loop,且受很多限制。以為用計數機可以計啱的肯定係唔識。

      刪除
  14. 睇BLOG好過上堂, 謝謝池兄!

    回覆刪除
    回覆
    1. 當係功課試吓做先……

      (0.8 × 1.98 - 1)÷(1.98 - 1)
      池sir,所以應該每次押注60%本金嗎?

      快餐人上

      刪除
    2. 唔好意思,想回下面唔小心回咗上黎…… >_<

      刪除
  15. 想請教池兄一個例子
    假設我去賭場玩大細, 先make 個assumption, 只得大細
    但係不論大或細, 都係1賠0.98, 姐係買100, 賠98蚊
    好喇, 假設賭場無出術, 姐係話50/50啦

    e+當我得到叮噹法寶, 我有辦法維持住80% 買中
    問題係
    我有1000本, 佢min 100蚊1鋪
    1) 我應該點計, 每一鋪買幾多, 先達至最高穩定回報?
    2) 同時, 我因為都仲有20%係會輸, 咁我要連輸幾多鋪先會輸到唔夠錢買?

    回覆刪除
    回覆
    1. 多謝回覆! 呢個都係我計出黎咁
      1000 x 0.6 = 600 (輸)
      400 x 0.6 = 240 (輸)
      240 x 0.6 = 144 (輸)
      144 x 0.6 = 86.4 (已經無得玩嚕)

      咁其實就算我有8成命中, 都係無用, 只要連續出錯都係死?
      咁其實如果要有最高穩定回報 同埋 我仲可以係呢個遊戲入面有份參與
      本身呢兩樣野係有衝突!? right?

      刪除
    2. 計錯左添
      1000 x 0.6 = 600(輸)
      400 x 0.6 = 240(輸)
      160 x 0.6 = 96 (已經無得玩)

      原來我連輸兩鋪, 已經無得玩
      但係我有8成命中都無用, 輸輸贏贏贏贏贏贏贏贏...呢個pattern 係唔會出現.....

      刪除
    3. 比例計算多謝快餐人兄在樓上代勞了。
      匿名兄出呢題真係用心良苦,說明即使擁有叮噹法寶般的概率優勢,使用Kelly Criterion也可能在三舖之後就輸爆廠,1000*0.4^3=64,不足100元。更何況賠率和概率都靠估的情況,後果就更難想像了。

      刪除
    4. 應該按左層樓套現幾百萬黎玩呢個GAME! XDD

      刪除
    5. 抵呀!增長無限喎,幾百萬同無限相比只係九牛一毛。XD

      刪除
    6. 【1) 我應該點計, 每一鋪買幾多, 先達至最高穩定回報?】

      這里有一些計算器,可能會啱你用。。。
      https://www.qfit.com/blackjack-online-calculators.htm

      另外可以做電腦模擬來試出需要的注碼。

      玩二十一點的優勢玩家,喜歡用翻本/輸清的比例來評估風險,例如5%的風險率。
      設定注碼和下注模式,做電腦模擬,可以知道翻本/輸清的比率。

      如果注碼不能夠無限細分,按照kelly計算出來的,必然overbet,問題只是overbet幾多。
      很多二十一點的優勢玩家,會用1/2kelly,1/4kelly,... 之類的,來避免overbet。
      二十一點專家們,尋求注碼分配時,也多數以電腦模擬作準。


      廿一點/大細,可以容易地電腦模擬1億手,來統計翻本/輸清的比例。賽馬一般以真實記錄來做模擬,樣本不多。馬的勝出機會率,也絕對沒有計算大細機會率來得準確。

      刪除
    7. 各位blog友有福了。
      Kelly Criterion使用不當會變成「害你公式」。
      macaupro兄是使用Kelly Criterion搵食超過30年的職業賭徒,怎樣取Kelly有利部份而防止其輸爆廠之害的心得絕對是寶貴的。

      刪除
    8. 其實可以用類似限回報方法賭...原理跟KELLY類似, 如果你估算20%機率WIN, 而你有10000本金, 可按一定比率, 例如1/4為目標即2500元, WIN 就買$2500*0.20=$500蚊. 當然賠率一定要多過1/20% 即5賠之上啦..可能是6賠-7賠...待本金增加一倍後再作調整..
      這方法...會比平注表現好, 穩定性會比Kelly高.

      因為如果用Kelly, 買一隻估算30%既馬但有20陪時, 會好易出事. 因為會用左你25%左右的本金..出現這情況時, 我們很多時是分不清到底是差價還是MODEL出錯. 這個就可以保障系統未穩定前的誤差風險.

      刪除
    9. 買馬唔可以就咁用kelly,要用multi kelly,再以1/4kelly、1/8kelly之類下注,是最優選擇。

      刪除
    10. Hi macaupro兄
      有賭場問題想向您請教(21點)
      不知是否方便留個聯絡方法
      伏望師兄不吝珠玉 感激不盡

      刪除
    11. 另要和池兄say sorry
      請恕小弟借了池兄blog的吸引力 在池兄地頭喧賓奪主

      刪除
    12. 哈。交流平台就是這樣用的,不用客氣。

      刪除
  16. 話時話池大俠,你點從“巴郡每季的交易紀錄” 就推論出巴郡/先知有用KELLY CRITERION?或問:如何從一份事後所見的交易紀錄而確切知道操作者有用KELLY?

    純學術討論. 抽水唔岩我 XD

    [quote]
    股神是有用Kelly criterion的,巴郡每季的交易紀錄都水蛇春咁長,好多都係增持減持平衡比例,絕非簡單的Buy and Hold。
    [/quote]

    回覆刪除
    回覆
    1. 哈。呢句表述確是有問題,交易紀錄只能說明股神不是賭大細般Buy and Hold,並不能作為證明他有用Kelly的充要條件。改成這樣說會好D:

      Edward Thorp說過股神是有用Kelly criterion進行投資的。巴郡每季的交易紀錄都水蛇春咁長,好多都係增持減持平衡比例,絕非簡單的Buy and Hold。

      刪除
  17. 凱理定律可計出risk of ruin...我覺得作為正ev賭戲投資是必須的

    回覆刪除
    回覆
    1. 是必須用kelly的,正確使用更是必須的。

      刪除
  18. 您好池先生,最近一個月我埋頭苦幹地建構自己的賭馬模型,當中有幾個問題想不通望池生賜教;
    一.我發現有些covariate的chisquare過高(例如騎師的chisquare超過二百,其他covariate只係雙位數,SIG.RR都正常)是正常情況嗎???
    二.我追看上文留言.看到有關two step model.如果chisquare越高代表數據越重要.那麼在two step model裹.我自己model的chisquare相比real odds高就表示有優勢???
    祝池生長賭長勝.

    回覆刪除
    回覆
    1. 1.騎師是一個很significant的factor,chisquare較高屬正常。
      2.可以這樣理解但並非必然。一來自己的model未必是很穩定的model,二來如果歷史賠率只是倍數而準確的派彩也會影響結果。

      刪除
    2. 馬真的越來越難賭...好辛苦才比real odd有些微優勢,但有幾個covariate不太穩定....池生你多唔多用合成covariate. 我個人應為用大路factor要戰勝市埸不容易...要轉轉灣動動腦筋發掘新的factor才有些微優勢.

      刪除
    3. 合成factor當然是少不免的,要找幾十個獨立factor難度太大了。

      刪除
  19. 首先謝過池兄無私付出,因為顧教授的新聞原故,開始接觸此Blog,獲益良多。先介紹一下自已,年過半百,賭足三十多年,投注地方由2蚊中場席,到家中只跟貼士網上投注,輸錢情況未有改變,一樣輸足三十年幾年,好彩本人有一份不錯的正職,否則已經沒了。直至遇上池兄的文章,下定決心以MLR方法計馬,今年才第一次出現正數,感謝並感恩。留下心聲為池兄加持一下。

    另,有一問題想請教。本人以「計得精彩」一書中Kelly 程式作藍本,編寫了連贏 Kelly 。本來單獨運算速度在十秒左右完成,但為進一步自動化,在Excel中連結了自動倍率及Expected Odd 等資料,在相同情況下運行時間增加十倍。不明原因,是否Excel Solver問題?還是程式未夠優化,希望池兄能提供一點建議,先謝。

    本人e-mail: william269269@gmail.com

    老賭徒上

    回覆刪除
    回覆
    1. 謝支持。兄台賭足三十多年,池某要叫聲前輩了。
      程式問題,池某技術方面好水皮(所以下下都要搵IT人幫手),技術建議想必也不會很高明。池某試有些情況是會run得很慢,第一種情況,用Solver確實是會慢過不用Solver很多,運算量越龐大越明顯;第二種情況,所運行的Excel版本若與原先所寫的版本不一樣也會明顯偏慢。「計得精彩」那個藍本應是Excel2003版本寫成的,若後期的再加工用Excel2007或更新的版本做,run起來也會出奇地慢,池某都唔知點解。

      刪除
    2. 多謝池兄回覆,會繼續研究及努力學習;做左「豬」這麼多年,真係有點累o

      老賭徒上

      刪除
    3. 客氣了。賭馬真係「勞動收入」,唔係「被動收入」。要落手落腳去砌,唔可以靠幻想、搏彩數。

      刪除
    4. 班門弄斧下先
      解決辦法1:
      分2個excel files 要用solver的放在1個 記得不要有link data 唔用solver的放在第2個 要計數就copy and paste落第1個file
      開啟時先單獨按microsoft excel的icon 2次(不要直接將file開啟) 此時會有2個excel 將2個files 各自拖進不同的excel內
      Solver的運行速度便回復正常

      解決辦法2:
      自己落手落腳寫個唔使solver既kelly 藍本可以跟wikipedia

      最後買連贏當然是自動下注的問題 前幾篇師兄們有過熱烈的討論 應該跟住做就冇錯

      刪除
    5. 謝過Perer兄,會繼續測試及改進。同意沒有自動下注程式,基本上不能執行連贏Kelly, 太大壓力了!出錯機會比Model還要高。

      刪除
    6. 按Peter兄建議,已改善了Kelly 運行速度,謝謝!最後一關是自動填寫注項,這關確實絕不簡單,依IT兄建議,用iMarcos試過,但不知什麼原因iMarcos未能控制投注金額:(

      老賭徒

      刪除
    7. 可以自動控制金額的。
      不過池某只係個IT白痴用家,具體邊部份控制都係一頭霧水。

      刪除
    8. 多謝池兄,建構這計馬工程,令我獲益不少,好似打機一樣過完一關又一關。無論這Model準確與否,已經滿足非常。對學工程的我,才知道「書到用時方恨少」

      刪除
    9. 成套動作真係一個系統工程,兄台贏在起跑線也。

      刪除
    10. 已成功完成自動填入注項程式,爽!但新的問題又來了,就係對一些賽積少的新馬及老退的舊馬有偏向性,新馬EO太高,舊馬太低…這可能Model沒有晨操及試跑的因子,我想這是大部分一人公司的共通問題…資源太少了。建設計馬工程,要不斷更新不斷loop。完全自動程式後,又再重新起步再loop過。

      刪除
    11. 新馬EO高舊馬低還算正常啦,畢竟新馬會進步,老馬好少打疊贏。

      刪除
    12. 想問下邊度買到[計得精彩]? 我見商務都已經無返貨..
      謝謝

      刪除
    13. 好像沒有再版了。其實好書真不愁沒有市場。

      刪除
  20. 小弟想請教一下, 賭FIXED ODDS彩池例如主客和,大細果D, 長線黎講係咪冇可能贏到馬會? 就算有都只係好少好少人?

    回覆刪除
    回覆
    1. 長線?你試下日日贏馬會睇下ban唔ban你a/c?

      刪除
    2. ban左的話落投注站用現金買囉, 哈哈

      刪除
    3. 馬會作為香港唯一合法賭博機構,如果日日贏錢有機會比人ban ac ?真唔真?馬會可以用咩理由去ban 一個日日嬴錢既ac?

      刪除
    4. 贏馬就未必會ban,贏fixed odds即係搶馬會錢。

      刪除
    5. fixed odds 作為投注者,買之前己經抽左水,點解係搶馬會錢?
      姐係主客和,大細,單雙,個d就係fixed odds?如果狂嬴就係搶馬會錢?
      咁似澳門賭場d老虎機既,輸得得,嬴就喊打喊殺?

      刪除
    6. 冇可能狂贏,賭波每張飛派彩是有上限的,無論你買幾多錢。

      刪除
    7. //fixed odds 作為投注者,買之前己經抽左水,點解係搶馬會錢?
      姐係主客和,大細,單雙,個d就係fixed odds?如果狂嬴就係搶馬會錢?//

      唔同大部分賽馬彩池(pool), fixed odds係同馬會對賭
      如果你不停贏莊家錢, 莊家唔受你玩絕對正常

      刪除
    8. 咁姐係有叮噹法寶長期keep住80% 命中,但係玩fixed odds 都無用?

      刪除
    9. 首先你要計埋得到叮噹法寶的機會率,然後再乘命中率,再乘賠率先知道EV係正定負

      刪除
  21. 請教下池兄
    係咪任何賭錢既野 expected return 計到係正數就值得去玩 ?

    回覆刪除
    回覆
    1. 符合大數法則才是,一舖過或沒延續性的賭局看EV的意義不大。

      刪除
    2. 多謝池兄解答 因為我上大陸討論區見到有個人出讓球心水 出左成千場 命中率有六成多啲啲 平均賠率約1.9 咁樣值唔值得一試 ?

      刪除
    3. 六成命中包唔包埋走盤先?包埋走盤未必有著數。

      刪除
    4. 睇命中率得六成多啲啲好似好普通 不過用凱利一計 個利潤就不得了

      刪除
    5. 唔計走盤 淨計贏輸 贏半輸半都包埋 不過兩者比例應該差唔多

      刪除
    6. 包埋贏半都未必有著數,需要計到好細。

      刪除
    7. 好的池兄 ^^ 我再觀察一下

      刪除
    8. //...因為我上大陸討論區見到有個人出讓球心水 出左成千場 命中率有六成多啲啲 平均賠率約1.9...//

      首先要香港有得買(如果你係響香港買波), 再者外國莊家抽水位比馬會低, 大陸贏唔一定代表香港贏

      刪除
    9. 關鍵是贏半的賠率已不是字面的賠率。

      刪除
    10. 贏半的賠率已經是要將小數點後的賠率除以2才算實際賠率
      如果出貼士咁勁, 不如收埋自己食?

      刪除
  22. 池老,請問,我數學只有中五程度,要看甚麼書/論文/課程 加強數學/統計學/微積分 等等的基礎?

    我看了哈佛大學的 統計110 頭幾集 及 部份課程內的家課,發現自己很多名詞也不懂,課程已經是入門級,自此我發現相當大鑊。

    如果不惡補一下 數學知識,想不做港豬也難。

    回覆刪除
    回覆
    1. Peter Pan兄曾作過好介紹:
      https://www.khanacademy.org/math

      刪除
    2. 可汗學院相當有名。現在我先去惡補一下,如果數學上遇到問題再請教各位。

      刪除
  23. 唔打唔撞有幸路過此地,爬完一輪文,獲益良多,以後多多交流!
    由於小弟電腦知識貧乏,只能運用一般EXCEL技能,用最近3季DATABASE加晨操DATA,簡單計算各駒機會然後下注。見到BLOG主及大家的技術,小弟真係自嘆不如!

    回覆刪除
    回覆
    1. Blog友們藏龍臥虎,池某都係自愧不如架。

      刪除
  24. 池兄可否提供馬會即埸投資額和賽果的XML link嗎???? 謝謝...

    回覆刪除
    回覆
    1. 噢,池某只知道幾個常用彩池賠率XML,其他的並不清楚呢。

      刪除
  25. 池sir
    想問如果計算出來馬匹的勝率很高, 但eo少於ro一點, kelly不建議投資,
    有時想用來做膽又怕蝕, 但不常又真的跑出, 這種情況應如何處理?

    回覆刪除
    回覆
    1. 馬匹的勝率很高但eo少於ro一點, kelly會建議投資的,雖然結果只是打和甚至要輸少少。
      記住一定要用multi kelly,不能聽大師們亂講直接用kelly公式。

      刪除
  26. 純訴苦...為何已找到27個有效參數,但beta的chisquare總是比alpha高(234:201)真令人苦惱

    回覆刪除
    回覆
    1. 小心有些合成參數可能是假有效,假有效參數很難撼動beta。

      刪除
    2. 多謝池兄鼓勵 :-), 但何謂假有效參數???有些指標離奇偏高/低???

      刪除
    3. 可以學樓上君子兄那樣把賠率擺落第一個model,然後逐個參數刪掉run一次,如刪掉一個參數後賠率反而沒那麼significant,那個就有可能是假有效參數。

      刪除
    4. 多謝池兄和君子兄意見,我把賠率放落第一個model後發現一個怪現象,原本significant的参數會變成沒有significant.我估計是賠率dominate了整個model.,還是沒那麼significant的參數就是假有效參數???

      刪除
    5. 相反。越容易被賠率影響的,越大機會是真有效。

      刪除
    6. 之前看過那篇比較文章說, one step 最大問題是被賠率dominate, two step 的數據效用就是有時間限制(如果沒理解錯的話), 其實為什麼two step會有時間限制呢?

      文章說2種都各有好壞, 以大家的經驗其實那種較切合實際需要呢?

      又或者聽過有人是不用放賠率, 單靠fundamental variables就可搞定,
      其方法又可否改善被臨場大量落飛誤導賠率來騙大眾的手段影響呢?

      刪除
    7. one step不應加入賠率,否則越有效的參數越容易被賠率「消滅」。
      於是two step在理論上變得較合理,因為它包含了原本想不到或做不到的參數在內,且可在一定程度上應付落飛問題。

      刪除
  27. 補充發問. 應該這樣說. 我把賠率放落第一個model後再逐個逐個參數刪掉run,發現越少参數.賠率越significant;但有點奇怪..因為所以參數在同一model內會有相關性的問題.如刪掉一個參數間相關性就會起了變化.

    回覆刪除
    回覆
    1. 當然是越少参數賠率越significant,證明這些參數都能有效影響賠率。所以說如刪掉一個參數後賠率反而沒那麼significant,那個就有可能是假有效參數。

      刪除
  28. 池兄遇到一場起碼有一半是新馬或跑旖2場的半新馬時, 會group埋計還是會直接跳過果場唔玩唔記錄?

    回覆刪除
    回覆
    1. 新馬賽或3歲條件限制賽只能跳過,但記錄照做。插班新馬直接用賠率當成機率就得,像「知多福」這些都可以照中,唔會錯過。

      刪除
    2. 勁!
      咁都可以照中

      刪除
    3. 中不代表贏,這只是一種求和的做法,不過四捨五入等誤差是不會讓「和」出現的,結果不是小輸就是小贏。

      刪除
    4. 咁又係
      有時中左都只係保到唔輸, 無奈.
      另外馬會速勢系統好似唔係好準, 例如佢估果場慢步速同某幾隻馬快步速, 開出黎完全相反, 放埋入模型度會否影響預測?

      刪除
    5. 池某冇放速勢系統入模型,正在嘗試做出一個步速參數。

      刪除
    6. 開跑前的步速點估? 同一隻馬每個騎師騎法都不同, 路程又不同,
      池兄可以給一點頭緒嗎?

      刪除
    7. 仲未整呢,有D技術問題仲要諗諗。明天跑完馬再諗下點落手。唔肯定是否一個有效參數,要試過先知。

      刪除
  29. 祝池兄成功, 步速真係好大影響的一個未知數.

    回覆刪除
    回覆
    1. 失敗了,雖然弄了個parameter出來,但不夠significant。

      刪除
    2. 我也有同樣問題有parameter,夠significant,但會影響model中其他参數.池兄遇到這樣情況會如何處理??選新/舊比較好???

      刪除
    3. 通常是刪掉Chi-Square太細的或Hazard Ratio太大的。

      刪除
    4. 謝池兄解答.另有個問題相信池兄之前都會遇過,同上一條有些類同不要介意,同一個参數以不同型態放入model中,有parameter,夠significant,今次不會影響nodel其他參數,一樣//刪掉Chi-Square太細的或Hazard Ratio太大的// ???
      我發覺把兩個相同的参數放進model內.會把這個參數的優缺點放大.

      刪除
    5. 同一個参數以不同型態放入model中,要注意Parameter Estimate是否一個正一個負,以及Hazard Ratio是否一個大於1一個小於1,應刪掉不合理那個。

      刪除
    6. 哈哈...池兄果然料事如神...一個是正一個是負 rr ratio同樣一個大於1一個小於1. 我知道要刪掉哪個了.

      刪除
    7. 慚愧,不是「料」出來的,是經歷過。

      刪除
    8. 池兄關於騎師少過幾次出賽記錄你才會group埋一齊? 我試過用10次,30次,50次,得出的結果對2 step model 都有重大的影響.

      刪除
    9. 需要增加有效參數的數量,不能讓一兩個參數dominate了整個model。

      刪除
  30. 不知池兄買馬會否過關, 但如果賠率是主耍因素, 那麼可以如何處理過關問題?
    畢竟理論上每場開閘前出手才是最有利的, 不可能預先知道到下一場賠率變化, 還是程式派不會過關?

    回覆刪除
    回覆
    1. 不會買過關。賠率問題是原因之一,但真正的原因是這個:
      http://poolshunter.blogspot.hk/2015/09/blog-post_19.html
      http://poolshunter.blogspot.hk/2015/09/blog-post_20.html
      買馬本來就是一場一場滾下去,由季初過到季尾780幾場,還需要特別去處理過關問題嗎?

      刪除
  31. 請問是不是模型裡所有參數都要少於0.05才能用呢? 因為明明一些很大路的 factor單獨時 chi-square較高, 然而跟其他 factors夾起來時 p-value就完全大過0.05, 令我都不知用還是不用好.

    回覆刪除
    回覆
    1. 少於0.05才算significant,大過0.05無關重要了。

      刪除
    2. 我分開上季騎師勝率和今季目前為止的勝率, 但不知為何2者不能並存, 同時放到模型2個都比 0.05大.
      單獨放上季還好, 單獨放今季竟然大過 0,9!請問為什麼會這樣, 今季騎師勝率也是 raw data, 怎會如此不significant?

      刪除
    3. 因為這是同類的FACTOR,一放入model會撞咗.

      刪除
    4. 騎師勝率不能這樣用,要計晒全部。

      刪除
    5. 連馬匹勝率也是要計晒全部嗎?

      刪除
    6. 池某冇直接用馬匹勝率。因為每匹馬的上陣次數都不一樣,每個班次贏馬的難度也不一樣,這個「率」跨度太大。

      刪除
  32. 插嘴問一問.其實要多少個有效factor先可以撼動beta.等我有個目標去完成.現在好似漫無目的的在找.

    回覆刪除
    回覆
    1. 30個factor左右就可以壓到beta,當然要significant的factor。

      刪除
    2. 池兄的模型有冇加入晨操資料?

      刪除
    3. 冇晨操資料,太難量化了。

      刪除
  33. 池兄你好,初到貴境交流下
    寫code寫到頭暈,見你講kelly又吹下水
    我之前有用過kelly睇馬,不過最大問題係閘前賠率同最後派彩差距可以好大
    原本值博率高都變冇肉食,run到都未必追到落注所以放棄用

    另外,handicap model同software用咩 ?
    我之前用lr,而家試緊RF同SVM,data用SQL+SAS,model fitting用R

    回覆刪除
    回覆
    1. 歡迎到訪。
      池某係用MLR model + Kelly Criterion
      用two step model可在一定程度上減輕閘前落飛的衝擊,完全解決則做不到。
      data用EXCEL+SAS。池某IT方面知識較屎,只識呢D。

      刪除