「Webスクレイピング」タグアーカイブ

【検証】<VBA自動投票>地方競馬(3/31~4/13)

VBAによる地方競馬の自動投票(オッズデータ傾向分析)の実力を検証する。

最近2週間の戦績はどうでしたか?

回収率は82.9%であった。

項目投票レース数購入額回収額回収率
単勝複勝計14R14,000円11,600円82.9%
単勝購入の成績はどうでしたか?
単勝購入の成績はどうでしたか?

回収率は76.4%であった。

項目投票レース数購入額回収額回収率
単勝計14R7,000円5,350円76.4%
複勝購入の成績はどうでしたか?
複勝購入の成績はどうでしたか?

回収率は89.3%であった。

項目投票レース数購入額回収額回収率
複勝計14R7,000円6,250円89.3%
次回の検証予定はいつですか?
次回の検証予定はいつですか?

2週間後を予定している。

「<VBA自動投票>地方競馬」を実践するにはどうすればいいですか?
「<VBA自動投票>地方競馬」を実践するにはどうすればいいですか?

「【ExcelVBA】<地方競馬自動投票>今さら聞けないExcelVBA」シリーズで継続的に紹介して行く予定である。

「<VBA自動投票>地方競馬」の検証はこれからも続けて行く。

これでOK!

Ameba

【45歳から】始めたいExcelVBA競馬自動投票<ログイン>

(楽天)地方競馬情報サイトへのログインを自動化します

何か準備しておくものはありますか?

「楽天競馬」への会員登録&IE(Internet Explorer)の確認を済ませてください

事前に準備するものは次の2点です。

①「楽天競馬」への会員登録
地方競馬のレース情報を取得するために、「楽天競馬」への会員登録を済ませてください。


②IE(Internet Explorer)の確認
PCにIE(Internet Explorer)がインストールされていることを確認してください。

何かExcelで準備しておくものはありますか?
何かExcelで準備しておくものはありますか?

マクロ有効ブック&開発タブ&ログイン情報

Excelでの準備は次の3つです。

1マクロ有効ブックの新規作成
・Excelを立ち上げ、[新規][空白のブック]を選択します。
・[ファイル][名前を付けて保存]を選択し、[ファイルの種類]で[Excelマクロ有効ブック(*.xlsm)]を選択して保存します。
 [ファイル名]は任意です。
(推奨:rakuten_keiba.xlsm)
2開発タブの表示確認
・Excelファイルを開いた時、上部のタブの中に「開発」が表示されていることを確認します。
・表示されていない場合は、次の手順で表示されます。
([ファイル][その他][オプション]を選択し、[リボンのユーザー設定] で [開発]のチェック ボックスをオンにします)
3

(楽天競馬サイトへの)ログイン情報の設定
・ワークシートの名前を「Parameter」に変更してください。
・Excelシートに次のように「楽天競馬」サイトへのログイン情報を設定しておきます。
<ID>あなたの「楽天競馬」サイトのログイン・ユーザID
<PASS>あなたの「楽天競馬」サイトのログイン・パスワード
<URL>https://keiba.rakuten.co.jp/

・各「設定値」(ExcelのC列)には名前を定義してください。
 この場合、セルC3には「ID」、セルC4には「PASS」、セルC5には「URL」と名前を定義します。
 (名前の定義の仕方は、該当セルを選択し、[数式][名前の定義]で名前を入力します)。

 

どうすれば「楽天競馬」サイトへ自動ログインできますか?
どうすれば「楽天競馬」サイトへ自動ログインできますか?

自動ログインVBAマクロを作成します

「楽天競馬」サイトへ自動ログインするには次の設定を行ってください。

1自動ログインマクロ実行ボタンの設置
Excelシートに次のように「ボタン」を設置し、自動ログインマクロを作成します。

・[開発][挿入][フォームコントロール]の中から[ボタン(フォームコントロール)]を選択し、シートに貼り付けます。

2マクロの作成
・「マクロの登録」ダイアグラムで[新規作成]ボタンをクリックします。
・「マクロ名」を「rakuten_login_Click」にします。
・(下段の)「★自動ログインマクロ」のすべてコピーし、すべてを(上書き)貼り付けます。
 ダイアグラムを閉じます(右上×をクリックします)。
3ボタンの名前変更
・ボタンが設置されます。名前をログインに変更します。

★自動ログインマクロ

(上段の)「2.マクロの作成」で、次のVBAマクロをすべてコピーしすべてを貼り付けて使用してください。

Declare PtrSafe Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)

Sub rakuten_login_Click()
‘==================================================
‘rakuten競馬ログイン
‘==================================================

Dim id As String
Dim pass As String
Dim url As String

‘ID/PASS/URL取得
With Worksheets(“Parameter”)
id = .Range(“id”).Value ‘ID
pass = .Range(“pass”).Value ‘PASS
url = .Range(“url”).Value ‘URL
End With

‘ie起動
Set objIE = CreateObject(“InternetExplorer.Application”)

‘Rakuten競馬
With objIE
.Visible = True
.navigate url
‘インターバル
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
End With

‘マイページクリック
For Each objinp In objIE.document.getElementsByTagName(“a”)
If Mid(objinp.textContent, 26, 5) = “マイページ” Then
objinp.Click
Exit For
End If
Next

‘インターバル
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop

