アメリカの株式市場であるNYSE、NASDAQ、AMEX の構成銘柄の取得方法について説明したいと思います。今回はGoogleスプレッドシートを利用して取得する方法です。
ソース
構成銘柄のソースはNASDAQの以下から取得します。以下はCSVファイルでExcelで開けるなど、とても扱いやすいデータ形式です。ソースは他にもいくつかありそうですが、ここが取得しやすいです。
含まれているデータ
カラム名 | 説明 |
---|---|
Symble | シンボルが表示されます。 |
Name | 社名が表示されます。 |
LastSale | 前日の終値が表示されます。 |
MarketCap | 株式時価総額が表示されます。 |
IPOyear | 上場した年が表示されます。 |
Sector | セクター名が表示されます。 |
industry | インダストリーが表示されます。なぜかここだけ、大文字で始まってません(-’’-) |
Summary Quote | 当該シンボルのNASDAQのページのURLが表示されます。 |
NYSE、NASDAQ、AMEXの構成銘柄を個々に取得する方法
NYSE、NASDAQ、AMEXの構成銘柄を個々に取得する場合は以下の数式をセルに入力します。
そうすると以下のような感じで取得することができます。
NYSE
=IMPORTDATA("https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download")
NASDAQ
=IMPORTDATA("https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download")
AMEX
=IMPORTDATA("https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=amex&render=download")
NYSE、NASDAQ、AMEXの構成銘柄を1つの表の形で取得する場合
NYSE、NASDAQ、AMEXの構成銘柄をGoogle スプレッドシートの個々のシートに列挙するのはのではなく、1シートにすべて列挙したい場合は以下のようにセルに入力します。ちょっと長いですが(^^ゞ
={IMPORTDATA("http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download");FILTER(INDEX(IMPORTDATA("http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download"),,),INDEX(IMPORTDATA("http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download"),,1)<>"Symbol");FILTER(INDEX(IMPORTDATA("http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=amex&render=download"),,),INDEX(IMPORTDATA("http://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=amex&render=download"),,1)<>"Symbol")}
ただし、わたしは以下の理由からこれだけの情報はいらないと思っています。
- NASDAQへのページのURLが不要なこと
- 前日の終値はGoogleスプレッドシートではgooglefinance関数で取得できるため不要であること
- 時価総額も単位にM、Bが使われており、簡単に利用できる形ではないこと
- セクター名もほしいGICSの分類でないこと
セクター名が情報提供元によって違うことに関しては以下を見てください。
上記の理由からほしいのは以下の3つの情報だけです。
- ティッカーシンボル
- 会社名
- 市場(NYSEかNASDAQかAMEXか)
必要な情報(ティッカーシンボルと社名)を抽出し、どの市場か分かるようにした計算式
上述したティッカーシンボルと会社名はNASDAQから提供されているデータで簡単に取得できます。
しかし、市場(NYSEかNASDAQかAMEXか)はダウンロードしたデータに市場のカラムがないため、「NYSE、NASDAQ、AMEXの構成銘柄を個々に取得する方法」で記載した方法では取得できません。
なので、わたしは以下のように取得しています。
={QUERY(IMPORTDATA("https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nyse&render=download"),"SELECT Col1,Col2,'NYSE' OFFSET 1 label Col1 'Symbol',Col2 'Company Name','NYSE' 'Exchange'" ,0);
QUERY(IMPORTDATA("https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=nasdaq&render=download"),"SELECT Col1,Col2,'NASDAQ' OFFSET 1 label 'NASDAQ' ''" ,0);
QUERY(IMPORTDATA("https://www.nasdaq.com/screening/companies-by-name.aspx?letter=0&exchange=amex&render=download"),"SELECT Col1,Col2,'AMEX' OFFSET 1 label 'AMEX' ''" ,0)}
詳細は分かりにくいと思うのでコピペでお願いします。
アメ株市場の構成銘柄の取得方法でした。
参考にしていただければと思います。
他にGoogleスプレッドシートを活用したデータ取得は以下のページでまとめています。
コメント
初めまして!
米国株に投資をしており、てくさんの管理方法にこころ打たれました!
とてもまとめておられて大変助かります!
こちらのNYSE、NASDAQ、AMEXの構成銘柄に関しましては
現在では取得する方法はございませんでしょうか?
計算式など知識不足ですが、
お教えいただけますと幸いです!
Takaさん初めまして。
そうなんです、便利だったんですけどね。
google スプレッドシートでの取得であれば以下に取得の仕方がコメントしています。かなり力技ですが。ページ更新できてなくて申し訳ないのです。
https://nonbiri-reinvest.net/zouhai-list-20190908/#comment-575
今後ともよろしくお願いします。