2017年2月9日 星期四

日格一物

  已有好些日子沒有更新網誌,這段時間實在太忙──忙於“砌模型”,日砌夜砌,砌完又拆,拆完又砌,沒完沒了。

  令池某玩物喪“誌”(荒廢網誌)的模型,與70後兄經常貼上網的模型有些不同,無色、無樣、無形,學名叫Logit Model,籠統地說,是統計模型的一種;砌這種模型的工具也有別傳統,要用coding。砌Logit Model令人著迷之處是:第一,極難砌,可以滿足挑戰高難度那舖癮;第二,若砌得好,將成為有力武器,可以從馬場贏錢。


  窮忙的日子早在去年11月中就開始了。要砌得成模型,需要原材料,Logit Model所倚賴的原材料,是database,故動手砌模型之前,要先準備好database,那是一件體力活,耗時、費勁,部份數據要靠人手輸入,還不太順利,中間小錯誤不斷(主要是手指太肥),辛苦了一個多月,總算如期完成。

  之所以要訂下一個“期”,是看中了12月最後兩個星期只有兩個賽馬日。如同那些大江大河的水利工程一樣,要截流動工,當然是選擇水流量較少的枯水期進行,否則一邊輸入舊數據,一邊忙於更新賽果,一邊改program銜接新數據庫,是不可能的任務。若錯過這個“期”,就要等到暑假了。

  完成銜接新數據庫的program,相當於在截流前開通了導流明渠,之後的工程進度就不用太緊張了。水照流,馬照跑,賽果照更新,模型慢慢砌,邊砌邊賭,效果理想就繼續,不理想就用回舊版,將新加的部份推倒重來。

  砌模型的最大難處,是每加一個factor,其效果都無法預先想像。不同的factors有些會相輔相生,有些會相斥相尅,結果是可能進兩步退一步,也可能是進一步退兩步。好比用不同形狀的磁石砌一間屋,既要利用相吸的部份維繫整個架構,又要利用相斥的部份拓出空間。每加一塊石,都有可能擾亂原本的格局。

  另一個麻煩是,只有看到試出來的統計指標,才知道是不是比原來的更好,永遠不知道是否可以做到更好,更不知道是否存在一個最好,只能一個個參數試,試完再試,試過才知。

  於是想起了那句古老的話:格物致知(出自《禮記‧大學》)。沒辦法,誰叫自己沒有背兩句教條就成為大師的頓悟慧根,也沒有跳求雨舞的特異功能?只好一個factor一個factor地“格”下去了,今日試一個factor,明日再試一個factor,希望最後能像宋代程頤所說,“今日格一件,明日又格一件,積習既多,然後脫然自有貫通處”吧。

