株初心者が本気で儲けるブログ

株式投資に関連するテーマについて取り扱ってます。

【R言語】 Yahoo!ファイナンスから株価データを取得する方法 その2

 

前回に引き続きRを使ってヤフーファイナンスから株価データを取得する方法を紹介していきます。

 

www.dmjtmj-stock.com

 

今回使うのはquantmod()関数です。

 

まずインストール

>install.packages(“quantmod”)

>install.packages("XML")

 

次に読み込み

>library(quantmod)

>library(XML)

 

試しに(7984.t)任天堂の株価を取得してみます。getSymbols()という関数で取得することができます。

 

 ・株価の取得

 

jpn<-new.env()
jpn.name<-getSymbols("7974",env=jpn,src="yahooj", from='2005-01-01',to='2016-11-30')
ninten<-jpnjpn.name
names(ninten)<-c("Open","High","Low","Close","Volume","Adjusted")

 

環境オブジェクトの定義→株価データ取得→header修正という流れです。環境オブジェクトのほうがデータ処理が高速で行えるので理想形はこれですが普通のオブジェクトでも問題ないです。

 

(もし日経平均を取りたいときは7984→998407)

 

・データの確認

> ninten
Open High Low Close Volume Adjusted
2005-02-01 11820 11820 11610 11660 19500 11660
2005-02-02 11840 11840 11640 11680 18300 11680
2005-02-03 11650 11670 11440 11460 30600 11460
2005-02-04 11560 11560 11360 11400 27100 11400
2005-02-07 11700 11850 11670 11680 48800 11680
2005-02-08 11780 11820 11640 11660 19900 11660
2005-02-09 11810 11950 11760 11830 40100 11830
2005-02-10 11900 11990 11870 11980 19800 11980
2005-02-14 12100 12130 11880 11950 24400 11950
2005-02-15 11940 12010 11940 11970 12400 11970
2005-02-16 11950 11950 11770 11830 21000 11830
2005-02-17 11850 11940 11790 11930 17700 11930
2005-02-18 11850 12010 11850 11980 15200 11980
2005-02-21 11960 12010 11850 11980 16400 11980
2005-02-22 11880 11880 11750 11780 13200 11780
2005-02-23 11660 11710 11600 11670 15000 11670
2005-02-24 11650 11690 11590 11590 9100 11590
2005-02-25 11690 11750 11670 11720 15300 11720

 

取得したデータを外部出力するときはxts形式のデータをそのままwrite.tableで出力すると日付の部分が出力されません。これを解消するには、データをxts形式からデータフレームに変換して出力する必要があります。

 

データフレームへの変換はas.data.frame()で出来ます。データ形式の変換はas.データ形式()でたいてい変換できます。

 

nintendo<-as.data.frame(jpn.prices)

> write.table(nintendo,"nintendo.csv")

 

これで日付をつけたままエクセルcsv形式に株価データで出力できます。

 

 

www.dmjtmj-stock.com

 

警告が出ますが全部無視で問題ないです。小環境を定義するのがちょっと難しいですが、そこが理解できていれば、ものすごくお手軽ですねー。quantmodパッケージの他の機能については【R言語】quantmodパッケージの使い方 で説明していますので、そちらを参照してください。一応そこに時間はちょっとかかりますが、より簡単にとれるコードが載ってます

 

簡単すぎて向こうから対策とられないか心配です(笑)。仕組み的に対策しようもない気がしますが、万一取れなくなるかもなので、そうなる前に分析で使いそうな企業のデータはバンバン取っておきましょう。

 

 

www.dmjtmj-stock.com

www.tkstock.site