Yahoo!ファイナンス - 株価データ取得!
Updated:
【はじめに】
Yahoo!ファイナンス掲載情報の自動取得(スクレイピング)は禁止されています。(参照)
以下の記事を参考にすることもお勧めしません。
こんばんは。
以前、Excel2000のWebクエリでYahoo!ファイナンスから株価データを取得することに挑戦してみたものの、現在のYahoo!ファイナンスからはExcel2000ではWebクエリでデータを取得できないことが判明しました。
そこで、なんとか手に入れたExcel2003をインストールして挑戦しました。
やっぱり、Excel2003では即成功しました。
ということで、Windows系では一応自分の得意なVisualBasicとSQLServerでExcel2003のWebクエリも使いながら、Yahoo!ファイナンスから株価データの取得を試みました。
本当は、VisualBasicを使うならExcelのWebクエリを使わずに直接VisualBasicでデータを取得したかったんですが、試してみた結果チョット面倒な感じがしたので、今回はExcelのWebクエリを使用することにしました。(実はJavaを使用することも検討していましたが・・・)
少し、てこずったものの何とか完成しました。
そして、早速データ取得をしてみました。
何度か失敗しながらですが、見事にSQLServerにデータを取り込むことに成功しました。(まだ一部のデータしか取得していませんが)
でもやっぱり、ExcelのWebクエリを使用してのデータ取得は時間がかかりますね~。
1銘柄の10年分の取引データを取得するのに約1分かかります。
一旦必要なデータを取得してしまえば、毎日1日分のデータを取得するだけになるので、各市場に上場している全銘柄も1日分が30分くらいで終わると思いますが。(Yahoo!ファイナンスで検索可能な銘柄が約3700銘柄(丸々10年分ない銘柄も多数あります)ありますので)
SQLServerに登録されたデータ(まだ全銘柄の3分の2くらい)を見てみると、300万件を超えています。
(これは銘柄×日数分です)
やはり、こんなシステム(全データを対象にしたシステム)を作ろうかと思ったら、Excelだけでは無理ですね。
データベース様様です。
(Excelだと列が256列、行が65536行しかないんで、こんなに大量のデータは扱えないですよね)
でも、今回はWindow側での作業でしたが、本当はサーバ(Linux(CentoOS))でMySQLを使っているので、それを使用したいとも思っているんですが、どうでしょうかね~。。。
最終的には取得した株価データを活用して、今手動で行っている株取引を自動売買できるシステムを構築しようと考えています。
※あらゆる指標データを算出し、自動で買い時・売り時を判定し、自分の買付余力も考慮しながら自動で発注するシステム、アレです。
まあ、相当先の話でしょうが・・・
では、また。
Comments