banner2.gifブログランキング・にほんブログ村へ
クリックよろしくお願いします.

2015年10月24日

10/24

京都9R ◎1

東京11R ◎11

額は少なく
posted by YSM at 07:30| 大阪 | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2015年10月18日

10/18

京都11R
◎ 18 ミッキークイーン
posted by YSM at 06:45| 大阪 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年03月30日

エクセルで競馬予想最終回

今までnetkeibaからの馬データの取り込み方法について説明しました.

説明としては結構わかりにくい部分も多かったと思います.自分で読み返してみてもわかりにくいなと思いました.

ただやりたいことは大体わかっていただけたかと思います.

ここから先はみなさんで試行錯誤しながら,完成させていけばいいと思います.



さて,いよいよこれから取り込んだデータを用いて,本格的な予想を行うのですが,ここから先の予想アルゴリズムはみなさんが自由に考えていただくところです.

たとえば,G1で1着なら10点,G2なら5点のような計算をおこなうのもいいと思いますし,僕なんかはとりおやこ競馬さんから各競馬場の基準タイムのデータを拝借し,近5走が基準タイムからどれだけ速いか,遅いかを計算したりしています.
もちろん馬場や斤量などの補正も行って計算しています.

また,馬のデータを取り込むのと同じ要領で血統データを取り込み,血統の評価をするというのもいいと思います.

そして,みなさんの考えた予想アルゴリズムを是非紹介したり,討論することで,僕自身の予想にも役立てればと思います.
それでみんなの馬券力・回収率が向上すればいいと思います.



最後に・・・

最初にもいいましたがエクセルで予想することのメリットは自分の主観などを捨てて,客観的に予想できることです.
今回紹介したエクセルで競馬予想の利用方法は人それぞれ.予想ソフトを完全に信用して馬券を購入するのもよし,あくまで馬券検討のための補助ツールとして使用するのもいいと思います.
どのような使い方であれ,エクセルを用いた予想で,少しでも回収率向上につなげていってくれることをお祈り申し上げます.

posted by YSM at 14:46| 大阪 ☀| Comment(0) | TrackBack(4) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年03月29日

エクセルで競馬予想4

今回はハイパーリンクをたどってデータを取り込む方法を説明します.

とはいってもなんてことはないです.


With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://db.netkeiba.com/horse/2002100816", Destination:=Range("A20"))

の部分を

myconn = "URL;" & Worksheets("出馬表を貼り付けているシートの名前").Cells(i, 7).Hyperlinks(1).Address
With ActiveSheet.QueryTables.Add(Connection:= _
myconn, Destination:=Cells(j, 2))

に変えるだけです.
つまり,アドレスをmyconnという文字に置き換えるだけです.
「出馬表を貼り付けているシートの名前」のi行7列目のアドレスを
読み込み,そのデータをj行2列目に貼り付けるということです.

※i行7列目にハイパーリンクの位置が来るようにnetkeibaの出馬表をコピペしなければなりません.

ここでiを○〜○+18までと繰り返し計算をすることで,馬番が1〜18までのアドレスを順々に読み込み,データを取り込むことができます.
そしてjを▲〜▲まで繰り返し計算をすることで,データを順々に貼り付けることができます.


これで基本的なデータの取り込み方は終了.

しかし,前回も言いましたが少し問題点があります.

.WebTables = "35"

の部分の番号は「webページのどの場所をとりこむか」ということを表しています.
しかしこれが厄介なことに,馬によって,たとえば掲示板への書き込み量や広告の量などによって数字が変わってきます.
これを解決するために,


"35"

の部分としてkのような文字をおき,kを色々変化させ繰り返し計算を行い,正しい部分が貼り付けられるまで,同じ操作を繰り返します.

正しい部分が取り込まれた場合,貼り付けられた一番左上のセル(j,2)は必ず「日付」という文字になります.

ですので,取り込むプログラムを


Do Until Cells(j, 2) = "日付"