95 則留言:

  1. 是一個運用大量腦力的遊戲,對數學及coding有興趣的人是ㄧ種挑戰,沒完沒了的ㄧ個模型

    回覆刪除
    回覆
    1. 當作遊戲是對的,好此道者會樂此不疲,過癮過打機。打機的成績會反映在分數,砌model的成績會反映在a/c條數。

      刪除
  2. 池兄天資過人,相信努力會有好回報的:)

    揼program哋陣列同參數,咁多combinations真係玩死人...每次我都好大誘惑向IT人/網上forum直接伸手,但呢哋幫得一次亦未必有第二次,有哋野都係靠自己心領神會吧😭

    回覆刪除
    回覆
    1. 努力未必有好回報架,唔努力就肯定冇好回報。:)

      刪除
  3. 師兄,您好!
    近幾日才發現您的網誌,雖然還未全閱,但已獲益良多,感謝!
    小弟才疏學淺,數學又差,更不要談統計學是從未正式學過。
    但見師兄在這方面很有見地,不知可否請教一下?

    由於小弟對賽馬所知甚少,只好舉股票買賣的例子,請教。
    假設發現到某些股票的歷史情況下,如出現陰陽燭的鎚頭,後巿上升的機會真的很高,有60%-70%的往蹟。
    假設過去10年某股票價格出現鎚頭100次,之後一枝陰陽燭是升的70次,下跌的有30次。
    而升的70次,鎚頭後的那陰陽燭,由開巿到收巿,70次中,平均每次升0.7元。
    而跌的30次,鎚頭後的那陰陽燭,由開巿到收巿,70次中,平均每次跌0.3元。

    我是否可以理解為以下的期望值呢?

    期望值/值博率 = 獲利率 x 收入 + (1-獲利率) x 虧損
    70% x $0.7 + (1 - 70%) x (-$0.3)
    = $0.49 + 30% x (-$0.3)
    = $0.49 + (-$0.09)
    = $0.40

    這樣對這些數據的統計,是否正確?
    就這樣按照這些而制定「開巿買、收巿沽」的策略,是否過於草率,還是要學習什麼其他知識去優化這些數據,從而得出更可信的結果呢?
    是否要加入資金管理/注碼控制(學習中,但按自己程度,有點困難去明白)?

    以上都只是假設,不是要師兄給我實際的投資意見,只想在理念上請教一下,謝謝!
    可能您會覺得這些問題和您這篇文章,有點離題。但不知在那裡問,請見諒!
    不覺不覺寫了太多字,不好意思!

    只有中三學歷的一個佬(簡稱“中三佬”)

    回覆刪除
    回覆
    1. [修正] 而跌的30次,鎚頭後的那陰陽燭,由開巿到收巿,30次中,平均每次跌0.3元。

      中三佬

      刪除
    2. 師兄,您好!
      近幾日才發現您的網誌,雖然還未全閱,但已獲益良多,感謝!
      小弟才疏學淺,數學又差,更不要談統計學是從未正式學過。
      但見師兄在這方面很有見地,不知可否請教一下?

      由於小弟對賽馬所知甚少,只好舉股票買賣的例子,請教。
      假設發現到某些股票的歷史情況下,如出現陰陽燭的鎚頭,後巿上升的機會真的很高,有60%-70%的往蹟。
      假設過去10年某股票價格出現鎚頭100次,之後一枝陰陽燭是升的70次,下跌的有30次。
      而升的70次,鎚頭後的那陰陽燭,由開巿到收巿,70次中,平均每次升0.7元。
      而跌的30次,鎚頭後的那陰陽燭,由開巿到收巿,30次中,平均每次跌0.3元。

      我是否可以理解為以下的期望值呢?

      期望值/值博率 = 獲利率 x 收入 + (1-獲利率) x 虧損
      70% x $0.7 + (1 - 70%) x (-$0.3)
      = $0.49 + 30% x (-$0.3)
      = $0.49 + (-$0.09)
      = $0.40

      這樣對這些數據的統計,是否正確?
      就這樣按照這些而制定「開巿買、收巿沽」的策略,是否過於草率,還是要學習什麼其他知識去優化這些數據,從而得出更可信的結果呢?
      是否要加入資金管理/注碼控制(學習中,但按自己程度,有點困難去明白)?

      以上都只是假設,不是要師兄給我實際的投資意見,只想在理念上請教一下,謝謝!
      可能您會覺得這些問題和您這篇文章,有點離題。但不知在那裡問,請見諒!
      不覺不覺寫了太多字,不好意思!

      只有中三學歷的一個佬(簡稱“中三佬”)

      刪除
    3. 不知為什麼Blogger系統不顯示我原本的問題,為免重複太多,可否請師兄到後台系統找回我的原問題,謝謝,不好意思

      中三佬

      刪除
    4. 期望值的計算有小小出入,應為:
      期望值=盈利機會率x淨盈利率 – 虧損機會率x虧損率

      注意升跌不是用數額,要用「率」,升0.7元對價格100元的股票和1元的股票意義是不一樣的。
      要加入注碼分配就是:期望值/(淨盈利率x虧損率)

      當然,如兄台所說,那是假設的問題,故這也是假設的答案。實際上我們不能簡單地數數出現了幾多次就判斷這些是有效的數據,需要引入一些檢測方法。

      刪除
    5. 匿名留言太長google會食掉。

      刪除
    6. 可否指點一下,有什麼「檢測方法」我應該要去學習?謝謝!

      中三佬

      刪除
    7. 期望值=盈利機會率x淨盈利率 – 虧損機會率x虧損率
      這算式中,淨盈利率的意思,是否(收巿價-開巿價)/開巿價,再扣除交易費用?
      虧損率的意思,是否(開巿價-收巿價)/開巿價?
      為什麼「虧損率」不需要是「淨虧損率」?

      中三佬

      刪除
    8. 要用「率」,感謝指點

      刪除
    9. //檢測方法
      STA101的內容,對不同的樣本和分析方法有各式各樣的test。

      刪除
    10. //為什麼「虧損率」不需要是「淨虧損率」?
      一般說「虧損率」和「淨虧損率」都是同一個意思,但說盈利有時會用賠率,故這裡需要說清楚是淨盈利率。

      刪除
    11. 99.99%技術分析錯到九彩的重要因素,是「無視成交數」。如股票甲,一分鐘內得三百股成交,$170,$171,$172,每個價位各100股;與一分鐘內三萬股成交,$170,$171,$172,每個價位各10000股成交,畫出嚟支陰陽燭是一撚模一樣。
      再用陰陽燭做基礎的分析,就是「錯^2」。本少爺會將這些技術分析視為「偽科學」。

      刪除
    12. 呵呵。池某視圖表派為「鬼畫符」。

      刪除
  4. 另外,我也試過把騎練馬三項的往績加起來除三,視為勝率,是否對呢?

    即是在馬會找騎練馬各自的奪冠次數,除以總出賽次數。再把這三個數加起來除三。

    但係要限制在開跑前很短時間捕捉最新賠率,然後又要好快計,好快落注。好困身。而且相對於股票買賣,一係升一係跌,扣除手續費,簡單計,可能是49%勝率(當然不是這樣簡單,也要用止賺止蝕計賠率)。而賽馬沙田是1/14跑馬地是1/12勝率。感覺上,股票勝率大一點。所以仍然選擇主力於股巿買賣。(強調:感覺上而已,個人選擇而已)

    覺得其實簡單到傻的計算,然後嚴格紀律執行,就會賺錢,認同嗎?(雖然小弟未成功)例如上述騎練馬三項的往績加起來除三,視為勝率,再配合開賽前賠率計值博率。KISS

    中三佬

    回覆刪除
    回覆
    1. 騎、練、馬各自的勝率都是很有效的因素,不過在logit model裡這樣的有效因素至少要找到幾十個才有用。
      主觀感覺多數是錯的,「步步友」對「衝鋒友」的勝率不可能是1/2比1/2。嚴格紀律執行錯誤的感覺後果會不堪設想。使用客觀的統計模型就是利用別人的主觀錯誤感覺贏錢。

      刪除
  5. 能夠專心一志地去做自己熱衷的事情,是男人的浪漫,哈哈:D

    回覆刪除
    回覆
    1. 哈哈。如此說來大多數blogger都很浪漫。

      刪除
  6. From the chart you attached for race 3 of last night, it seems that your conclusion was #2 and #12 yielding +ve expected values and then allocated the wagers based on kelly?

    回覆刪除
    回覆
    1. 個別馬匹而言只有#2有+ev,不過multi kelly會計算整體後再分配注碼,故-ev但與賠率較接近的#12也補小量注碼。

      刪除
    2. 先祝池兄和各blog友新年好
      對於第二欄買9200既情況好明顯有漏洞 個kelly calculator應該點寫先可以食盡回扣

      刪除
    3. 是的。這個是冇回扣版本。
      池某只有一個全有回扣版和一個全冇回扣版,未寫出可智能地任意調節的版本,因為還涉及組合注數到同一張飛的問題,諗起都頭痛,故一直冇衝勁去做。

      刪除
  7. Really think your model are good, particularly on #12...its odd was much >17.6 5 or 10 mins before the race and significantly reduced before the start of the race!

    回覆刪除
    回覆
    1. 用two step model,可在某程度上應付臨場啡綠格問題。

      刪除
  8. 感覺上,用一些machine learning的algorithms, 應可加強整個系統的運作能力.

    回覆刪除
    回覆
    1. 應該有幫助。問題係,我唔識。

      刪除
    2. 可以參考 Boosting: Foundations and Algorithms (Adaptive Computation and Machine Learning series) 一書,但小弟都唔知佢up 乜。

      刪除
    3. 多謝推介。學習下先,學唔掂就搵IT人。呵呵。

      刪除
  9. 池兄,請問你個database 和 logit model 用什麼 software 呢?

    回覆刪除
  10. 池兄:

    近日拜讀了你都多篇有關賽馬文章,甚感興趣。以下有一些資料/意見供池兄參考:

    AW 是大嘴巴,令MLR模型成功的秘密廣為人知 —— 其實AW為人甚為神秘,令更多人認識MLR模型的原因是WB不甘於金錢上的滿足,還希望得到學術上的認可,開始寫文章、演講敘述關於MLR模型於賽馬上的應用,之後WB的原本夥伴AW的身份才開始漸漸為人所知曉。

    MLR模型的成功僅在香港 —— 早期可能如是,但MLR模型多年前已於其他地區使用及取得成功。

    另外,近年真正的馬場大鱷既不是WB,也不是AW,更有可能是一個名為Zeljko Ranogajec的人物。據知此人精於賭博,包括賽馬在內,而且於全球多個不同地區均有操作。根據The Weekend Australian早於2008年刊載AW的訃聞報道,Z每年的投注額已經比起AW加埋WB的總和還要多:

    His colleagues in the penthouse of betting turnover are his former business partner, American Bill Benter, and Zeljko Ranogajec, an Australian-based recluse whose turnover on sports gambling is said to outweigh the massive investments of the Woods-Benter organisations combined.
    http://www.theaustralian.com.au/archive/news/gambler-more-than-broke-even/news-story/16c6da4a9051efea7ea72b6156e34fe8

    Ranogajec’s gambling operation is not just limited to Australia. Horse racing industry insiders believe that he bets in profitable horse racing markets including Japan, England, Hong Kong, New Zealand and America.
    http://www.worlds-greatest-gamblers.com/gamblers/horse-racing/zeljko-ranogajec/

    MS

    回覆刪除
    回覆
    1. 多謝MS兄提供有趣的資料。
      MS兄的資料是可信的,AW確實是長時間隱居在馬尼拉,過著賭馬、溝女、吹水的人生;反而WB很活躍,不斷出席國際會議和數學論壇,又捐錢給數學研究機構。ZR贏通街被澳洲政府研究追稅的故事媒體也有報道。
      上述三位都是maucaupro兄的熟人,maucaupro兄曾私下講過他們的故事,如果他肯公開講多些他們的故事,大家就有福了。呵呵。
      據maucaupro兄說,他還有一個朋友用MLR模型進軍美國馬壇,一樣很成功,現在MLR模型應算是頗普及的工具。

      刪除
    2. 美國馬壇用MLR模型效果應該比香港更好, 因為美國賽馬以泥地為主, 跑道狀態比草地穩定, 數據庫亦非常完整而龐大。最大缺點應該是美國馬場的pool太細小, 要搵食可能要找其他途徑

      刪除
    3. 不是的。香港只有兩個馬場三條跑道,練馬師和騎師數量也較有限且相對穩定,故比較容易獲取穩定有效的數據。早期進軍美國馬壇的都是失敗居多,在香港則有很多成功例子。

      刪除
    4. 其實彩池大小更為重要。美國很多馬場彩池太少,稍為大注少少便會令彩池波動,大戶無得重注,可能要密食當三番。

      MS

      刪除
    5. 以獲取model數據而論,穩定的場地和跑道,以及足夠大的sample size最重要。
      以搵食而論,當然是投注額重要,且最好是彩池中傻錢多聰明錢少。
      如果一萬幾千元就可以打郁個彩池,kelly系統會無所適從。所以澳門和新加坡雖然只得一個馬場,但很少聽說可以從澳門或新加坡馬場搵到食的。

      刪除
  11. Z在澳洲被政府追稅,AW及WB亦曾經被香港稅局追稅。當年WB回美、AW去馬尼拉是和稅務問題有關。其後追稅事情不了了之,他們也回到了香港。

    至於MLR模型,對於某些高手來說已經不能滿足他們的要求,轉為使用Probit模型。據知Probit要比logit計出來的結果略為精準,但繁複得多,沒有數學專才指點,不易成功。

    MS

    回覆刪除
    回覆
    1. 是的。從顧鳴高的相關論文看來,他也很可能是用Probit模型。

      刪除
  12. benter的公司一年好似可以係香港贏一千萬美元,老實講無我想像中咁多,但彩池制贏到的錢係有限的,唔知池兄大概贏的金額,係投注金額的百分之幾?

    回覆刪除
    回覆
    1. 池某係small potato咋。感覺上賭馬好似買細價股,細到最細10元一手那種,波動比細價股更大,且是有時限的。故在資金分配方面始終不敢放太多,雖然實際回報率比股票高很多。

      刪除
  13. 你提左我, 2017 年我未動手砌模型...
    但你已砌左無數次了!

    回覆刪除
    回覆
    1. 哈哈。好唔同呢,池某砌來砌去都係同一個。

      刪除
    2. 2017我都未砌過Lego
      工作比想像中忙!

      刪除
  14. 受池兄啓發,有些股波問題要請教池兄,已發郵件,多謝。

    回覆刪除
  15. 半場B39:E43公式有誤,已修正,但0:0不同計法偏差依舊?

    回覆刪除
  16. 請問。。你的理論賠率是甚麽時間得出最後的參考值的。。臨場那些因素會令其改變?

    回覆刪除
    回覆
    1. 開閘前一刻。會隨著臨場的賠率變化。

      刪除
  17. 理論值不是1早計好嗎。。即場賠率只影響值博率?第1場12號你計到值博嗎

    回覆刪除
    回覆
    1. 一早計好的是one step model; two step model要將即時賠率作為一個factor再計一次。
      第一場計唔到明顯edge,只計到2號值得微微買小小。

      刪除
  18. 請問two step model是考慮臨場落飛或回飛幅度做factor嗎?

    回覆刪除
    回覆
    1. 是以賠率作為一個factor,不是以其變化幅度。
      關於two step model,前面幾篇文章的留言中有較詳細的討論。

      刪除
  19. 莫名其妙找到這blog,突然就像盲者開眼,可惜一向沒這方面的知識,而且又不懂如何電郵給池先生,我從池先生的文章學會怎計算球賽比數機會但卻不懂主其他客其他等excell算式,求教。我電郵是 pcnewcomer2006@yahoo.com.hk 我本身是賭馬的,求球賽計算只是球賽比較上簡單只兩隊,希望由淺入深去學計算賽馬方法,希望池先生別以為我是伸手黨

    回覆刪除
    回覆
    1. 言重了。那只是一個簡單的模擬球賽機率分佈的方法,主其他的計法就是把4:3、5:3、5:4、6:0、6:1、6:2、6:3、6:4、6:5、7:0、7:1…..等比分的機率加起來,客其他的計法相類似。

      刪除
    2. 用excel function或vba固定下來就一勞永逸了。

      刪除
    3. 感謝,便是遇上這blog才終於去學excell,但全無基礎下只好一步一步摸索,外加老人學習力下降,能砌到簡單模型是現在目標

      刪除
    4. 大器晚成,祝成功。:)

      刪除
    5. 晚成還不知,大器該不是。活久了會理解自己能力,但經池先生提醒後終於完成那簡單球賽計算方法,只計出來主其他等跟池先生post的圖有差。利用該方法結合馬會賠率投注亞洲盤初步還可以。最新是剛投注維拉利爾受讓半一。但計算讓一球遇上問題,理論上該以球隊贏2球機率加球隊只贏一球走盤計算,但公式一時想不到,池先生有提示不?感謝

      刪除
    6. 讓球不易處理,每一注其實是包含了兩個不同賠率的半注,走盤的賠率為1,故計算機率時也要把整數差距那部份分開處理。池某不賭fixed odds,未有深究具體的做法。

      刪除
  20. 池兄你好,剛才嘗試了你早前提及以海外參考賠率作為expected odds計算kelly,當真可行。想請問如果在本地賽中以隔夜賠率作為expected odds是否可行?感謝池兄

    回覆刪除
    回覆
    1. 隔夜賠率不可行,那是公眾買出來的,不代表專業判斷。

      刪除
    2. 我今天海外只有1場收錢。。而且還是中了臨場跌30%以上的。。你們全日有利嗎。。

      刪除
    3. 池某今日要陪女,完全冇賭。

      刪除
  21. 買了5場4開跑還明明10倍。。但跑完見7.8。。池兄的即時賠率能捕捉到這類還能及時下注?

    回覆刪除
    回覆
    1. 呢隻池某本來就計唔到有明顯edge,越落飛越冇影響。

      刪除
  22. 祝池兄發明必勝程式, 雞年大殺四方

    回覆刪除
    回覆
    1. 多謝。哈哈。
      不過都要提下自己:頭腦要清醒,賭場無必勝。

      刪除
  23. 池兄,我看了你的文章在學ibm spss statistics 22 不知道向這個方向學習,跟你的一樣嗎?不知道向這方向學習對不對,請指點我一下 謝謝~

    回覆刪除
    回覆
    1. 知識肯定是有用的,既可解決當前問題,也可融匯貫通用在其他領域。
      池某是用sas的,和spss只是有些語言指令的分別,計算結果應該是沒分別的。

      刪除
  24. 回覆
    1. 哈。與池某趨同是不夠的,應以計贏池某為目標。
      追求同一把劍沒太大意義,劍是需要的,劍法才是關鍵。

      刪除
  25. 池兄 我有一個文件word 想傳去你 研究研究,因為我覺得有用,但係又唔係好明,想問下你,我無outlook 我得HOTMAIL,可否 給一給你的另一個聯絡方式給我?,PS:kwomg111@hotmail.com

    回覆刪除
    回覆
    1. 簡介裡有池某email。不過池某覆email會好慢,而且好多都冇覆。

      刪除
  26. 多個事件博弈問題的理論和應用:係樹人大學 分別兩個2003年既論文,我想將佢入面講既野,加入SPSS 你覺得咁樣可唔可行,我驚自己行錯左 會浪費好多時間,事前問一問師兄,會行小好多路. 感激不盡 比小小意見

    回覆刪除
    回覆
    1. 冇睇過篇文,唔敢亂評論。睇標題就應該唔關賭馬事,賭一場馬係mutually exclusive outcomes of a single event,唔算多個事件。同時賭幾場波先係多個事件博弈問題。

      刪除
  27. 池兄,聽聞SAS的personal licence好貴,想請問一年要多少錢?據知有個University Edition是免費,其實夠不夠用?

    回覆刪除
    回覆
    1. 池某是用很舊的校園版,夠用有餘。SAS在model中只參與很少的部份,只是做regression而已。

      刪除
  28. 池兄,受你blog的啟發,最近亦打算做MLR model,但最大問題仍是建設database。不池兄有沒有excel vba的技巧可授,或是有沒有書可推介。

    回覆刪除
    回覆
    1. 池某冇正式學過VBA,所識的很皮毛,睇好多VBA code如睇外星文。池某的做法是遇到問題就上網search這個問題,搵相關的code,copy幾段邊改邊比較邊測試,這樣對解決問題較有針對性。

      刪除
    2.  我從網上找到的資料都是很少是有關以VBA取得資料(例如馬會data),大多只是基本VBA的教學。不知池兄在那裡能找到那些相關的code呢?感謝。

      刪除
    3. 代答
      Google ”excel vba 下載網頁資料“

      刪除
    4. 謝HKWB1010兄幫忙。

      "excel vba 取得網頁資料"
      "excel vba 擷取網頁資料"
      "excel vba 抓取網頁資料"
      "excel vba 從網頁抓資料"
      "vba 下載網頁資料到excel"
      "excel 匯入網頁資料"
      "excel 從網頁取得外部資料"
      "vba 取得html"
      .
      .
      .

      刪除
  29. 池兄
    在 MLR 你㑹輸入場次及馬匹編号嘕?

    回覆刪除
    回覆
    1. 會輸入場次和號數,作識別用途。

      刪除
  30. 我曾嘗試加入,但說記憶體不足,請問這两個如何設定呢?我用3年的賽積,電腦只有8mb

    回覆刪除
    回覆
    1. 不會吧。這兩列並不參與運算。
      是用什麼軟件時顯示記憶體不足?

      刪除
  31. 我用 spss,哪這两列應該放在哪裡?

    回覆刪除