4.馬券の自動購入システム構築

馬券自動購入に必要な事前準備
独自の指数や購入判定ロジックなどから、購入したい馬券を決定しても、当日の馬場状態や直前オッズを確認しながら馬券を購入しようとすると、土日は常にレース情報を確認する必要が生じてしまいます。
もちろん、そこも競馬の楽しみの一つではあるのですが、自分が作成したロジックに従って自動で購入馬券を決定し、さらにはその馬券購入まで自動で行えるシステムを作成することができれば、土日は家族や友人と一緒に過ごしたり別の趣味に没頭することも可能となります。
また、土日が仕事の方でも、仕事中に全自動で馬券購入を行うこともできます。
このページでは、競馬AI構築の最終目標として、馬券の自動購入を行うための基礎知識を解説します。
Webから投票するための「即PAT口座」の開設
馬券の自動購入を行うためには、Webでの購入を行う必要があり、まずはそのための口座開設が必要となります。
JRAが公式に提供している「即PAT」というWebでの馬券購入サービスがあります。
即PATへ登録することで、自分の銀行口座から即時に入金ができ、パソコンやスマートフォンなどから馬券の購入が可能となります。
多くの競馬用ソフトウェアはこの即PATと連携できるようになっているため、馬券の自動購入を行うためには登録が必須なサービスと言えます。
サービスの詳細や登録については、以下のJRA公式サイトを参照ください。

https://www.jra.go.jp/dento/welcome/soku/ (JRA公式サイトへ飛びます)
指数計算や自動購入を行うためのソフトのインストール
即PATの口座を開設したら、次はその即PAT口座と連携して自動購入を行うためのソフトをパソコンにインストールする必要があります。
ここでは、プログラミング知識などがない方でも扱いやすく、自動購入を実現しやすいソフトウェアを紹介します。
これらのソフトウェアは基本的にプログラミングやコードの記述などは不要(いわゆるノーコード・ローコード)となるため、専門知識がない方でも扱いやすいものになっています。
次に、どのような場合にどのソフトウェアを使用するのかをご説明します。
前日(当日朝)に買い目が決まる場合
当日のファクター(各レースの馬体重増減、馬場状態の変化等)を使用しない場合、前日時点または当日の馬場状態などの発表時点で計算が可能となり、購入馬券を決定することが可能となります。
その場合の購入金額決定方法毎の対応方法を説明します。
資金均等買いとする場合
前日に買い目が決定しており、かつ資金均等買い(購入金額をオッズに関わらず一定)とする場合は、
- 購入馬券
- 購入金額
の両方が事前に決定するため、その時点で馬券を購入することが可能です。
自動購入用のソフトウェアを使用する必要がなく、即PATの口座を登録していれば、PCやスマートフォンから購入が可能となります。
配当均等買い
配当均等買いとは、オッズに応じて払戻額が一定となるように調整する買い方です。
そのため、買い目は前日に決まっていても、当日の直前オッズを取得し購入金額を決定する必要があります。
この場合は、KSC自動投票plusのみの利用で馬券の自動購入が可能となります。
KSC自動投票plusの設定

馬券種の種類ごとに購入金額(または払い戻し額)の設定が可能です。

オッズ自動取得時刻(購入時刻)を、発走時間の何秒前に指定するか、秒単位で設定が可能です。

資金配分の方法を、「均等・比例・均一・期配」の4パターンから設定が可能です。それぞれの内容についてはソフトのマニュアルをご確認ください。
オッズが2倍以下の場合は購入対象から除外する、といった設定も可能です。

