赤嶋情報

アニメの感想、レビュー。ゲームのレビュー、攻略。たまに、経済や旅行ネタ。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop
世界の株価指数やアメリカ上場の株式の株価を自動的にダウンロードする方法を紹介します。excel vba内でURLDownloadToFile APIを使ってダウンロードする方法です。

概要
米国ヤフーファイナンスのデータをマクロを使ってダウンロードする方法です。symbol、startdate、enddateを入力すると、保存フォルダにデータがダウンロードされます。

米国yahooからDL


米国ヤフーファイナンスのデータ
米国ヤフーファイナンスから、世界の株価指数をダウンロードすることができます。ヒストリカルデータをcsvファイルでダウンロードすることができるで、日本のヤフーファイナンスより、はるかに使い勝手がいいです。

マクロ
URLDownloadToFile APIを使ったマクロを作ってみました。以下のコードがそのマクロです。「C:\worldindexdata」にデータがダウンロードされます。ダウンロードされるファイル名は「Symbol.csv」です(SymbolはA列のコード名。^225.csvなどというファイル名で保存されます。)。"Sheet1"のA列にSymbol、C列にstartdate、D列にenddateを入力します(1行目は項目名を入れてます)。
※マクロの使用は自己の責任において行ってください。

-----------------------------------------------------------------------------
'URLDownloadToFile API from URLMON.
Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
"URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal _
szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long


Sub download()

'Symbol
Dim symbol As String

'データ取得開始日
Dim s_date As Double
Dim s_yyyy As Integer
Dim s_mm As Integer
Dim s_dd As Integer

'データ取得終了日
Dim e_date As Double
Dim e_yyyy As Integer
Dim e_mm As Integer
Dim e_dd As Integer

'最終行
Dim maxrow As Integer
maxrow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To maxrow

symbol = Worksheets("Sheet1").Cells(i, 1)

s_date = Worksheets("Sheet1").Cells(i, 3)
s_yyyy = Year(s_date)
s_mm = Month(s_date) - 1
s_dd = Day(s_date)

e_date = Worksheets("Sheet1").Cells(i, 4)
e_yyyy = Year(e_date)
e_mm = Month(e_date) - 1
e_dd = Day(e_date)

Const y_usaURL = "http://ichart.finance.yahoo.com/table.csv?s="
Dim strURL As String
Dim strFNAME As String 'ダウンロード先(パス+ファイル名)
Dim returnValue

'URL
strURL = y_usaURL & symbol & "&d=" & e_mm & "&e=" & e_dd & "&f=" & e_yyyy & "&g=d&a=" & s_mm & "b=" & e_dd & "&c=" & e_yyyy & "&ignore=.csv"

'ファイル名をブックのパス+test.htmlとする
strFNAME = "C:\worldindexdata\" & symbol & ".csv"

'URLDownloadToFile API をコールする
returnValue = URLDownloadToFile(0, strURL, strFNAME, 0, 0)

Next

End Sub
-----------------------------------------------------------------------------

'URLDownloadToFile API from URLMON.
の下にあるコードが「URLDownloadToFile API」を使うためのおまじないです。
csvファイルが保存されているURLの後半に「s=」、「d=」などとかいてあります。「=」の後にsymbolや日付などが入るようなURLであるので、この部分を可変にすることで、マクロでダウンロードすることができるようになります。
「g=d」の部分はおそらく、Dailyなどの指定だと思います。したがって、dをwに変換すればweeklyでダウンロードできるようになると思います。
symbolは米国ヤフーファイナンスから探す必要があります。


お断り

マクロの使用は利用者自己の責任において行なってください。マクロを使用した上で生じたトラブルや損失・損害について、私は一切の責任を負いません。


スポンサーサイト
PageTop
日本株のPBR(株価÷一株当たり純資産)は他の国に比べ低い水準で推移しています。この理由としてよく指摘されているのが、ROE(一株当たり純利益÷一株当たり純資産)が他の国に比べて低いことです。つまり、他の国に比べ収益率が低いんです。アメリカなどはROEが15%くらいあるのですが、日本株のROE(日経平均の予想PERから推定)は9%くらいからと下回っています。ROEが高い企業は資産を増やすことがうまい企業であるので、株主にとって魅力があります。そのため、ROEが高い企業の株価は高くなりやすいので、PBRは一般に高くなります。逆に、ROEが低い企業は資産を増やすのが上手くないので株主にとって魅力が低く、PBRが低くなりがちです。つまり、PBRとROEには比例関係があります(厳密には違う)。PER(株価÷一株当たり純利益)を使うと、もっとわかりやすくなります。PBR、PER、ROEには、PBR=ROE×PERという関係があります。日本株はPBR、ROEが低いので、PERが高いということになります。
日本株のPBR、PER、ROEのグラフを見てみましょう。

東証一部のPER・PBRの推移
このグラフは東証のホームページのデータを利用して描いたグラフです。最近のPBRは1.1くらいですが、実績PERは22くらいで、そんなに割安ではりません(予想PERを使うとPERはもっと低くなります)。


東証一部のROE・PBRの推移
PBR、PERのデータからROEを計算してグラフにしました。確かに日本株のROEは高くても6%程度と大して高くありません。この状態では、PBRは上昇しにくいでしょう。2013年5月の日本株はPBRが高くないけれども、ROEが低いため、PERが高い状態にありました。PERの観点から見ると、この時期の日本株は割高で買いにくい状態にありました。しかし、最近は景気回復のおかげでROEが改善し、PERがそこまで高い水準にありません。以前よりは、株高が正当化されつつあります。

東証一部の株価・PBRの推移
ちなみに、PBRは株価と連動しているので、PBRが上昇することは株価の上昇を意味します。低PBR投資は、低迷したROEがリバウンドすることで、PBRが上昇するのを待つ戦略といえます。したがって、低PBRに投資する場合は、ROEが上昇する確率が高い銘柄を探すことが重要となります。


世界のPER・PBR
世界各国のPBR・PER・配当利回り・ROEのデータです。データは「わたしのインデックス」というサイト様のデータを使用しています(ROEはPBR、PERから計算)。実績PERなので、日本株の予想PERはこれより低い数字です。他の国と比べると、そこまで安いとは言えません。日本株の上昇には、ROEの上昇が必要だと思います。
外国に注目すると、ロシア、香港、シンガポール、中国辺りが安いように思えてきます。先進国が復活すれば、新興国にも波及するので、これらの国の株価は来年以降、上昇しやすいような気がします。定期的に買い付けていく戦略がいいと思います。


PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。