Pythonコード集

【Python】米株のパフォーマンス分析をしてみよう

目安時間

この記事は2分で読み終わります

この記事はこんな方におすすめ

  • 米国株の投資に興味がある人
  • 米国株の投資をしている人
  • Pythonで米国株の分析をしたい人

今回の結論

結論

Pythonを使えばたったの数行で米国株のパフォーマンス分析ができる

 

『ブルーウェーブ』で米株高

新年早々のビッグイベント-ジョージア州の上院決選投票では、民主党の候補者が2議席を獲得しました。

これによりホワイトハウスも議会も民主党が支配する『ブルーウェーブ』が実現することになりまた。

ブルーウェーブは、バイデン新政権の政策を運営する能力を飛躍的に高めるでしょう。

事実、この点が意識されて2012年の米国株(アメリカ株)は好調なすべり出しとなっています。

 

しかし、よく見ると米価指数のパフォーマンスには差が見られます。

なので今回の記事はー

今回のテーマ

米株価指数の年初来パフォーマンスを分析してみよう!

という内容です。

 

しかし、ただ分析するだけではありません。今回はー

どうやって分析するのか?

米株価指数プログラミング言語の『Python』を使った分析

これに挑戦してみようと思います!

 

Pandasで米国株のデータを取得してみよう!

まずはPandasで株価指数のデータを取ります。
今回必要な株価のデータは以下の4つです。
これらのデータは、『Yahoo!finance』から取得します。

必要な株価データ

  • ダウ平均(DJI)
  • S&P500(SPX500)
  • ナスダック総合指数(Nasdaq)
  • ナスダック100(Nsdq100 )

サンプルコード

#Pandasをインポート
import pandas as pd
import pandas_datareader as web

#米国株価指数のデータをYahoo!financeから取得 ⇒ それぞれの変数にデータを入れる
dji = web.DataReader(data_source='yahoo', name='^DJI',start='2021-01-01',end='2021-01-31')
spx500 = web.DataReader(data_source='yahoo', name='^GSPC',start='2021-01-01',end='2021-01-31')
nasdaq = web.DataReader(data_source='yahoo', name='^IXIC',start='2021-01-01',end='2021-01-31')
nsdq100 = web.DataReader(data_source='yahoo', name='^NDX',start='2021-01-01',end='2021-01-31')

 

Pandasでちゃんとデータが取れているかどうか?ためしにダウ平均(dji)で確認してみよう。

結果

ちゃんとデータが取れていることが確認できました。

 

データを統合(結合)してカラム名をつけてみよう!

次に、Pandasで取得した4つの株価指数データを統合しましょう。

今回はパフォーマンスをチェックするので、『終値』をベースに統合してみましょう。

ついでに、カラムにそれぞれの指数の名前も入れてみます。

サンプルコード

#pandas.concat():データフレームを統合(結合)する関数
df = pd.concat([dji['Adj Close'],spx500['Adj Close'],nasdaq['Adj Close'],nsdq100['Adj Close']],axis=1)

#.columns:データフレームのカラム名を決めるコード
df.columns=('SPX500','DOW','NASDAQ','NASDAQ100')

サンプルコードの説明

データフレームを統合する時は『pandas.concat()』を使います。

終値のみをピックアップする時は『変数名['ピックアップしたいカラム名']』とします。
例えば、ダウ平均(dji)の終値のみをピックアップする場合は『dji['Adj Close']』となります。

ちゃんと株価指数のデータが統合されているかどうか?確認してみましょう!

結果

それぞれの株価指数のデータが、終値で統合されていることが確認できました。

 

pandasについてはこちら

 

データの『基準化』の設定をしよう

上のデータでは、株価指数のパフォーマンスを比較することはできません。

なぜなら株価のケタがそれぞれ違うからです。

ではどうするか?それはー

ココがポイント!

基準化すること

です。

 

『基準化』とはなんでしょうか?それはー

基準化とは?

基準となる日をゼロに設定すること

