LoginSignup
24
38

More than 3 years have passed since last update.

競馬必勝法をプログラム化

Posted at

目的

  1. うまめし.com 競馬必勝法の記事を参考に競馬必勝法をプログラム化
  2. 出走前に自分が作成したプログラム(githubのコード)で最適解(pulpを使用)を出す

準備

  • python
  • 2013年9月20日名古屋競馬1レースの単勝オッズと馬単オッズのデータ
  • 本記事では長くなるのでコードは載せずに結果と何をしたか説明していく (詳しくはgithubのコードで)

データ

  • 単勝と馬単のデータは以下の通り image.png
  • indexは馬番
  • columnsは単勝オッズと馬単オッズ(例;1は馬番1の馬単オッズ)

比較

  • 馬単合成オッズと単勝オッズの差を出力 image.png
  • ここから単勝オッズが小さくて差が大きいものの馬番を選ぶ

モデル選定と結果

  • 上の結果より馬番'1','3'を使用するのがいいとみた

model_0

  • model_0では引数に馬単'3'を使用した
  • ベット枚数(1枚100円)を最小にし、どの馬が勝っても払い戻し金(円)と総ベット枚数*100(円)との差額(円)がプラスになるように条件を設定した image.png
  • 差額でマイナスが出ているのは、条件は満たしているが、ベット枚数を最後に切り上げているので値が変わってきている
  • Solvedはこの最適化問題が解けていることを示す
  • 48.0は総ベット枚数を示す

model_1

  • model_1では引数に馬単'1'と馬単'3'を使用した
  • 総払い戻し金を最大にし、どの馬が勝っても払い戻し金(円)と総ベット枚数*100(円)との差額(円)がプラスになるように条件を設定した。また最大ベット枚数を引数に入れて、それ以上にならないように条件をつける。(本記事では1000枚) image.png
  • これだと賭け方が一番オッズが高いところに集中させて、オッズが低い馬にはあまり損失が出ないようにしている

感想

  1. 今回解けたデータ(2013年9月20日名古屋競馬1レース)を使用したため、この必勝法は使えそうに見えるが実際解けないことの方が多い
  2. 現にマイナスが出ている箇所(切り上げのため)があるので絶対に負けないとは言えないが、完全自動化(他に自動で競馬券を買うなど)すれば定期的にお金が入ってきそう。(まだ実装には至っていない)
  3. githubのコードではレース前にinfoをいじれば、スクレイピングして単勝と馬単のデータをとれるモジュールは作成してあるので、これらを使用してこの手法が気に入ったら完全自動化するシステムを作ってみて下さい
24
38
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
38