オーケー馬2開発日誌

複勝で回収率120%を実現するソフト、オーケー馬。その第二弾は、より強化された選定方法を実装。

玄三券法のいうところの縦の流れは、まだ、解明できてないが、トータライザー、今でいうオッズから、回収率を底上げする。

オッズは、締切直前10分前くらいのオッズをサンプルとして検証する。

競馬のオッズは、最終オッズは存在するが、時系列データとしてのオッズはほぼ、存在しない。

ほぼ、というのは、JRA-VANのサービスを使えば、1年前までの時系列データ(3連系を除く)は取得可能だ。

いろいろと検討した結果、自前で、オッズ情報を取得するしか、ない、という結論に至った。以前、JRA-VANに入っていたときに、かなりの年数の時系列データを取得した記憶があり、外部記憶装置6台をすべて、サルベージしてみたが、見当たらない・・・。

オッズ取得プログラムは、だいたい完成しているので、あとは、実行開始日を決めて、その日の1年前は、JRA-VANで取得する。

なので、JRA-VANは1か月だけ、入会する。出費は痛いが、1年間の情報を取得できるだけで、検証作業がずいぶん、はかどる。そのメリットは、2000円ほどの出費に比べて、圧倒的に大きい。

自分で収集した締切直前オッズは、いずれ、こちらで公開する予定。JRA-VANが1年間分の情報で2000円ほどなので、こちらは、半額の1000円ほどに設定する。公開するのは、1年後だけどね。

2020/11/30 06:43

中央競馬のオッズ取得プログラムのソースを久しぶりにながめる。

リファクタリングは、①リテラルをなくす。②Webサイトの巡回に関する資料(設計書)を残す、といった点。

なにせ、スクラップ&ビルドをしていると、数か月後、自分でソースを見ても、さっぱり理解できない。ノイズ(ゲーム、ネットサーフィンなど)を遮断して、今から、本格的に競馬プログラム作成を再始動する。

地方競馬のオッズ取得プログラムは作成してないが、競馬ソフトウェア「オーケー馬」は、来年のアップデートでは、地方競馬(南関限定)を実装する。

ところで、オーケー馬は、リリースして、何年経過したっけ?というくらい、管理がずさんなので、きちんと管理していく。デジタルベースで管理すると、いつも、ファイルがどこかへいっちゃうので、紙ベースで管理をする。

以下は、VB6版の中央競馬のリアルタイムオッズ取得プログラムの一部。

'TOPへ遷移 top.html
Private Sub Command51_Click()
   
   Call makeIE
   gStr = GoTopJRA()
   
End Sub
'IE作成
Private Sub makeIE()
   If Not objIE Is Nothing Then
       objIE.Quit
       Set objIE = Nothing
   End If

   Set objIE = CreateObject("InternetExplorer.Application")
   objIE.Visible = True    'IE を表示

End Sub
'JRAのトップページへ遷移
Private Function GoTopJRA() As String
   objIE.Visible = False
   objIE.Navigate2 "http://www.jra.go.jp/keiba/"
   objIE.Visible = True    'IE を表示
   GoTopJRA = waitAndGetHtml()
End Function
Private Function waitAndGetHtml() As String
   Do While objIE.Busy = True Or objIE.ReadyState <> 4
       DoEvents
   Loop
   
   waitAndGetHtml = getHTMLString(objIE)
End Function
Private Function getHTMLString(ie As Object) As String
   On Error GoTo 0                         ' エラーのトラップを無効にします。
   On Error Resume Next                    ' エラーのトラップを留保します。

   Dim htdoc As HTMLDocument
   Set htdoc = ie.Document
   
   Dim ret As String
   ret = htdoc.getElementsByTagName("HTML")(0).outerHTML & vbCrLf
   getHTMLString = ret
   
'    Exit Function
'err_handler:
'
'    Debug.Print Err.Description
'
'    getHTMLString = ""
'
'    Exit Function
End Function

地方競馬といっても、南関競馬限定です。

南関競馬
19:船橋
27:浦和
20:大井
21:川崎

上記が南関競馬の開催場所のコード。

日々、自動巡回するようなソフトにする予定ですが、当面は、朝、設定して、時間がきたら、オッズ(サイト情報)を取得するようにします。

サイト情報から、オッズの取得は、おいおい可能になればよいのです。

情報が必要となるのは、数年先ですので。それまでに、プログラム作成すれば、問題なし。

南関競馬は平日開催してるので、平日の情報収集をどのように運用するかを検討しなくてはいけない。

通勤中にプログラム作成をしているレッツノート、デスクトップパソコンの2択となる。

デスクトップパソコンは電力消費量が大きい。かといって、レッツノートは通勤中のプログラミングに必須。

あるいは、通勤中は、紙のノートに設計だけして、早朝、週末に集中して、プログラミングをするか。

早朝はキーボードの打鍵音が家族の迷惑になりそうだ。

やはり、週末に集中するほかない。

南関競馬に関しては、夜開催の場合、通勤の帰りにプログラミング、デバッグができる。

すぐにできる行動は、帰りに南関競馬のサイト取得、デバッグをすること。今日から、すぐに、はじめよう。

鋼鉄の咆哮3の修正パッチが入手できなくて、困っているが、どれだけ、ネットを巡回しても、解決しないので、宇宙にお願いしておこう。あと、マスターブックの限定部品も、ついでに、宇宙にお願いしておこう。

VB6でプログラミングしているが、本当はC#で作成したいのだ。

レッツノートでは、VisualStudio.Netが遅いので、しかたなく、VB6での開発をしている。というわけで、ゲーミングノートパソコンも、宇宙にお願いしておこう。

あー、競馬ソフトウェアの部品をたくさん、作りたいー!理想は、Smalltalkで作ることだけどね。ま、こちらは、おいおい。

南関競馬のサイトは取得できた。


この記事が気に入ったらサポートをしてみませんか?