私はEveryDBを利用してoracleにデータを蓄積しています。2017年京都1回5日は1/15から1/17に代替え開催となりましたが、オッズデータに誤植があります。添付ファイルは当日のデータです。
pipiさん、こんにちは。
ちょっと気になり自分のDB確認してみるとなんとなく誤植(?)な気もします。少なくともJV-Data仕様書では単勝オッズの説明に
999.9倍で設定
“9999”:999.9倍以上 “0000”:無投票 “----”:発売前取消 “****”:発売後取消 " ":登録なし(sp)
となっていて、人気順の説明は
スペース:登録なし ‘–’:発売前取消 ‘**’:発売後取消
無投票の時は発売されている組合せの最大値を設定
となっているのですが、データ的には
01**** 02**** 03**** 04**** 05**** 06**** 07**** 08**** 09**** 10**** 11**** 12**** 13**** 14**** 15**** 16****
という感じになっているので、もしオッズが”****”として発売後取消だとしたら人気順も”**”で発売後取消が正しいと思われますね。” “だと登録なしでデータの整合性が取れてない感じですもんね。
pipiさんが誤植と言われている部分が何を指しているのかが不明ですが、TANNINKIが(null)なのはEveryDBの仕様な感じなのかデータの整合性が取れていない為になった現象なのかはEveryDBの作者さんでないと分からない事かもですね。
SameNoEsaさん返信ありがとうございます。添付ファイルのMONTHDAYが0115となっています。1/15は開催が中止になってますのでこのデータは誤植です。代替開催日の0117のセットが正解です。1/15のデータをセットしたためオッズと人気のデータが発売中止の状態でセットされています。
大多数のユーザーはTARGETを使っていると思います。TARGETのオッズは票数を元にオッズを計算しているようなのでこの誤植による影響はないです。他にもオッズの誤植を見つけましたが、それについてはJRA-VANさんの回答を得てからにします。
pipiさん、こんにちは。
なるほど、そこが指摘されている誤植だったのですね。しかし、それもEveryDB側の話であって、このデータはデータ区分’9’で配信されてますのでレース中止で特に問題無い筈ですよ。17日の分は別データで存在してます。
SameNoEsaさん返信ありがとうございます。添付ファイルのMAKEDATEは20170118です。MAKEDATEはJRA-VANでデータを作成した日付です。代替え開催日の翌日である1/18にデータを作成しています。1/18にJRA-VANは私が指摘した誤植ファイルとは別に正しいデータファイルを提供したのですね。EveryDBはデータ区分5(確定)を使う仕様ならこの問題はなかったことになります。
私は競馬予想コードの作成はしますが、データ取得はEveryDBに任せています。Pythonでデータ取得のコードを作成してみましたが、短時間では作成できないと悟りました。誤植データの修復をどうしたらよいものか考えてしまいます。
pipiさん、もしかしたらEveryDBの作者さんに相談した方がって思えたりしますが、
この辺りも公式からの解答があるとは思いますが、1月17日分のデータはデータ区分毎に多分適切なタイミングで提供され、その都度更新されていき、最終的にデータ区分’5’が提供されたのが20170118という、まあ、開催終了後の翌日なんじゃないかと思います。自分のデータベースでもそうですが、データ区分毎にデータは保持せずに最終的なものを残しているかと思いますので、その結果だと思います。
SameNoEsaさんごていねいな回答ありがとうございます。後日、EveryDBの開発者にお知らせします。JRA-VANに正しいデータがありますのでこれを取得してOracleのデータを修正します。データ取得のコードはPythonかExcelで作ることにします。
私は下記のツールを使いコードを作成しています。
①python
②oracle
③ChatGPT
④EveryDB
オッズの誤植は④にあることが判明し先に進めます。下記の日付で代替え開催がありましたが、このデータを取得するコードをpythonで作っています。今回問題となった1年以上前の蓄積データを取得する場合、pythonコードの記述がいつまで経ってもできません。アドバイスがありましたらお願いします。ちなみに、速報系データの取得はpythonでできています。
2017年1月17日
2020年3月31日
誤植ではありませんね。
オッズ1(単複枠)データかと思います。
該当レコードのデータ区分が「9」(レース中止)になっています。
またオッズの「****」も1月15日は日曜日。前日土曜日から
発売していたが、日曜日朝になって中止になった経緯と受け止められます。
「****」は「発売後取消」なので、競馬中止で全馬が「****」になるものですね。
283cksさん返信ありがとうございます。誤植でないことは理解しました。PythonでJVLinkを使いデータ取得を試みましたが、今のところうまくいきません。データ取得は断念して先に進むことにしました。今は自動購入のコードを作成しています。発売締め切り直前にオッズを取得し投票するコードです。
pipiさん、こんばんは。
何故公式の方が出てこないのかは、まあ、Python絡みとの判断だと動作対象外とかサポート対象外とかの話があるからなのかも^^;
これなんですが、Pythonに限らず一定期間を過ぎたデータは更新で取得出来ないとか、そんなルール(仕様)がJV-Linkにはあった記憶がありますね。JVOpenの第3パラメータのoptionの話です。通常はこれで最初にセットアップ(3 or 4)をし、それ以降は通常データ(1)で更新(追加?)していきます。pipiさんがどの様にしているのかは書かれていないので分かりませんが、この辺りの話で1年以上前のオッズ取得が出来ていない、もしくはもし速報系として取得しようとしているとすると、こちらも提供期限があり、1年以上前のオッズは取得出来なかったかと。これはJV-Data仕様書の「データ提供タイミング・提供単位」に書かれてますので確認してみるとよろしいかと思います。
SameNoEsaさん返信ありがとうございます。混乱を避けるため問題を整理します。
①2017年京都1回5日は1/15から1/17に代替え開催となったが、オッズデータに誤植あり。
②Pythonで速報系データは取得できるが蓄積系データができない。
SameNoEsaさん返信を読み①はデータ取得ツールEveryDB側の問題と判断した。私はこの対応として①データをPythonで取得しようと試みたが、うまくできなかった。問題解決のため下記教材をPythonコードで試したらこれすらうまくできなかった。
https://jra-van.jp/dlb/sdv/workshop/20210526/Lesson-2.pdf
https://jra-van.jp/dlb/sdv/workshop/20210526/Lesson-3.pdf
この教材は「今週データのダウンロード、ダウンロードしたファイルの読み込み」をする部分である。データのダウンロードと読み込みはするが、対象データである今週データではなく2024年のデータであった。ダウンロードしたデータは約1300個であった。
教材はExcelを使っている。たぶん、Excelなら教材の説明書どおりの結果が得られるのだろうが、私が所有するExcelは64ビット版のため使えない。Excelで教材を試すのは断念した。
長くなりましたが、以上の経過です。この問題が解決しなくても先に進めます。今は発売締め切り直前のオッズを取得後に自動購入するコードの作成をしています。
pipiさん、こんばんは。
という事なので、別に問題無いのかなぁっと判断しますが、
ちょっと何言ってるのか理解出来てないのは自分自身あまり日本語が得意ではないからなのか^^;(帰国子女だったりするので) これ、教材でも書かれてますが、蓄積系ではなく非蓄積系でって説明してますね。自分自身は蓄積系での開発してるので非蓄積系の知識はないので的外れならごめんなさい。ただ、pipiさん、この蓄積系と非蓄積系の区別は出来てますか?この教材では非蓄積系なのでoption=2を利用してるものかと思いますが、過去のデータ取得はこれでは出来ないのでは?
本人が別に先に進められると言ってますので、これ以上は不要なのかもですが、気になったので書かせて頂きました。
SameNoEsaさん返信ありがとうございます。私の書き込みは皆さんを混乱させるようなのでこれでおしまいとしたいです。問題のオッズが正しく取得できていませんが、今後の開発に問題はないです。今は自動購入のコードを開発しています。コードが完成したら少額の金額でテスト運用をしてコードの信頼性を確認します。約25%もの控除率がある競馬で儲かるのか。どのような結果が出るのか楽しみです。机上の馬券購入では三連複と三連単が儲かる結果となっています。
