S&P500、NASDAQ、ダウ平均すべてに採用されている銘柄を調べていたら驚愕の事実が発覚した
昔どこかで聞いた話に「アメリカ株を買うなら3指数すべてに採用されている銘柄にしろ」というのがありました。理由は覚えていませんが、おそらく代表的な指数に取り上げられる程度に信頼性のある銘柄ということなのでしょう。
改めて思い返してみるとそれらがどんな銘柄かというのは気にしたことが無かったので、今回確認してみました。
ちなみに驚愕の事実とは「nasdaq_trader.pyを修正しないとまともに動かないよ」ということです。
「なんだいそりゃ」と思った方も気にせず読み進めていただければ良いです。
さて、構成銘柄数からいうと「NASDAQ(3000以上) > S&P500(500ちょい) > ダウ平均(30)」です。
それぞれの構成銘柄の取得方法は以下の通りです。
構成銘柄一覧の取得方法
NASDAQ
Pythonを使えば以下の2行で取得できます……がnasdaq_trader.pyを修正する必要があります。
「pandas_datareaderを使えば取得できる!」なんて紹介しているページでも案外こういう所には触れていないので意外と使っていないのかなぁ? となります。
(pandas_datareaderはpipか何かでインストールしてください)
from pandas_datareader.nasdaq_trader import get_nasdaq_symbols
df = get_nasdaq_symbols()
df.to_csv("nasdaq.csv")
肝心の修正箇所は下記の通り、4行目に注目です。
「sep=」を追加するだけです。
修正前
# pandas_datareader/nasdaq_trader.py
with warnings.catch_warnings(record=True):
data = read_csv(
StringIO("\n".join(lines[:-1])),
"|",
dtype=_TICKER_DTYPE,
converters=converter_map,
index_col=1,
)
修正後
# pandas_datareader/nasdaq_trader.py
with warnings.catch_warnings(record=True):
data = read_csv(
StringIO("\n".join(lines[:-1])),
sep="|",
dtype=_TICKER_DTYPE,
converters=converter_map,
index_col=1,
)
S&P500
以下のcsvから取得できます。
https://raw.githubusercontent.com/datasets/s-and-p-500-companies/master/data/constituents.csv
ダウ平均
Wikipediaに全ティッカーが掲載されています。csvにコピペ。
https://ja.wikipedia.org/wiki/%E3%83%80%E3%82%A6%E5%B9%B3%E5%9D%87%E6%A0%AA%E4%BE%A1
3指数に含まれている銘柄
上記で取得した3指数すべてに含まれている銘柄を抽出します。方法はなんでも良いです。
結果は……「3指数すべてに含まれている銘柄 = ダウ平均の構成銘柄」でした。
……そりゃダウ平均自体が大型株から選ばれているんだから当たり前じゃねーか!
以上。