Rによる株式データの取得とグラフの描画
最終更新:2017年7月6日
R言語を用いた、Webからのデータ取得方法、及びxts形式にデータを変換する方法、そしてquantmodパッケージを使った図示の方法までを説明します。
株式データに限らず、Webからデータが取得できるようになるとなかなか便利です。また、時系列分析では必須となるxtsパッケージの使い方もぜひ覚えておいてください。
ソースコードはまとめてこちらに置いておきます。
スポンサードリンク
目次
- Webからの株価のデータの取得
- xts形式への変換
- ローソク足のグラフの描画
- 様々なローソク足
1.Webからの株価のデータの取得
Yahoo!ファイナンス様は、データの自動収集(スクレイピング)を禁止されているようですので、『株価データサイト k-db.com』様からデータを取得します。
データの取得方法は『ことばにならないなにか』様を参考にさせていただきました。
ただ、今後もデータの取得は頻繁に行うこととなると思うので、先のブログ様からややコードを書き替えて、関数としてまとめておきました。
データ取得関数は以下のようになります。
なお、証券コードや取得対象年は複数を指定することが可能となるように作ってあります。
# ----------------------------------------------------------------------- # Webから株式データを取得する関数 # ----------------------------------------------------------------------- getStockFromKdb <- function(code, year){ # 『株価データサイト k-db.com』(http://k-db.com/)様からデータを取得する # # Args: # code: 証券コード # year: 取得対象となる年 # # Returns: # stock: 株価のデータ(日足) stocks <- NULL # 指定された証券コード、年をまとめて取得する for(i in 1:length(code)){ for(j in 1:length(year)){ # 『k-db.com』のURLを指定してデータを取得 url <- paste("http://k-db.com/stocks/", code[i], "-T/1d/", year[j], "?download=csv",sep="") stock <- read.csv(url, header = T) # 列名称を変更 colnames(stock) <- c("Date", "Open", "High", "Low", "Close", "Volume", "Volume_money") # 証券コードを追加 tickerSymbol <- data.frame(tickerSymbol = rep(code[i], nrow(stock))) stock <- cbind(tickerSymbol, stock) # 取得されたデータを保存 if(is.null(stocks)){ stocks <- stock } else{ stocks <- rbind(stocks, stock) } # 次のデータを取得する前に少し待つ if(i < length(code) || j < length(year)){ Sys.sleep(0.5) } } } return(stocks) }
k-db.com様を実際に見てもらえればわかりますが、CSVファイルをダウンロードできるリンクが用意されています。
CSVファイルをダウンロードしてから、read.csv関数を使って読み込んでももちろん構わないのですが、いちいちダウンロードするのは面倒ですね。
なので、ダウンロード元のURLを参照してそのままデータを読み込むイメージです。
もしもk-db.com様のダウンロード元となるURLが変わった場合は、このやり方ではデータが取得できないので注意してください。
万が一取得できなくなっていた場合は、ご連絡いただけると幸いです。なるべく早くに対応します。
関数の使い方は単純で、証券コードと取得対象年を引数に入れるだけです。その年のデータを取得してくれます。
証券コードとは、会社の名前と1対1で対応する4桁の数値です。
『Yahoo! ファイナンス』様で、検索窓に会社名を入れて検索すると調べることができます。
何でもよいのですが、今回は『(株)みずほフィナンシャルグループ』様を対象としてみます。証券コードは「8411」です。
2016年の1年間のデータを取得してみます。
# ----------------------------------------------------------------------- # 株価の取得 # ----------------------------------------------------------------------- # みずほHGの株価を取得する mizuho <- getStockFromKdb(8411, 2016)
結果はこちら。
> head(mizuho) tickerSymbol Date Open High Low Close Volume Volume_money 1 8411 2016-12-30 206.3 210.9 206.0 209.8 134881600 28205210670 2 8411 2016-12-29 212.4 212.5 208.2 209.2 178763900 37485876130 3 8411 2016-12-28 216.5 216.8 214.0 214.5 100763000 21655841710 4 8411 2016-12-27 214.0 217.7 213.6 215.7 152006300 32846976580 5 8411 2016-12-26 215.1 216.1 213.8 214.9 136289000 29272048480 6 8411 2016-12-22 218.0 218.3 214.3 217.2 173835100 37614525330 > tail(mizuho) tickerSymbol Date Open High Low Close Volume Volume_money 240 8411 2016-01-12 226.6 227.6 221.7 221.8 166401700 37264778340 241 8411 2016-01-08 229.1 233.5 228.7 229.4 167988400 38707250960 242 8411 2016-01-07 236.0 237.2 230.1 231.0 181078800 42136100460 243 8411 2016-01-06 240.5 241.8 235.4 236.5 133756300 31805845970 244 8411 2016-01-05 238.9 241.0 238.6 239.5 129385900 31022826240 245 8411 2016-01-04 241.0 244.4 238.9 239.7 115784400 27864941230
データの見方は以下の通りです。
tickerSymbol:証券コード
Date:日付
Open:その日の始値。その日の最初につけられた株価です。
High:その日の最高値
Low:その日の最安値
Close:その日の終値
Volume:出来高。取引された株数のことです。
Volume_money:売買代金。出来高を金額換算したものです。
証券コードや取得対象年は複数を指定することが可能です。ガンホー様の株価も取得してみました。
ガンホー様の証券コードは「3765」です。
# みずほHGとガンホーの2015-2017年データを取得 stocks_data <- getStockFromKdb(c(3765, 8411), 2015:2017) mizuho <- stocks_data[stocks_data$tickerSymbol == 8411, -1] mizuho ganho <- stocks_data[stocks_data$tickerSymbol == 3765, -1] ganho
複数の企業様のデータが混じっていると扱いにくいので、別々に分けました。
また、後でxts形式に変換するため、邪魔な証券コードは消しておきました。
2.xts形式への変換
取得されたデータは『data.frame』という形式で保存されています。
これを『xts』という形式に変更すると、分析がとても簡単になります。
xtsは外部のパッケージをインストールしなければ使うことができません。
xtsを含めた、証券投資分析全般に使うことのできる『quantmod』パッケージをインストールしてから、以下のコードを実行してください。
パッケージのインストールは、Rを管理者として実行してから「install.packages(“quantmod”)」と実行すれば使うことができます。
# ----------------------------------------------------------------------- # xtsによるデータの操作 # ----------------------------------------------------------------------- # install.packages("quantmod") library(quantmod) # xts形式に変換 mizuho_xts <- as.xts(read.zoo(mizuho)) ganho_xts <- as.xts(read.zoo(ganho))
『zoo』というのも時系列データを扱うデータの型でして、それをいったん経由してからxtsに変換するのが良いようです。
結果はこちら。ちゃんと変換できました。
> # データの型が変わったことを確認 > class(mizuho) [1] "data.frame" > class(mizuho_xts) [1] "xts" "zoo"
xts形式にすると、日付を利用したデータの抽出がとても簡単にできます。
手始めに、最新と最古のデータを取得してみます。
> # 最も古いデータ > first(mizuho_xts) Open High Low Close Volume Volume_money 2015-01-05 202 202.3 200.1 201 118255600 23757129500 > > # 最も新しいデータ > last(mizuho_xts) Open High Low Close Volume Volume_money 2017-07-06 208.9 208.9 207.1 207.6 92104400 19130223730
特定の日付を指定して、データを抽出することができます。
> # データの抽出 > # 特定の日付 > mizuho_xts["2017-01-06"] Open High Low Close Volume Volume_money 2017-01-06 213.9 215.1 212.9 214.4 127594300 27308924450
月単位でデータを取得することもできます。
> # 月単位で取得 > mizuho_xts["2017-01"] Open High Low Close Volume Volume_money 2017-01-04 214.0 216.6 213.4 215.7 182740100 39355059900 2017-01-05 217.0 217.2 215.0 216.5 135447400 29274034490 2017-01-06 213.9 215.1 212.9 214.4 127594300 27308924450 2017-01-10 213.6 214.3 212.1 212.1 121214700 25819022780 2017-01-11 213.3 215.9 213.1 215.6 121067600 25979782550 2017-01-12 214.0 214.3 211.6 212.8 136269800 28983880470 2017-01-13 212.7 213.9 212.1 213.9 102230200 21798437730 2017-01-16 214.4 214.7 211.4 211.7 107602400 22904358270 2017-01-17 210.0 210.1 207.1 208.3 147754800 30828024050 2017-01-18 207.2 208.0 204.4 207.3 161151800 33216541880 2017-01-19 210.1 214.3 210.0 211.6 141546900 29976312120 2017-01-20 212.6 213.6 210.9 212.8 110913200 23561690990 2017-01-23 211.0 212.1 209.7 211.2 104602400 22077294570 2017-01-24 209.2 209.5 205.5 205.9 174651600 36138921820 2017-01-25 209.0 209.0 206.0 206.7 137878900 28594187080 2017-01-26 210.0 213.0 209.6 212.9 214794100 45440318480 2017-01-27 214.8 217.3 214.5 216.6 208873700 45154432510 2017-01-30 215.0 215.4 213.2 214.5 96499000 20678249040 2017-01-31 210.2 212.4 210.1 210.3 121416200 25646310430
範囲を指定して抽出します。
> # 範囲を指定して抽出 > mizuho_xts["2017-01-06::2017-01-15"] Open High Low Close Volume Volume_money 2017-01-06 213.9 215.1 212.9 214.4 127594300 27308924450 2017-01-10 213.6 214.3 212.1 212.1 121214700 25819022780 2017-01-11 213.3 215.9 213.1 215.6 121067600 25979782550 2017-01-12 214.0 214.3 211.6 212.8 136269800 28983880470 2017-01-13 212.7 213.9 212.1 213.9 102230200 21798437730
特定の日付以降を取得(2017年7月6日に実行したので、データは7月6日までしかありません)。
> # ある日付以降をすべて取得 > mizuho_xts["2017-06-20::"] Open High Low Close Volume Volume_money 2017-06-20 200.4 200.7 198.3 198.3 107086700 21375000940 2017-06-21 198.2 198.4 197.1 198.0 96553500 19087064390 2017-06-22 198.0 199.0 197.1 198.1 87881800 17413425300 2017-06-23 198.9 199.4 197.7 199.3 69105200 13737999170 2017-06-26 198.7 198.8 197.4 197.4 91332500 18079015710 2017-06-27 198.3 199.1 197.9 198.0 85719600 17006754280 2017-06-28 200.5 204.5 200.4 204.0 221422300 44939189030 2017-06-29 208.0 209.4 205.5 205.7 205614500 42659894500 2017-06-30 205.1 207.0 203.9 205.4 155641800 31987718600 2017-07-03 204.5 205.4 203.5 205.3 81699300 16725260460 2017-07-04 207.0 208.0 205.5 205.9 95452300 19728576850 2017-07-05 206.0 208.5 205.9 208.5 123605200 25616895330 2017-07-06 208.9 208.9 207.1 207.6 92104400 19130223730
ある月以降をすべて取得することもできます。
> # ある月以降をすべて取得(mizuho_xts["2017-06-01::"]としても同じ) > mizuho_xts["2017-06::"] Open High Low Close Volume Volume_money 2017-06-01 192.3 195.8 192.2 194.1 107452000 20880129460 2017-06-02 195.1 200.9 195.0 200.1 175604300 34933279840 2017-06-05 197.6 197.9 196.4 197.0 106257500 20945506730 2017-06-06 197.0 198.6 196.3 196.7 99978900 19742685840 2017-06-07 196.0 197.7 195.2 197.0 105695500 20771395690 2017-06-08 198.3 200.5 197.2 197.4 173075000 34342113170 2017-06-09 198.9 200.4 198.1 199.7 156941400 31296039870 2017-06-12 201.0 203.4 200.6 200.7 122316100 24675190130 2017-06-13 200.7 202.1 200.3 201.0 84001200 16913035160 2017-06-14 202.4 202.8 199.8 200.3 95982800 19295697870 2017-06-15 199.0 199.8 196.7 196.9 140976400 27880657770 2017-06-16 198.0 199.8 197.5 198.2 123611800 24543186850 2017-06-19 197.7 198.5 197.1 197.7 78819600 15599448510 2017-06-20 200.4 200.7 198.3 198.3 107086700 21375000940 2017-06-21 198.2 198.4 197.1 198.0 96553500 19087064390 2017-06-22 198.0 199.0 197.1 198.1 87881800 17413425300 2017-06-23 198.9 199.4 197.7 199.3 69105200 13737999170 2017-06-26 198.7 198.8 197.4 197.4 91332500 18079015710 2017-06-27 198.3 199.1 197.9 198.0 85719600 17006754280 2017-06-28 200.5 204.5 200.4 204.0 221422300 44939189030 2017-06-29 208.0 209.4 205.5 205.7 205614500 42659894500 2017-06-30 205.1 207.0 203.9 205.4 155641800 31987718600 2017-07-03 204.5 205.4 203.5 205.3 81699300 16725260460 2017-07-04 207.0 208.0 205.5 205.9 95452300 19728576850 2017-07-05 206.0 208.5 205.9 208.5 123605200 25616895330 2017-07-06 208.9 208.9 207.1 207.6 92104400 19130223730
データの抽出の仕方だけでも覚えておくと、解析がとても楽になります。
xtsにはほかにもいろいろの機能があるので、興味のある方はxtsのマニュアルを参照してください。
スポンサードリンク
3.ローソク足のグラフの描画
最後はグラフの描画です。
quantmodパッケージの『chartSeries』という関数を使います。
この関数にはxts形式に変換した後のデータを入れることに注意してください。
# ----------------------------------------------------------------------- # 株価の図示 # ----------------------------------------------------------------------- # ローソク足のグラフを描く chartSeries( mizuho_xts, type="candlesticks" )
結果はこちら。
データの量が多いと、やや見づらいため、2017年6月のみを対象としてみます。
subsetという引数に期間を指定します。期間はxts形式のデータを抽出するのと同じやり方が使えます。
# 2017年6月のみを対象とする chartSeries( mizuho_xts, subset="2017-06", type="candlesticks" )
結果はこちら。
実際のデータと比較してみます。
> mizuho_xts["2017-06"] Open High Low Close Volume Volume_money 2017-06-01 192.3 195.8 192.2 194.1 107452000 20880129460 2017-06-02 195.1 200.9 195.0 200.1 175604300 34933279840 2017-06-05 197.6 197.9 196.4 197.0 106257500 20945506730 2017-06-06 197.0 198.6 196.3 196.7 99978900 19742685840 2017-06-07 196.0 197.7 195.2 197.0 105695500 20771395690 2017-06-08 198.3 200.5 197.2 197.4 173075000 34342113170 2017-06-09 198.9 200.4 198.1 199.7 156941400 31296039870 2017-06-12 201.0 203.4 200.6 200.7 122316100 24675190130 2017-06-13 200.7 202.1 200.3 201.0 84001200 16913035160 2017-06-14 202.4 202.8 199.8 200.3 95982800 19295697870 2017-06-15 199.0 199.8 196.7 196.9 140976400 27880657770 2017-06-16 198.0 199.8 197.5 198.2 123611800 24543186850 2017-06-19 197.7 198.5 197.1 197.7 78819600 15599448510 2017-06-20 200.4 200.7 198.3 198.3 107086700 21375000940 2017-06-21 198.2 198.4 197.1 198.0 96553500 19087064390 2017-06-22 198.0 199.0 197.1 198.1 87881800 17413425300 2017-06-23 198.9 199.4 197.7 199.3 69105200 13737999170 2017-06-26 198.7 198.8 197.4 197.4 91332500 18079015710 2017-06-27 198.3 199.1 197.9 198.0 85719600 17006754280 2017-06-28 200.5 204.5 200.4 204.0 221422300 44939189030 2017-06-29 208.0 209.4 205.5 205.7 205614500 42659894500 2017-06-30 205.1 207.0 203.9 205.4 155641800 31987718600
まず、初日は開始直後の値段(Open:192.3)よりも、株取引終了時の株か(Close:194.1)のほうが高くなっています。
すなわち、6月1日は値上がりしたんですね。こういう日は緑色となります。
逆に、日単位で見て値下がりした場合は、オレンジ色となります。
また、グラフは、よく見ると上下に分かれています。
上のグラフが、株価で、下のグラフが出来高(その日に取り扱われた株数)です。
また、株価のグラフをよく見ると、上下に線が引かれています(見えにくければグラフをクリックしてください。拡大されます)。
細い線の最も高い部分が、その日の最高値。もっとも低い部分が最安値となっています。
このグラフを「ローソク足」と呼びます。
ローソク足を使うと、その日の終値だけでなく、始値や高値・安値も一目でわかるので、なかなかよくできたグラフの形式だと思います。
4.様々なローソク足
引数を変えてやることで、色々とカスタマイズができます。
まずは、テクニカル指標と呼ばれるものを追加してみましょう。
テクニカル指標とは、テクニカル分析で使われる、株価の売買の目安となる指標です。
ここでは「移動平均」を追加してみます。
移動平均は、名前の通り、日付を移動させながら、平均値をとったものです。
2日移動平均ならば、「1月1日・1月2日」で平均をとった後「1月2日・1月3日」でも平均をとる……というのを繰り返していきます。
25日・75日移動平均を使うのが多いようですので、そのようにしました。
TAという引数にaddSMAを指定することで、移動平均を追加できます。
『n=25』とすれば25日移動平均となります。『col』で線の色を指定しました。
# テクニカル指標を追加 chartSeries( mizuho_xts, type="candlesticks", subset="2016-07::", TA="addSMA(n=25, col='white'); addSMA(n=75, col='green')" )
結果はこちら。
長期(75日)移動平均を、短期(25日)移動平均が上回った時は、株価が上がりやすいという噂があるようです。これをゴールデンクロスと呼びます。
次は、グラフのデザインを大きく変えてみます。
背景色を白にした『theme=chartTheme(‘white’』うえで、日単位で見て値上がりした場合は白抜きのローソクに、値下がりした場合は青色のローソクになるようにしました。
細かいですが、TAに『addVo()』を指定すると、出来高もグラフに表示されるようになります。
# グラフのデザインを大きく変更 chartSeries( mizuho_xts, type="candlesticks", subset="2016-07::", TA="addSMA(n=25); addSMA(n=75, col='green'); addVo()", theme=chartTheme('white', up.col='white',dn.col='blue') )
最後に、自分で作った指標を、グラフに上書きしてみましょう。
今回は簡単に「1年間の株価の平均値」をグラフに入れることにします。
まずは、1年間の終値の平均値を求めます。
今度はガンホー様の株価を使ってみます。
> # ガンホー様の終値の期待値 > mean(ganho_xts["2016", "Close"]) [1] 273.702
これをxts形式にしたいのですが、日付を指定しなければなりません。
というわけで、もとの株価から日付のインデックスのみを取り出して、それとおなじインデックスを付与するようにします。
まずは、日づけのインデックスを取り出します。
> # 日付のインデックス > idx <- index(ganho_xts["2016"]) > idx [1] "2016-01-04" "2016-01-05" "2016-01-06" "2016-01-07" "2016-01-08" "2016-01-12" "2016-01-13" "2016-01-14" "2016-01-15" "2016-01-18" [11] "2016-01-19" "2016-01-20" "2016-01-21" "2016-01-22" "2016-01-25" "2016-01-26" "2016-01-27" "2016-01-28" "2016-01-29" "2016-02-01" [21] "2016-02-02" "2016-02-03" "2016-02-04" "2016-02-05" "2016-02-08" "2016-02-09" "2016-02-10" "2016-02-12" "2016-02-15" "2016-02-16" [31] "2016-02-17" "2016-02-18" "2016-02-19" "2016-02-22" "2016-02-23" "2016-02-24" "2016-02-25" "2016-02-26" "2016-02-29" "2016-03-01" [41] "2016-03-02" "2016-03-03" "2016-03-04" "2016-03-07" "2016-03-08" "2016-03-09" "2016-03-10" "2016-03-11" "2016-03-14" "2016-03-15" [51] "2016-03-16" "2016-03-17" "2016-03-18" "2016-03-22" "2016-03-23" "2016-03-24" "2016-03-25" "2016-03-28" "2016-03-29" "2016-03-30" [61] "2016-03-31" "2016-04-01" "2016-04-04" "2016-04-05" "2016-04-06" "2016-04-07" "2016-04-08" "2016-04-11" "2016-04-12" "2016-04-13" [71] "2016-04-14" "2016-04-15" "2016-04-18" "2016-04-19" "2016-04-20" "2016-04-21" "2016-04-22" "2016-04-25" "2016-04-26" "2016-04-27" [81] "2016-04-28" "2016-05-02" "2016-05-06" "2016-05-09" "2016-05-10" "2016-05-11" "2016-05-12" "2016-05-13" "2016-05-16" "2016-05-17" [91] "2016-05-18" "2016-05-19" "2016-05-20" "2016-05-23" "2016-05-24" "2016-05-25" "2016-05-26" "2016-05-27" "2016-05-30" "2016-05-31" [101] "2016-06-01" "2016-06-02" "2016-06-03" "2016-06-06" "2016-06-07" "2016-06-08" "2016-06-09" "2016-06-10" "2016-06-13" "2016-06-14" [111] "2016-06-15" "2016-06-16" "2016-06-17" "2016-06-20" "2016-06-21" "2016-06-22" "2016-06-23" "2016-06-24" "2016-06-27" "2016-06-28" [121] "2016-06-29" "2016-06-30" "2016-07-01" "2016-07-04" "2016-07-05" "2016-07-06" "2016-07-07" "2016-07-08" "2016-07-11" "2016-07-12" [131] "2016-07-13" "2016-07-14" "2016-07-15" "2016-07-19" "2016-07-20" "2016-07-21" "2016-07-22" "2016-07-25" "2016-07-26" "2016-07-27" [141] "2016-07-28" "2016-07-29" "2016-08-01" "2016-08-02" "2016-08-03" "2016-08-04" "2016-08-05" "2016-08-08" "2016-08-09" "2016-08-10" [151] "2016-08-12" "2016-08-15" "2016-08-16" "2016-08-17" "2016-08-18" "2016-08-19" "2016-08-22" "2016-08-23" "2016-08-24" "2016-08-25" [161] "2016-08-26" "2016-08-29" "2016-08-30" "2016-08-31" "2016-09-01" "2016-09-02" "2016-09-05" "2016-09-06" "2016-09-07" "2016-09-08" [171] "2016-09-09" "2016-09-12" "2016-09-13" "2016-09-14" "2016-09-15" "2016-09-16" "2016-09-20" "2016-09-21" "2016-09-23" "2016-09-26" [181] "2016-09-27" "2016-09-28" "2016-09-29" "2016-09-30" "2016-10-03" "2016-10-04" "2016-10-05" "2016-10-06" "2016-10-07" "2016-10-11" [191] "2016-10-12" "2016-10-13" "2016-10-14" "2016-10-17" "2016-10-18" "2016-10-19" "2016-10-20" "2016-10-21" "2016-10-24" "2016-10-25" [201] "2016-10-26" "2016-10-27" "2016-10-28" "2016-10-31" "2016-11-01" "2016-11-02" "2016-11-04" "2016-11-07" "2016-11-08" "2016-11-09" [211] "2016-11-10" "2016-11-11" "2016-11-14" "2016-11-15" "2016-11-16" "2016-11-17" "2016-11-18" "2016-11-21" "2016-11-22" "2016-11-24" [221] "2016-11-25" "2016-11-28" "2016-11-29" "2016-11-30" "2016-12-01" "2016-12-02" "2016-12-05" "2016-12-06" "2016-12-07" "2016-12-08" [231] "2016-12-09" "2016-12-12" "2016-12-13" "2016-12-14" "2016-12-15" "2016-12-16" "2016-12-19" "2016-12-20" "2016-12-21" "2016-12-22" [241] "2016-12-26" "2016-12-27" "2016-12-28" "2016-12-29" "2016-12-30"
245日ありました(株式の売買は平日にしか行われていないので365にはなりません)
> N <- length(idx) > N [1] 245
というわけで、先ほど計算した平均値を245日分作ればいいことになります。
『xts』という関数を使えば、その名の通りxts型の変数を作ることができます。データとインデックスを引数に指定すればOKです。
# 期待値をxts形式で保存する mean_data <- xts(rep(mean(ganho_xts["2016", "Close"]), N), order.by = idx) mean_data
株価のグラフに、先ほどの平均値を追加してみましょう。
# 期待値も併せて描画 chartSeries(ganho_xts, subset = "2016") addTA(mean_data, on=1, lwd=2)
『addTA』という関数に、xts型の変数を指定してやればグラフに追加できます。
注意すべきは『on=1』という指定です。
『chartSeries』の結果には、株価の推移に加えて出来高のグラフがあります。すなわち、グラフを「追加」していくことができるわけです。
もしも『on=1』を指定しなければ、3つ目のグラフが追加されてしまいます。
1つ目のグラフ、すなわち株価の推移のグラフに線を引きたい場合は必ず『on=1』を指定します。
今回はただの平均値でしたが、時系列分析などを行って計算された指標をグラフに上書きすることもできます。
また、株価の解析にかかわらず、時系列分析をする際にはxtsパッケージにはよくお世話になりますので、使い方を覚えておくとよろしいかと思います。
参考文献
Rとトレード ――確率と統計のガイドブック R言語を用いた証券投資分析の方法が書かれた本です。 Rの基礎から、確率統計の基礎、金融データ分析の基礎、そして株取引のためのプログラミング方法まで幅広く載っている書籍です。 |
金融データ解析の基礎 金融時系列解析に特化した書籍です。 xtsの使い方やquantmodの使い方に加えて、ARMAやGARCHといった時系列モデルの解説も載っています。 |
現場ですぐ使える時系列データ分析 R言語を使った時系列分析の方法が書かれた書籍です。 ファイナンスの話題も多く載っています。 |
書籍以外の参考文献
・株価データサイト k-db.com
→株価取得サイトです
・ことばにならないなにか
→株価の取得方法を参考にさせていただきました。
・Yahoo! ファイナンス
→証券データがいろいろ載っているサイトです。スクレイピングは禁止されています。
・xtsパッケージで時系列解析
→xtsの使い方がまとめられたスライドです。
・My Life as a MockQuant
→先のスライドシェアの資料を作られた方のブログです。こちらもxtsの使い方をはじめ、金融時系列分析に関する豊富な情報が載っています。
スポンサードリンク
貴殿のホームページをいつも興味深く拝見させていただいております。
日経平均株価の採用銘柄について、時系列での分析を行いたいと考えており、
『株価データサイト k-db.com』様からのスクレイピングの記事を拝見させていただきました。
残念ながら、『株価データサイト k-db.com』様のホームページが現在閉鎖されているようです。
他のホームページでの株価も参照はできそうですが、採用銘柄全体の時系列を作ろうとするとかなり苦労しそうです。
『株式投資メモ』様でも同じようなデータは参照できるようですが、本ページでもスクレイピングによりデータのダウンロードと解析用のデータベース作成は可能でしょうか。
Kondo様
サイトをご利用いただき、ありがとうございます。
『株式投資メモ』様でもスクレイピングは可能だとは思います。
ただ、『株価データサイト k-db.com』様のサイトの閉鎖の件もありますし、当サイトでも今後はスクレイピングを推奨しない方針にしようと思っております。
恐縮ですが、こちらの更新はおそらく行わない予定です。
この記事自体も、近いうちに非公開にするかもしれません。
ご理解いただけますと幸いです。