指定時刻にオッズを取得し自動投票する対象については、CSVファイルから読み込むことが可能です。
対象の指定方法はTARGETのレースID(18桁馬番あり)となっており、TARGETの利用者にとっては作成しやすい形式となっています。
初めての馬券自動購入は「KSC自動投票Plus」がおすすめ
多くの方はTARGETの利用のため、データラボ会員に登録していると思いますので、KSC自動投票Plusは実質無料で利用が可能です。
また、TARGETのレースIDを使用して馬券購入対象を指定するため、TARGETをベースとしたAIとも親和性が高くなっています。
私も初めて自動投票を行った際は、KSC自動投票Plusを使用しました。
初めて自動購入を行う方には、導入のハードルが低い本ソフトの使用を推奨します。
直前情報を使用して買い目を決定する場合
馬体重や増減など、当日の直前情報をファクターとして使用し買い目の決定をする場合は、資金設定に関わらず自動購入のハードルが格段に上がります。
それは、次の4ステップの処理を行う必要があるためです。
あらかじめ設定した一定間隔で、指数計算に使用するファクターの情報を取得します。
- TARGETの自動操作によるCSVファイル出力
- RPA等によるWebスクレイピング
STEP1で取得した情報を指数計算用のExcelファイルに書き込み、計算処理を回します。
- Excelのマクロ、Power Query機能等による読み込み
- RPAソフトによる計算用ファイルへの書き込み
計算結果の指数情報や取得したレースの条件から、購入対象の馬券を決定し、自動投票で使用する取り込み用CSVファイルを出力します。
- Excelの関数による計算処理
- Excelのマクロ等によるCSV出力
決定した購入対象馬券を即PAT口座を介して購入します。
- RPA等によるブラウザ操作、購入処理
- RPA等によるTARGET他自動投票ソフトへの読み込み処理
このように、身に着けるべき知識や技術が多くあります。
RPAソフトとは
RPA(ロボティック・プロセス・オートメーション)は、コンピューター上で繰り返される作業を自動化する技術です。
Microsoft社の「Power Automate for Desktop」は、このRPAを活用したソフトウェアの一つで、特にデスクトップ環境での作業を自動化するために設計されています。
このソフトウェアの利点は、プログラミング知識がなくても使える点にあります。
ドラッグアンドドロップやシンプルなコマンド選択で直感的に設定ができ、作業の自動化を設定できます。
これにより、プログラミング知識がない方でも比較的簡単に利用することが可能です。
Power Automate for Desktopの主な機能
馬券の自動購入と関係のある操作に限定して、いくつかの機能を紹介します。
Excelファイルからデータを読み取り、データを他のExcelファイルに書き込むことができます。
他のソフトウェアを起動し、特定の操作を自動実行します。
次の動画は、RPAソフトにより以下の操作を実行したものです。
- TARGETの起動
- レース検索画面を開く
- レース検索条件を設定する
- 前走情報を読み込む
- 特定のウェブサイトを開いてボタンやリンクのクリック等の操作を行います。
- ウェブサイト上のフォームに情報を自動で入力します。
- ウェブサイトから情報を収集し、他のアプリケーションに保存します。
次の動画は、RPAソフトにより即PATの投票画面を自動操作したものです。
こうしたアプリケーションやブラウザ操作などを一定時間間隔でループさせることも可能です。
それにより、直前情報を取得し、その結果導き出される購入対象の馬券を自動購入することが可能となります。
ExcelのPower Query機能とは
Power QueryはExcelの強力なツールで、データを簡単にインポート、整形、結合することができます。
たとえば、別のExcelシート、CSVファイル、Webページなど様々なソースからデータを取り込んで、必要な形に加工することができます。
Excel関数との違い
通常のExcel関数は計算やデータの基本的な操作に使います。
しかし、Power Queryはデータのインポートや複雑な変換、結合などのデータ整形機能を提供します。
つまり、関数は個々のセルの操作に使い、Power Queryはデータ全体を効率的に扱うために使います。
マクロとの違い
マクロは繰り返し行う作業を自動化するためのスクリプトですが、プログラミング知識が必要になることがあります。
Power Queryはこれらと異なり、データのインポートや変換を直感的に、プログラミング知識がなくても行える機能です。
使い方の基本
- 「データ」タブの「データの取得」からデータをインポート。
- Power Queryエディタでデータを整形、フィルタリング、列の追加や削除などを行う。
- 加工したデータをExcelシートにロードして使用する。
Power Queryはデータを取り扱う際の強力な助けとなり、複雑な関数やプログラミングを知らなくても、大量のデータを効率的に扱うことができるようになります。
直前情報の活用は必須ではない
当日の直前情報を使用できる方が、指数計算のファクターも増え指数としての精度は向上します。
しかし、ファクターの数としては直前情報よりも前走の情報や当日朝までに発表される事前情報の方が圧倒的に多く、事前情報をしっかりと分析できていれば極端に指数の精度が変わるものではありません。
また、馬体重などは前走時の値で代わりにある程度は計算可能です。
一方で、直前情報を取得し、指数計算を自動で行い、その結果に従って馬券の自動購入まで実行するには高いハードルがあります。
直前情報を使用するためのシステム作りには多くの学習時間が必要であることを理解し、事前情報での指数精度向上に限界を感じた時に直前情報を使用することを推奨します。