k = k + 1
Loop

で挟んであげることによって,問題が解決します.

最後に前々回も示しましたが,データを取り込むプログラムをまとめるとこのようになります.


Sub データ取り込み()

!前にあったデータをクリア
Range("B3:AJ1000").Select  !データを貼り付けているセルの範囲
Selection.ClearContents

!データの取り込み
i = 13  !ハイパーリンクの開始位置(行)
Do   !繰り返し計算
j = i * 53 - 686  !データの貼り付け位置(行).データの貼り付け開始位置は13×53-686=3行目になる.また,この場合1頭につき,53行分のデータが取り込める.
k = 32   !web上のデータの取り込み位置
Do Until Cells(j, 2) = "日付"  !セル(j,2)が「日付」という文字になるまでkを1ずつ変化させ動作を繰り返す.
Cells(j, 2).Select

!データの取り込み部分
myconn = "URL;" & Worksheets("出馬表を貼り付けたシート").Cells(i, 7).Hyperlinks(1).Address  !出馬表を貼り付けたシートのセルi行7列目
With ActiveSheet.QueryTables.Add(Connection:= _
myconn, Destination:=Cells(j, 2)) !出馬表を貼り付けるセルj行2列目
.Name = Worksheets("出馬表を貼り付けたシート").Cells(i, 7)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = k  !各馬のページにおいて取り込む部分.k番目のデータ
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = True
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
k = k + 1
Loop

i = i + 1
Loop Until i = 31

End Sub


iとjの数字は各人の貼り付け位置にあわせて自由に変えていけばいいと思います.
posted by YSM at 13:28| 大阪 ☁| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年03月28日

エクセルで競馬予想3

前回はweb上から馬の出走データを取り込む流れについて説明しました.

今回は
?A貼り付けた出馬表における馬番が1番の馬のハイパーリンクから,その馬のページに行きデータを取り込む.

について説明します.
まず,外部からデータを取り込むマクロを記録します.

やり方は,エクセルの「ツール」→「マクロ」→「新しいマクロの記録」を選択します.
この時点で,次から行う操作は,「記録終了」をするまで,すべてマクロに記録されます.
ここからは,実際にデータを取り込む操作を記録します.

・まず,データを貼り付ける場所のセルをクリックします.
・次に「データ」→「外部データの取り込み」→「新しいwebクエリ」を選択します.
・別ウインドウでwebページが表示されるのでアドレスバーにnetkeibaの馬のアドレスを書きます.
・そうすると,各馬のページにジャンプします.そこで取り込みたい場所の「⇒」マークをクリックし,一番下の取り込みボタンを押します.
・取り込めたら,「ツール」→「マクロ」→「記録終了」をクリックすると記録完了です.

例として,ディープインパクトの出走データを,セルA20に取り込むという記録をとってみると以下のようになります.


Sub Macro1()
Range("A20").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://db.netkeiba.com/horse/2002100816", Destination:=Range("A20"))
.Name = "2002100816"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "35"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub

となります.

ここで,

WebDisableDateRecognition = False

の部分は
WebDisableDateRecognition = True

に変更しておいてください.
確か,これはセルの書式を固定するためだったと思います(間違ってるかもしれません).

あと
.WebTables = "35"

の部分の番号は「webページのどの場所をとりこむか」ということを表しています.
しかしこれが厄介なことに,馬によって,たとえば掲示板への書き込み量や広告の量などによって数字が変わってきます.
これの解決策については後日説明します.

これでとりあえず「webからデータを取り込むということは出来ました」
ただし,この方法は「webページのアドレスを自分で入力してデータを取り込む」という方法でしかありません.

実際には出馬表に載っているハイパーリンクをたどって,各馬のページに移動し,データを取り込まなければなりません.

次回は「ハイパーリンクをたどって」webからデータを取り込む方法を説明します.
posted by YSM at 14:16| 大阪 ☁| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年03月25日