‘楽天会員ログイン
‘ID入力
For Each objinp In objIE.document.getElementsByTagName(“Input”)
If objinp.Name = “u” Then
objinp.Value = id
Exit For
End If
Next
Sleep (1000)

‘PASS入力
For Each objinp In objIE.document.getElementsByTagName(“Input”)
If objinp.Name = “p” Then
objinp.Value = pass
Exit For
End If
Next
Sleep (1000)

‘ログイン
For Each objinp In objIE.document.getElementsByTagName(“Input”)

If objinp.Name = “submit” Then
objinp.Click
Exit For
End If
Next

‘インターバル
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
Sleep (1000)

End Sub

「楽天競馬」のマイページが自動表示されました!
実行すると「楽天競馬」のマイページが自動表示されます。

「楽天競馬」の「マイページ」が自動表示されます

「楽天競馬」にログインし、あなたの「マイページ」が自動表示されます。

「楽天競馬」の「マイページ」が自動表示されます

私でもできた!次のステップへ進もう!
次のステップは何ですか?

次回はレース情報を取得するVBAマクロを紹介します

次回、レース情報を取得するVBAマクロを紹介します。

これでOK!
次回は、「【45歳から】始めたいExcelVBA競馬自動投票<レース情報>」でレース情報を取得するVBAマクロを紹介します。

Ameba



【45歳から】始めたいExcelVBA競馬自動投票

Excel VBAによる自動投票にハマる

・Excel VBAによる自動投票にハマる

「中高年(40~50歳代)の賃金事情(第9回)」でも記載したが、私がJRAのJRA-VANで提供されるデータをExcel_VBAによって制御・分析し自動投票を行うようになったのは、今から15年以上も前のことになる。

データの入手方法や自動投票については、VB.NetやExcel VBAを駆使してサンプルコードから見様見真似で作成してきた。
データとしては、競走データや騎手データおよび調教データなどを用いて分析・解析を試行錯誤してきたが今ひとつ結果に結びつかなかった。

そんなある日、ふと頭を過った言葉があった「競馬を一番知っているのは実は人間である」というものである。

つまり、競馬などのギャンブルは不確定要素の塊ではあるが、”一定の正しい判断がなされた結果が反映されたオッズデータは存在する”のではないかという推察した。そうであれば、一定の法則・理論で購入(投資)でき、『競馬を投資(的)捉える』ことが出来るのではないかと考えた。

競馬を投資として捉える

・競馬を投資として捉える

競馬を投資として捉えるに当たって立てた指針は次の3点である。

①買い目は1点に絞る(単勝&複勝)・・・リスクの最小化

②オッズデータから人気馬が一定数に絞られたレースを厳選する・・・勝率&回収率のUP

③扱うオッズデータは、(ある程度)精度が高い断面のものを用いる・・・データの信憑性確保

リスクの最小化

・リスクの最小化

投資的に考えるには一定の理論・法則に基づいた成長が見込まれるものでないとならない。
厳密には”成長”ではないが、レース成績データの積み上げや分析・解析の精度の向上から理論・法則のブラッシュアップが図れる点は”成長”近いものと考える。

また、”投機”ではないと捉えると”一か八か”ではなく、一定の勝率が求めらるためリスク軽減して単勝・複勝式に限定して購入(投資)する方針とした。

勝率&回収率のUP

・勝率&回収率のUP

単勝と複勝のオッズデータから母集団を求め、実質的な頭数を求める。
これにより、実質「何頭立て」で行われるレースなのかを想定する。

また、「単勝・複勝オッズデータの母集団内にいる共通人気馬は何頭なのか」を求まる。
これにより、実質「何頭立て」で「共通人気馬は何頭」なのかでパターン分けを行った。

例えば、実質4頭立てで単複共通人気馬が2頭の場合は、「総4共2」というパターンに分類するという具合である。

このパターン毎の分析・解析結果から、勝率・回収率が期待値以上のレースを購入(投資)することにより勝率&回収率のUPを図る方針とした。

データの信憑性確保

・データの信憑性確保

オッズデータは競馬ファンの意思の表れと言える。
しかし、そのファンの層もいろいろであり、また資金力もマチマチであろう。
よって、レース前のどの時点(断面)のオッズデータが精度が高いのかという点が悩ましい問題であった。

JRAの場合は前売りが基本的にあり、レース開催前日の夕方から投票が可能となっている。私は、前日に投票するファンは熱狂的な競馬好きか競走データなどの分析・解析によって投票しているイメージが湧いた。つまり、一定の精度があるデータを形成する可能性が高いのではないかと仮定した。

その結果、レース開催日当日の朝6時時点(断面)のデータの信憑性が高い傾向にあるという判断に至った。また、地方競馬では販売開始10時の1時間後、ナイターの場合は販売開始12時の2時間後のデータを「予想断面」と定義した。

これにより、データの信憑性確保に近づけると考えた。

地方競馬のWebスクレイピングを行うに当たっては、次の2つのサイトへの事前登録をお勧めする。

楽天競馬
※まずは、会員登録をしておきましょう!
地方競馬を楽しむならオッズパーク!
簡単登録で地方競馬へ投票

※ダイレクト会員登録をしましょう!【年会費・入会費無料】
次回は、【45歳から】始めたいExcelVBA競馬自動投票<ログイン>で「楽天競馬」サイトへの自動ログインの方法について紹介します。