カテゴリー

記号の必勝 競馬予想プログラム160億円配当獲得

fujisan 003

少し旧聞に属しますが、2009年10月9日の新聞各紙の社会面(特に朝日新聞では紙面の半分くらい使用)によれば、英国人が社長を務めるデータ分析会社が、独自に開発した競馬予想プログラムで得た競馬の配当金を3年で160億円隠していたとして脱税容疑で査察されたとの事。事実とすれば非常な驚きです。脱税は許しがたい行為ですが、この事件の特異な事は、直接の被害者が出ていない事です。競馬商材、インチキ競馬ソフトのマルチ等は詐欺であり多数の直接的被害者いる事件とは趣を異にしています。何れにしましても、脱法行為と言う負の側面はありますが、今は削除されているデータ分析会社のHPを読んだ限りに於いては、その方法論を考察する価値は有りそうです。

一般に日本では高度な数学的アプローチによるギャンブルの必勝法は邪道と見なされているようです。しかし欧米では、一つはブックメーカーの存在があるのと、馬券市場を金融市場のミニ版として研究対象とされているようです。従って、競馬必勝法の研究は大学レベルでも数多く行われ、論文も数多く発表されています。中でも、D,B Hausch(行動経済学の世界的権威)監修の”EFFICIENCY OF RACETRACK BETTING MARKETS 2008 Edition”には主に1970年代から最近までの競馬必勝理論がこれでもかと言う数で収録されています。件のデータ分析会社はHPのレベルからすれば、この本の論文には精通している筈です。因みに出版社であるWorld Scintific社は多くのノーベル賞受賞者が論文を寄せています。最近の例ではノーベル物理学賞の南部先生、化学賞の下村先生などですが、この出版社の凄いところはノーベル賞受賞の遥か前に論文が掲載されている事です。

本書の中の論文で注目されるのは”SEARCHING FOR POSITIVE RETURNS AT THE TRACK: A   MULTINOMIAL LOGIT MODEL FOR HANDICAPPING HORSE RACES”の中で用いられている一般化線形モデルの一つである多項ロジットモデルは面白そうです。そして、そのモデルの改良版として発表された”STIL SEARCHING FOR POSITIVE RETURNS AT THE TRACK:EMPIRICAL RESULTS FROM 2,000 HONG KONG RACES”では20%以上の超過利益が期待できるとされています。件のデータ分析会社の本社は香港に存在するとされていますので、まずこの論文を読んでいる可能性は非常に高いと思われます。

今後、私の数量化理論と重ね合わせ、日本の実際のレースで検証してみたいと思います。最後にオッズ解析によりオッズの歪みを見つけ出そうとするオッズ解析は多分間違いです。最後の論文で a 20-variable pure fundamental multinomial logit modelと表現しているのは各馬の真の能力(勝率)を求める事を要請していますので株価のチャート分析のようにオッズの時系列の特異点解析ではないようです。また、論文のどこだかわすれましたが、小数サンプルのアノマリーにも触れられており、熟読する価値は有りそうです。

記号の思考 3連単2軸マルチの的中解析のソースコード

今回は趣向を変えて、私のVB6のソースコードをご紹介します。プログラム言語の特長とかテクニックではなく、的中解析のアルゴリズムが面白いのではないかと思います。3連単の買い方は多分非常に難しいと思います。特にボックスでは買い目が4頭-24点、5頭-60点,6頭-120点,7頭-210点、8頭-336点と急上昇します。即ち、無駄な買い目が非常に多い訳です。一方2軸マルチは予想順位7位まで絡んでも買い目は30点、8位で36点、9位でも42点にとどまります。超高配当が狙える割には少ない点数に抑えられます。しかし、的中アルゴリズムは私にとって中々困難なことでしたが、以下のソースコードで示しますように何とか成功しました。頭の体操と3連単とは如何なる物かを理解する上で参考になれば幸いです。

*************3連単12マルチ**************************
If CInt(ThisWeekSyosai(I1, 10)) > 8 Then
S12KaimeSuu = 30
HajimeTensuu = 3
OwariTensuu = 7
Else
S12KaimeSuu = 36
HajimeTensuu = 3
OwariTensuu = 8
End If