エクセルで競馬予想2

netkeibaからデータを取得する方法を説明します.
とりあえず自分で試行錯誤しながらひとつずつ問題を克服するほうが,いいと思いますが,近道したい人は,このソースを自分自身に合うような形に改良し,貼り付けたらデータの取り込みができます.


エクセルでデータを取得するには「マクロ」を用います。
C言語などほかのプログラムはどうなのかわかりませんが,エクセルというものは便利なもので,マクロの記録という機能があります.
つまり,行う操作を一度プログラムとして記録すれば,次に同じ操作を行うときには,ボタンひとつで記録したプログラムを再度実行できるという機能です.

また,新しいwebクエリという,web上からデータを取り込む機能もあります.

つまり,それらを組み合わせれば簡単に外部からデータを読み込むことができるのです.

まず,web上からデータを取り込む流れとしては,
@セルにnetkeibaの出馬表を貼り付ける.
A貼り付けた出馬表における馬番が1番の馬のハイパーリンクから,その馬のページに行きデータを取り込む.
B2番以降の馬についても同じ操作を繰り返す.

という流れです.これら@〜Bの流れを記録できれば、次回以降はボタン一つでこれらを実行することができるのです。
posted by YSM at 07:28| 大阪 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年03月23日

エクセルで競馬予想1

コンピュータを使って競馬予想する方法を何回かに分けて紹介します。

コンピュータで予想することのメリットは
・私情や人気・新聞の印などにとらわれないで予想できる。
 (常に同じ目線で予想できる)
・予想を数値化でき、各馬の力の差がわかりやすい。
 (混戦度合いがわかりやすい)

デメリットは
・馬の調子など数字に表せない要素は考慮しづらい。

などが挙げられます。
競馬での勝率を向上させるためには、勝てるレースを確実に買い、余計なレースは買わない(もしくは遊び程度にする)ことだと思いますので、コンピュータ予想で数値化し、力関係を把握することで"買わない勇気"を持つことが重要かと思います。


ここでは計算ツールとしてはプログラム等に詳しい方でしたら、C言語などでもいいと思いますが、今回は比較的扱いやすいExcelを用いる方法を紹介します。

また予想するうえでの情報源となる競走馬のデータは、JRA-VANから取得する方法もありますが、あくまで無料にこだわり、netkeibaから取得する方法で行きたいと思います。


次回は実際にnetkeibaからデータを取得する方法について書く予定です.
posted by YSM at 22:31| 大阪 ☁ | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

1999年01月01日

データ取り込みマクロのソース

Sub データ取り込み()

!前にあったデータをクリア
Range("B3:AJ1000").Select  !データを貼り付けているセルの範囲
Selection.ClearContents

!データの取り込み
i = 13  !ハイパーリンクの開始位置(行)
Do   !繰り返し計算
j = i * 53 - 686  !データの貼り付け位置(行)
!iとjは出馬表を貼り付ける位置と,データを貼り付ける位置によって変わる.
k = 32   !web上のデータの取り込み位置
Do Until Cells(j, 2) = "日付"  !セル(j,2)が「日付」という文字になるまでkを1ずつ変化させ動作を繰り返す.
Cells(j, 2).Select

!データの取り込み部分
myconn = "URL;" & Worksheets("出馬表を貼り付けたシート").Cells(i, 7).Hyperlinks(1).Address  !出馬表を貼り付けたシートのセルi行7列目
With ActiveSheet.QueryTables.Add(Connection:= _
myconn, Destination:=Cells(j, 2)) !出馬表を貼り付けるセルj行2列目
.Name = Worksheets("出馬表を貼り付けたシート").Cells(i, 7)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = k  !各馬のページにおいて取り込む部分.k番目のデータ
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = True
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
k = k + 1
Loop

i = i + 1
Loop Until i = 31 !13〜31の計18回(18頭分動作を繰り返す)

End Sub
posted by YSM at 23:05| 大阪 ☁| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。