【競馬アプリ】「いつもと違う調教」を探す。『追い切りマスター』というアプリを作りました

競馬アプリ
スポンサーリンク
スポンサーリンク

新聞や専門紙の調教評価って、「好調」「動き良し」「一杯に追った」みたいな定性的なコメントで終わることが多いと思うんです。数字が書いてあっても、それが「その馬にとって速いのか、いつも通りなのか」までは、パッと見ただけでは分かりません。

だったら、その馬自身の過去の追い切りと比べて「今回はいつもと違う」を機械的に拾えないか。そう思ってClaude Codeと一緒に作ったのが「追い切りマスター」です。まだ運用を始めたばかりなので、今回はどういうアプリなのかを紹介しつつ、直近であった小さなつまずきも正直に書いていこうと思います。

どんなアプリなのか

ひとことで言うと、坂路とウッドチップという2種類の調教コースの計測データから、その馬自身の「普段」と比べて調教が変化した馬を、毎週の重賞やオープン特別の出走馬の中から自動で拾ってくれるアプリです。

使っているのはJRA-VAN公式の調教計測データで、坂路が23年分・約1,185万本、ウッドチップが5年分・約75万本。これをTARGET frontier JV(僕が最初から使っている競馬データベースソフト)経由でパソコンの中に持っていて、そこから直接読み込んでいます。全レース24年分の結果とも自動で突き合わせているので、注目した馬がどうなったかも自動で記録されていきます。

木曜〜土曜の朝にバッチファイルをダブルクリックすると、

  • その週末の重賞・オープン特別・特別戦の出走馬を全部拾って
  • 一頭ずつ、過去180日間の追い切りの「自己ベスト」と比べて
  • 変化があった馬に理由のバッジをつけて
  • HTMLの一覧表にして出してくれる

というところまで自動でやってくれます。技術的な実装は僕は一切していません。「こういう考え方のアプリを作りたい」と日本語で伝えただけです。

「速い」じゃなく「いつもと違う」を見る

作るときに最初に決めたのは、絶対的な速さでは判断しないということでした。坂路4Fが51秒だろうが54秒だろうが、その馬にとって普段通りなら意味がない。むしろ「いつも54秒台のこの馬が51秒台を出した」という自分比の変化のほうが、次走に効くはずだと考えました。

もう一つ決めたのは、机上の検証だけで終わらせないことです。毎週リストを作って、レース結果が出たら自動で答え合わせをして、理由ごとの成績を数ヶ月かけて育てていく。理由は今のところ7種類同時に走らせていて、成績が付かないものは素直に降格・廃止していく方針にしています(実際、もう一つ廃止したものがあります。後で書きます)。

注目のサイン

具体的には、こんなサインを見ています。

  • 自己ベスト更新:直前の追い切りが、過去180日で一番速い
  • 自己ベスト更新+ラスト1F最速:ベストを更新した上に、余力を残して速いラップで終えている
  • 時計良化:普段の平均より坂路で1.5秒、ウッドで2.0秒以上速い(ウッドは併走のときに時計が出やすいので、坂路より甘めの基準にしています)
  • パターン変更:いつも坂路中心の馬がウッドに切り替わった、あるいはその逆

ここまでが「注目馬」かどうかを決める中心的な理由です。これに加えて、

  • 厩舎の型で見た注意/好転:その厩舎がこのローテーションのときの成績が、平均より良いか悪いか
  • 連闘注意:前走から中1週未満での出走

という補助的な情報も添えていますが、これらは単独では注目馬にしない、というルールにしています。

一度、基準を廃止した話

途中で「追い切りの週や曜日がいつもと違う」というサインも試していました。でも成績が良くなかったので、これは廃止しました。

理由は単純で、厩舎には「レース週にしっかり追う」パターンと「一週前にがっつり追って、レース週はサラッと流すだけ」というパターンの両方があって、後者のパターンの馬を「追い切りが消えた、異常だ」と誤検知していただけだったんです。「異常」というのは全馬一律の型からのズレじゃなくて、その馬(その厩舎)の正規パターンからのズレで見ないといけない。これは実際に基準を動かしてみて初めて分かったことでした。

今週、小さなバグを2つ直しました

正直に書きます。実はこのアプリ、今週バグが2つ見つかって直したばかりです(^^ゞ

一つ目は、日付を省略して実行したときに「今週末」ではなく「先週末」のデータを拾ってしまうバグ。月〜金曜に実行すると、直近の土日ではなく1週間前の土日を対象にしてしまっていました。曜日の計算をひとつ間違えていただけなんですが、気づくまで「あれ、今週のリストが出てこないぞ」と首をひねっていました。

二つ目はもう少し根が深くて、週末に速報の結果を登録しても、着順やオッズがアプリ側に反映されないバグでした。調べてみたら、レース結果のデータベースが、月に一度くらいの本格的な再構築のときにしか更新されない作りになっていて、毎週の実行では結果を一切取り込んでいなかったんです。速報や確定のレース結果ファイルを毎回自動で読み直すように直したら、ちゃんと着順とオッズが表示されるようになりました。

ためしに過去のレースに当てはめてみたら

ここは検証の話なので、実戦の成績ではないことを先に断っておきます。

できあがった基準を、過去の七夕賞(G3、福島11R)に当てはめてみたところ、1着のアスクナイスショー(2番人気、単勝5.0倍)、2着のマイネルモーント(6番人気、単勝13.2倍)、どちらも事前の注目リストに入っていました。人気馬だけを拾っているわけではなさそうだ、というのは一つの手応えでした。

今、実際に動かしてみて思うこと

バグを直して着順が見えるようになったので、この週末から実際の中身を見始めています。まだ数字を積み上げる段階ではありませんが、率直な感想を書くと、1レースに注目馬が何頭もいるときは、そこからどれを本命にするかは結局こちらの判断なんだなと。当たり前と言えば当たり前なんですが。

一方で、1頭だけがポツンと注目に上がっているときに、その馬が実際に走っている傾向は、悪くない兆しだと感じています。まだ結論を出す段階ではないので、しばらくはこのまま基準をいじらずに、経過を見ていくつもりです。

実戦はこれから

このアプリ、判定ロジック自体は7月に入ってから何度か手直しをしていますが、着順まで含めてちゃんと見られるようになったのは今週からです。焦って基準を動かすと、せっかく貯めているデータが台無しになるので、まずは8月末までじっくり眺める予定です。理由ごとの成績が十分たまったら、弱い理由から削って、秋のG1シーズンには自分なりの「印」として使えるところまで持っていきたいと思っています。

競馬予想が当たるかどうかは別として(^^ゞ、自分の見たい基準を自分で作って、育てていけるのは、やっぱり面白いです。

※本アプリは個人使用を目的に作成されています。

サンプル 追い切りマスター

コメント