です。

 

ムズカシイ...と思う人がいるかも知れませんが、全然そんなことはありません。

論より証拠。

実際に見てみましょう!

 

サンプルコード

今回の目的は、年初来のパフォーマンスを確認することです。

なので、基準となる日は『2020年12月31日』です。

なぜか?この日が2020年最後の取引日だからです。

2020年の最終取引日の終値を基準と考え、この基準から『何パーセント上昇しのたか?』もしくは『何パーセント下落したのか?』を見て、はじめて各指数のパフォーマンスがチェックできます。

 

では、実際に基準化するためのサンプルコードを見てみましょう!

#df_normalizedという変数に基準化したデータを入れる
df_normalized = (df/df.iloc[0]-1)*100

 

なんと!たったの1行で基準化するためのコードが書けました!

サンプルコードの説明

といっても、最初はわかりませんよね。

なので具体的に説明します。

 

まずカッコの中の『df/df.iloc[0]』とはー

ここがポイント

df変数の各データを”最初のdfのデータ”で割り算してくれ

という意味です。

 

最初のデータを取り出すためのコードがー

重要コード

.iloc[0]

というわけです。

この『.iloc』データをピックアップする関数としてPandasではよく使われます
せっかくですのでここで覚えてしまいましょう。

また、『.iloc[0]の”ゼロは、最初のデータという意味です。

Pandasでは『1』が最初ではなくー

Pandasの重要ポイント!

ゼロが最初

になります。

これもPandasの重要なポイントです。ここで覚えてしまいましょう!

 

さて『.iloc[0]』でピックアップした最初のデータとは『2020年12月31日の終値』です。

この値を割り算の分母として統一することでー

基準化の重要ポイント!

パフォーマンスデータが作成できる

というわけです。

 

実際に作成されたパフォーマンスデータを見てみましょう!

結果

ひと目見て、株価のデータから基準化されたパーセンテージ(%)のデータへ変わっていることがわかりますね!

そして最初のデータ『2020年12月31日』”ゼロ”となっている点にも注目してください!

これで株価データから基準化されたデータへの変換がうまくいきました!

 

最後にMatplotlibでチャート化してみよう!

さて、この記事もいよいよ終盤です。

Pandasで取得したデータは単なる数字の羅列です。
しかし、これだけを見てもパフォーマンスの詳細はわかりません。

なのでデータ分析では、『見える化』の作業がとても重要です。

では『見える化』するためにはどうしたらよいでしょうか?それはー

見える化するためには?

チャートを作成する

ことです。

チャートを作成するために必要なライブラリがー

チャート化に必要なライブラリ

matplotlib

です。

matplotlibについてはこちら

 

ではmatplotlib『見える化』してみましょう!

サンプルコード

#matplotlibのライブラリをインポート
import matplotlib.pyplot as plt

#チャートを作成
df_normalized.plot(figsize=(15,8));

 

結果

米株価指数のパフォーマンスチャート 基準日:2020年12月31日

 

たったの2行でパフォーマンスチャートが作成できました!

サンプルコードの説明

といっても、最初はわからないですよね。

以下で具体的に説明します!

 

まず最初のコード『import matplotlib.pyplot as plt』はー

ポイント!

matplotlibをインポートするお決まりのコード

と覚えておきましょう。

ライブラリをインポートする際は、色んなコードの書き方があります。

それらを覚えるために時間をかけるくらいなら、1行で書ける最も単純なコードを覚えておくのが効率的です。

ジェイは、matplotlibをインポートする時は上のコードをいつも書いています。

 

次にチャートを作成するコード『df_normalized.plot(figsize=(15,8));』について。

matplotlibを使えば、『変数名.plot( )とするだけで、Pandasのデータフレームをラインチャートで描くことができます。

『.plot( )』のカッコの中にある『figsize=(15,8)』は、画像サイズの大きさを指定するコードです。

今回のケースですと『横:15 / 縦:8』の画像サイズを作成してくれ、というコードになります。

 