Select Case Val(Detail.Torokutosu(0))
Case 1 To 4
URFKaimeSuu = 12
HajimeTensuu = 3
OwariTensuu = 4
Case 5
URFKaimeSuu = 18
HajimeTensuu = 3
OwariTensuu = 5
Case 6
URFKaimeSuu = 24
HajimeTensuu = 3
OwariTensuu = 6
Case 7
URFKaimeSuu = 30
HajimeTensuu = 3
OwariTensuu = 7
Case 8
Case Else
End Select

S12KaimeRuikei = S12KaimeRuikei + S12KaimeSuu

TekichuCount = 0

KakuteiKumi = KakuteiJuni(Umaban(1)) & KakuteiJuni(Umaban(2))

Select Case KakuteiKumi
Case "0102"
TekichuCount = 2
SeekJuni = "03"
Case "0201"
TekichuCount = 2
SeekJuni = "03"
Case "0203"
TekichuCount = 2
SeekJuni = "01"
Case "0302"
TekichuCount = 2
SeekJuni = "01"
Case "0103"
TekichuCount = 2
SeekJuni = "02"
Case "0301"
TekichuCount = 2
SeekJuni = "02"
Case Else
TekichuCount = 0
End Select

Select Case TekichuCount

Case 2
For I2fk = HajimeTensuu To OwariTensuu
If KakuteiJuni(Umaban(I2fk)) = SeekJuni Then
TekichuCount = TekichuCount + 1
End If
Next I2fk
Case Else
End Select

If TekichuCount = 3 Then
S12k = SRTN(Hrhi.PaySanrentan(0).Kumi)
S12h = CStr(CLng(Hrhi.PaySanrentan(0).Pay))
S12TekichuSuu = S12TekichuSuu + 1
S12RuisekiHaito = S12RuisekiHaito + CLng(Hrhi.PaySanrentan(0).Pay)

End If

記号の同値 同値同着予想の問題点

現在私のソフトの買い目はタイム(速度)合計法と言うあまり一般的でない手法により求めています。この方法の利点は理論上無駄な買い目を最小にできる事ですが、問題点としては買い目を1点毎に扱う必要が有り、特に多点数になる馬単、3連複及び3連単については手入力では煩雑で事実上購入するのには至らないのではと感じています。その為、”シンプルぱっと”や”ターゲットの外部指数”などの競馬支援ソフトで使えるように買い目をCSVファイルとしてソフトから出力できる様にしました。

しかしながら、競馬場やWINSでマークシートを使われる方やIPATを使われる方に取っては予想順位をそのまま使って、フォーメーション、ボックスあるいはマルチフォーメーションで投票されているのではと思います。ここで問題となるのがフォーメイションとかボックスではどの位の点数を購入して、どの位の的中率並びに回収率が期待できるのかです。タイム(速度)合計法では既に”予想結果の纏め”やソフト自体に過去予想成績で検証できるルーチンを用意して、情報を提供しています。そこで、これに習いフォーメイションやボックスでの的中率並びに回収率を検証できるルーチンをプログラムして見ました。

ところで、的中解析のアルゴリズムを考えていて気が付いたのですが、予想を提供できるソフトをあれこれ弄くって見たのですが、どうも予想検証あるいは馬券シミュレーションに満足できるものがありません。突き詰めて行くと”同値同着予想の問題点に行き着くようです。例えば80を中心値とした指数系では、89,89,89のように同値同順位が頻繁に発生します。この場合、上位5頭ボックスの買い目を考えると、通常上位4頭か5頭目に前述の同値同順位が頻繁に現れるために上位6頭、7頭とか8頭ボックスになってしまい条件(厳密に5頭ボックス)が揃わず検証が曖昧なものになってしまいます。

同値同着の回避は、一般的には行われていないようです。買い目が多くなれば的中数が上がりますので見栄えが良くなります。ですが回収率的には問題が残ります。同値同着の解決には過去のパフォーマンス等の付加情報を付ける場合もありますが、数的に扱いが難しく検証には不向きな気がします。便法としては指数の少数点以下に馬番を入れ強制的に同値同順を無くす方法が取れます。一見インチキぽい感じがしますが統計学的には問題は無いようです。最終的な解決法は指数に重複が出現しない理論を使う事です。この点では数量化理論による予想タイム(推定速度)には全く重複が出現しませんので正確な的中解析が可能です。

以下の表はフォーメイション、ボックスなどに単勝・複勝を加えた的中率*回収率です。ただ、この数値は予想因子のパラメータに過去の実際の予想とは少し違ったものが適用されていますので、過去予想実績と全く同一では有りません。

20090307hannsinn2_28794_image002