Pythonで分析! プログラミングを学ぼう

【中編】米金利の低下が米国のグロース銘柄へ与える影響を分析-Pythonコードの紹介

目安:この記事は3分で読めます

 

前回は、低下基調の米金利がグロース株へ与える影響について、相関分析を用いて分析してみました。

未読の方は、以下のリンク先でご覧ください。

【前編】急速に低下する米金利!米国グロース銘柄へのインパクトをPythonで分析してみよう!

目安:この記事は3分で読めます   アメリカの長期金利(以下では米金利)が急速に低下しています。 下のチャートをみると、レンジの下限として意識されてきた1.5%の水準を完全に割り込んでいます ...

続きを見る

 

中編の今回は、前編の相関分析で用いたPythonコードの紹介となります。

コピー&ペーストすれば、誰でもコードが動くように編集しています。

ぜひ、最後までご覧ください!

 

中編のテーマ

Pythonコードの紹介 実際に手を動かして遊んでみよう!


▼ Pythonを効率的に学ぶなら ▼

Pythonを学ぼう

 

▼ Udemyおすすめの講座 ▼
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門


 

この記事の対象となる人

こんな人におすすめ

  • Pythonに興味がある人
  • Pythonを学びたいと思っている人
  • Pythonを使って株価の分析をしたい人

この記事でわかること

わかること

  • Pythonを使って価格チャートを描画したり相関マトリクスを作成する方法

 

Pythonコード:チャートの描画

まずは、前編の初めのほうで載せた価格チャートのPythonコードから紹介します。

ザっとコードの一覧をお見せします。

コードの一覧

#必要なライブラリのインポート
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import yfinance
import datetime


#最後のデータ取得日を設定
end = datetime.date.today()


#価格データの取得
nasdaq = yfinance.download(tickers='^IXIC',
                           start='2021-04-01',end=end,
                           auto_adjust=True,
                           interval='1d')
us10yt = yfinance.download(tickers='^TNX',
                           start='2021-04-01',end=end,
                           auto_adjust=True,
                           interval='1d')


#価格データの統合
df = pd.concat([nasdaq.Close,us10yt.Close],axis=1)


#カラムの設定
df.columns = ('Nasdaq','US10YT')


#チャートの描画
fig = plt.figure(figsize=(15,10))

ax1 = fig.add_subplot(111)
ax1.plot(df['Nasdaq'],color='black', lw=3)
ax1.set_ylabel('Nasdaq',fontsize=20)

ax2 = ax1.twinx()
ax2.plot(df['US10YT'],color='green', lw=3)
ax2.set_ylabel('US10YT',fontsize=20)
plt.grid()

 

結果

上のコードを実行すると、以下のチャートが描画されます。

ぜひ、上のコードをコピペして試してみてください。

Pythonチャート

 

Pythonコード:相関係数

次に、Pythonで相関係数をはじき出すコードについて紹介します。

上と同じく、ザっとコードの一覧を紹介します。

まずは価格ベースの相関係数からです。

コードの一覧

#必要なライブラリのインポート
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import yfinance
import datetime

#価格データを取得する期間を設定
from_may = '2021-05-13'
end = datetime.date.today()

#取得する価格のティッカーコードを設定
ticker_list = ['CRWD', 'ZS', 'NCNO', 'ZI', 'U', 'AVLR', ]
us_yield = '^TNX'


#Yahoo!financeから価格データを取得
stock1 = yfinance.download(tickers=ticker_list[0],
                           start=from_may,end=end,
                           auto_adjust=True,
                           interval='1d')
stock2 = yfinance.download(tickers=ticker_list[1],
                           start=from_may,end=end,
                           auto_adjust=True,
                           interval='1d')
stock3 = yfinance.download(tickers=ticker_list[2],
                           start=from_may,end=end,
                           auto_adjust=True,
                           interval='1d')
stock4 = yfinance.download(tickers=ticker_list[3],
                           start=from_may,end=end,
                           auto_adjust=True,
                           interval='1d')
stock5 = yfinance.download(tickers=ticker_list[4],
                           start=from_may,end=end,
                           auto_adjust=True,
                           interval='1d')
stock6 = yfinance.download(tickers=ticker_list[5],
                           start=from_may,end=end,
                           auto_adjust=True,
                           interval='1d')

us_yield = yfinance.download(tickers=us_yield,
                             start=from_may,end=end,
                             auto_adjust=True,
                             interval='1d')


#価格データの統合
data = pd.concat([stock1.Close, stock2.Close, 
                  stock3.Close, stock4.Close, 
                  stock5.Close, stock6.Close, 
                 us_yield.Close], axis = 1)


#データカラムの設定(今回はティッカーコード)
data.columns = ('CRWD', 'ZS', 
                'NCNO', 'ZI', 
                'U', 'AVLR', 
                'US10YT')

#相関係数の計算
data.corr()


#米金利をベースに相関係数を並び替え
data.corr().sort_values(by='US10YT')

今回は、ひとつひとつ価格のデータを取得するスタイルにしましたが、関数(def)や繰り返し文(for)を使えば、コードを簡略することができます。

 

結果

上のコードを実行すると、以下の相関マトリクスが表示されます。

相関マトリクス

 

 

次は、騰落率ベースの相関係数を計算するコードを紹介します。

データの取得と統合までは一緒です。

ポイントは以下のことです。

騰落率を計算するコード

 

コードの一覧

#騰落率を計算する
diff_data = data.pct_change()*100

#騰落率を計算すると最初のデータが空になる
#その空のデータを削除する
diff_data.dropna(inplace=True)


#相関係数を計算
#米金利をベースに相関係数を並び替える
diff_data.corr().sort_values('US10YT')

 

結果

上のコードを実行すると、騰落率ベースの相関マトリクスが表示されます。

相関マトリクス

前編でも指摘しましたが、価格ベースの相関係数とは全く違う値であることがわかります。

最終回の後編は、今回紹介したPythonコードについて詳しく説明します。

アップするまで上のコードをコピペしたり、変数を変えたりして遊んでみてください!

 

Pythonを学びたい方へ

今やPythonは、あらゆる分野で使われているプログラミング言語です。

Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。

『私もPythonを学んでみたい!』

という人は以下のリンク先をご覧ください。

▼ Pythonを効率的に学ぶ方法を知りたいなら以下をクリック ▼

Pythonを学ぼう

 

なぜプログラミングを学ぶ必要があるのか?その理由がわかります。

そして、『これがPythonを効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。

この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!

 

独学がどうしても苦手な人はメンター制度が充実しているプログラミングスクールをおすすめします。


▼Pythonを学ぶならテックアカデミー▼

▶現役エンジニアのパーソナルメンターからマンツーマンで学べる

▶データサイエンスコース

▲独学が苦手な人におすすめ▲


注記事項

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

スポンサーリンク

-Pythonで分析!, プログラミングを学ぼう

© 2021 ジェイの米国株投資ブログ