コードサンプルのまとめ

最後に今回のコードサンプルをまとめておきますね。Pythonで分析をする際の参考にしてください!

#ライブラリをインポート
import pandas as pd
import pandas_datareader as web
import matplotlib.pyplot as plt

#米国の株価指数データをYahoo!financeから取得
dji = web.DataReader(data_source='yahoo', name='^DJI',start='2021-01-01',end='2021-01-31')
spx500 = web.DataReader(data_source='yahoo', name='^GSPC',start='2021-01-01',end='2021-01-31')
nasdaq = web.DataReader(data_source='yahoo', name='^IXIC',start='2021-01-01',end='2021-01-31')
nsdq100 = web.DataReader(data_source='yahoo', name='^NDX',start='2021-01-01',end='2021-01-31')

#データフレームを統合(結合)する
df = pd.concat([dji['Adj Close'],spx500['Adj Close'],nasdaq['Adj Close'],nsdq100['Adj Close']],axis=1)

#データフレームのカラム名を付ける
df.columns=('SPX500','DOW','NASDAQ','NASDAQ100')

#データフレームを『基準化』する
df_normalized = (df/df.iloc[0]-1)*100

#データフレームをチャートで描画する
df_normalized.plot(figsize=(15,8));

 

今回学んだコードは、キホンの『キ』です。

このブログでは、マーケットの分析に必要な色々なPythonコードを紹介していきます

こうご期待!

 

Pythonを学ぶには?

ご覧のとおり、Pythonを使えばたった数行のコードで米株のパフォーマンスを分析することができます。

しかし、たった数行のコードを書くためには、やはり勉強が必要です。

正直に言って、プログラミングの学習は大変です。

大変であるからこそー

ここ重要です!

自分に合った方法で効率的に学ぶ!!

これはプログラミングの勉強をするうえで重要です。

 

ジェイのおすすめ学習法

特にジェイのような社会人は、学習する時間が限られてしまいます。

限られた時間で効率良くプログラミングを学ぶためには、学習するツールを厳選する必要があります。

ジェイがおすすめする学習法とは?

 

動画で学ぶ

本音をいいます。

プログラミングの学習では『動画』が最適な学習ツールだと思います。

なぜか?

 

それはー

なぜ動画がおすすめなのか?

実際に講師のコードを見ながら、プログラミングが動くかどうかを自分の目で見て確認できるから

です。

 

では、動画でプログラミングを学習するにはどんなツールを使えば良いのか?

それはー

おすすめのツール

Udemy

です。

 

Udemyとは?

Udemyとは?

Udemyは、オンライン教育サイトを運営している会社です。
コースのラインナップはなんと13万!世界最大級のオンライン教育サイトです!
購入した講座は買い切りです。なので有効期限はありません。
いつでもどこでも好きな時に、買った講座で学ぶことができます!

Udemyのメリットとは?

そしてUdemyをおすすめする理由は ”5つのメリット” にあります。

Udemy5つのメリット

1:オンラインなのでPC一台あれば学習がスタートできる

2:オンラインなのでいつでもどこでも好きな時に学べる

3:コースは買い切りなので(期限がないので)永久に使える

4:セールで買えば何万円もするコースも1,000円から2,000円で受講することができる

5:Q&Aコーナーで自由に質問ができる

 

Udemyの詳細については以下のリンク先をご参照ください。

Udemyの詳細についてはこちら

 

今回のまとめ

まとめ

・Pythonを使えばたったの数行で米国株のパフォーマンス分析ができる

・Pythonを学ぶ最適の学習ツールは『Udemy


注記事項

ジェイの米国株投資ブログ(以下当サイト)に掲載されている記事は、投資の助言を目的としたものではありません。当サイトに掲載されたコンテンツの正確性については、可能な限り注意を払っています。しかし、意図せず誤情報が紛れ込む可能性や情報そのものが古くなっている可能性があり、その正確性を完全に保証するものではありません。
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください

-Pythonコード集