2020年7月18日星期六

改變…為了走得更遠


在上文「看走得幾遠」中的實戰測試,終於走到季尾,結果是怎樣?當然是….未「贏」。事實既然如此,唯有繼續努力,先總結一下在這些年內的不同想法及思路。

老某「賭馬再培訓」的啟發點是受中大教授的官司開始,經深入了解後深信賠率優勢是永恆不敗。如經營賭場一樣,只要長期運行就立不敗之地,至於怎樣尋找優勢就沒有賭場般容易,一切要靠過往數據的解讀,利用大數據法則,這全都是不容易的事。

池兄在「積微錄」最新貼文中說明「砌模型」的最高心法是對馬匹「定價」的準確度,老某是完全同意,輸錢證明了「定價」失敗,這與經營生意一樣,長期計「錯價」就需要接受結業的懲罰。

在過去一直使用Binary Logistic Regression(簡稱LR) 的方法直接計算馬匹的機會率,點解?因為初期什麼都不知,看到Bill Benter的論文上說了算,沒有知識深究原因。這一年覺得模型差不多到了瓶頸,不如道原因只加到三十幾個Factors後就加不進去,當然這與數據的質量有關,老某只用馬會提供給公眾的通用數據,沒有半點自家製或其他內部資訊,亦完全認同一些獨特而有效的數據(如賽後評論),會提高模型的有效性。

近一年,試了很多Factors,無論在指標及回測上都未有太多改善,現時老某是用八年數據作Train(相對池兄來說這可能多了一點)在過程中隨意保留15%數據作回測,整體回測結果如下:

1)      以平注投注過往八年有賠率優勢的馬匹,回測結果是-10%,如只引用2019馬季至今的平注投注計算大約-9%,與預期差不多,這證明實際操作與預測一致。
2)      如以Kelly 下注2019馬季至今,結果是-4%,但在實際操作上這是會有所偏差的,因為臨場是不可能捕捉到最後賠率,而回測是用馬會提供的最後賠率。
3)      老某對這個計算結果亦感到意外,比想象好。今季沒有按預期以機械式下注(對一個馬迷來說始終覺得太悶了),仍然以經驗及模型結果作多方嘗試,但成績卻比只用模型下注為差,好彩仍未破產退場。

無論是-9%-4%一樣是負數,結果都是「輸錢」,有師兄會說買大一點用回扣就有勝機,但在實際操作下,對老某的資金壓力太大及這亦不是一個可靠的做法。

在此總結一下模型的近況,有多點是值得一提,亦希望各師兄能相助給老某一點啟示:

a)          如只買模型機會率最大的2-3匹馬,竟然是贏錢的!如只投注(不論是否有賠率優勢)機會率最大的12、甚至是3大機會馬,統計結果是有5%7%的利潤,與模型的回測的結果是大致相同,但建立模型的初始概念是尋找錯價的對象,而不是勝出的機會排列,加上Kelly Criterion在這情況下是沒有發揮的機會,「道」有所不同。老某實在不知原因何在?這可能與LR模型準確度有關吧?

b)          老某的模型,少有計算到低於3倍,以機率=p/1+pp>1才有2倍以下的賠率。在實戰中一些低於3倍的大熱門,甚本上是沒有賠率優勢,感覺上只要大熱門勝出,投資就泡湯了,這証明模型低估了部份熱門的真正實力,要增加有效Factor才可解決,但要增加Factor又絕不容易,困局也!

c)           LR模型是用Factors直接估算馬匹的勝出率,當然要經簡單運算,估計出來的勝出率,只代表單馬的情況,沒有與其他參賽馬直接互動的。再者,一場參賽馬估算的機會率加起來,一定不會等如1,有可能小或大於1,老某會再做Normalization,這動作已增加了不確定性,加上用線性的方法去標準化非線性的機會率,至今仍然未找到正確的做法。

d)          老某砌模型的方法始終是參考已經有二十多年歷史的Bill Benter(1994)資料做藍本,論文中他是使用Logistic Regression。但在2004 ICCM論壇中,他所講述的模型與1994方法已經大大不同,加上在1997後,馬會不再提供服務給他,他需要15分鐘前派人到投注站下注,即最後賠率在當時顯得比較不重要了,所以老某推論在後期他的模型與初期的不同,可能連方法也改變了。常言道不進則退,變幻才是永恆。

e)          有很多師兄認為不需深究方法,應集中數據運用,只要將現時的做到比公眾更優勝便可,可惜今時今日所謂的公眾會與已往一樣嗎?已證明不是。因老某的背景,深知不同工序有其限制及準確度,就算魔改後的蛙式也永遠快不過自由式的。老某自已是懷疑LR是不可能打敗現今的公眾,LR雖然在醫療判斷可是極佳的選擇,但用於賽馬就可能未必相同。

f)            老某深信賽事結構影響了部份因子的數據分佈及有效度,令Regression誤判有效但方向相反。這同樣會發生在其他運算方法,必須要有合適的數據處理方法去配合不同運算方法,可能是老某的表達有問題,往往令人誤解為數據精加工而增加over fitting的機會。

g)          又用名次及完成時間作比較,在同等的條件,分段時間/完成時間給予更多的資訊但無法掌握,而名次只有單一資訊。在高低班、快慢地、升降班時,同是冠軍但內裡卻是大不同的。雖然大家都知名次是一個極有效的因子,但不要放棄時間能給予的資訊更多。在老某實戰的經驗就是因為上賽/平均名次而吃虧,特別是一些班次升降機,EO計算時升班時偏熱,降班時偏冷的狀況經常出現。

h)          Two Step Model這步驟不會提升馬匹賠率優勢,只可以將「定價」拉近,大部份沒有賠率優勢的馬匹不會因Two Step而改變,尋找「錯價」是全靠One Step的準確度。當然Two Step也有其優點的地方,老某觀察自家模型數據所得,經Normalized後的最後EO,整體的投注量會減小,對「贏錢」有正面的影響。

老某砌模型的方法是參考有三十年歷史的Bill Benter資料作為藍本,並深知在過去成功不代表現在如是,加上沒有其他模型數據可作對比,總是覺得LR未必是一個合適的利器,認為是時候改變一下,故三個月前又嘗試用其他方法去「砌模型」,嘗試用馬匹預測實力(CP) + Monte Carlo 模擬估算各馬匹名次的機會率,結果怎樣...

20/8/2020補充說明:

錯了!老某終於發現有概念及系統性的錯誤,並解答了一直未能解決的疑惑。不刪除此文是因為這是老某的個人記錄。各師兄留意上述的資料展述可能有誤,不值得參考。再一次多謝各師兄的提醒,老某會再努力的。老賭徒

31/8/2020補充說明:

Conditional LR在 SAS是Parametic Hazard model, 在SPSS 是用 Cox regression, 均是一個醫學上估計生存時間。老某在開始時因為用minitab 做regression, 不知怎樣執行conditional, 所以自行想一些方法代替,就是將需要grouping 的因子做了排列後才放入模型,盡量減少影響。如今Andy師兄提醒,所以用SPSS Cox regression再做一次,結果如師兄所述差不多,不可以說是更好,但需要時間調整。
同老某說錯了,除了使用Regression 有不同外,還有一個重要指標做錯,就是回測數據用了一些比算式生成前的Test數據作測試,Test的回報率比Train的更佳,引起誤判及概念上有問題。