Pythonコード集

【Pythonコード集】爆速で株価のパフォーマンスチャートをつくってみよう!

続編の告知

この記事には続編があります。以下のリンク先よりご覧ください。

続編
【Pythonコード集】爆速で株価のパフォーマンスチャートをつくってみよう!続編

続きを見る

 

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

今回は、PythonとYahoo!finace USのデータを使って、株価のパフォーマンスチャーをつくります。


今回のサマリー

Pythonを使えば、簡単に株価のパフォーマンスチャートがつくれます
今回はナスダック総合指数の年初来パフォーマンスチャートをつくります
またナスダックのボラティリティチャートもつくります
最後のまとめでは、今回紹介したコードを一気に紹介します


ぜひ、最後までお付き合いください!

 

この記事の対象となる人

こんな人におすすめ

  • Pythonでチャートを作成したい人
  • Pythonで株価の分析がしたい人
  • Pythonを学びたいと思っている人

この記事でわかること

わかること

  • PythonとYahoo!finance USのデータで株価のパフォーマンスチャートをつくる方法

Udemyおすすめの講座
・Pythonの基礎から応用まで一気に学ぶならこのコース おすすめ度
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

 

・データサイエンスを学ぶならこの2コース 2コースのおすすめ度
【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

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

 

・Python、ファイナンス、英語を一気に学ぶ ”欲張りコース” おすすめ度
Python for Finance: Investment Fundamentals & Data Analytics
※このコースには日本語の字幕がついています。
Python、ファイナンスそして英語の力を同時にレベルアップするコースとしては、Udemy最強のコースです。
ジェイもこのコースで学び、今も復習で使っているコースです。


手順はたったの4つ

結論からいいます。

PythonとYahoo!finance USのデータで株価のパフォーマンスなどを分析する場合、必要な手順は以下の4つだけです。

3つのライブラリ

  • ライブラリのインポート
  • 価格データの取得
  • チャートの型を設定
  • チャートの描画

 

論より証拠。

実際にPythonコードをみてみましょう!

 

Pythonコード

まずは、必要なライブラリのインポートからです。

 

ライブラリのインポート

Pythonコード

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

import datetime

import yfinance as yf

 

ライブラリの解説

使うライブラリはたったの4つです。

4つのライブラリ

  • pandas
  • matplotlib
  • datetime
  • yfinance

1番目の『pandas』は、Python版のエクセルと思ってください。
これは、Pythonの分析で必ずといって良いほど使うライブラリです。

 

2番目の『matplotlib』は、Pythonでチャートやグラフを作成するためのライブラリです。

コードの書き方は色々ありますが、今回のようにー

コード書き方

import matplotlib.pyplot as plt

と書くのが、一番シンプルです。

 

3番目の『datetime』は、日付や日時を設定するライブラリです。

今回は、データの最終取得日を設定するためにインポートしました。

 

4番目の『yfinance』は、Yahoo!finance USから株価のデータを取得するためのライブラリです。

前回の記事では『pandas_datareader』を使いました。

株価データの取得の際、どのライブラリを使うかは好みですね。

前回の記事
【Pythonコード集】たった数行でラインチャートをつくってみよう!

続きを見る

 

株価データの取得

ライブラリのインポートが終わったら、次は株価データの取得です。

今回は、ナスダック総合指数(以下ではナスダック)を取り上げます。

ハイテク企業が多く上場するナスダックは、今後も米株のトレンドを考える上で重要な指標となるでしょう。

Pythonコード

df_nsdq = yf.download(tickers='^IXIC', 
                 start='2021-01-01', 
                 end=datetime.date.today())

 

yfinanceの解説

ポイントは、『yfinance』の引数にあります。

yfinanceの引数一覧

 

上の画像を見ればわかりますが、設定できる引数が多くあります。

しかし、初心者の方は以下の3つだけ覚えておけば十分です。

これらを設定することで、あなたが取得したい銘柄やデータの期間を自由に設定できます。

yfinanceの引数

  • tickers
  • start
  • end

1番目の『tickers』で、取得したい銘柄のコードを設定します。
例:アップルならAAPL、アマゾンならAMZN、ネットフリックスならNFLX

 

2番目の『start』は、株価のデータを取得したい最初の日を設定します。

 

3番目の『end』は、株価のデータを取得したい最後の日を設定します。

startのように日付を直接入力してもOK。

その場合は文字型になるので、必ず『' '』『" "』で日付をくくります。

また、endのように『datetime関数』で設定してもOKです。

 

結果

上のコードを実行すると、以下の結果が表示されます。

ナスダックの価格データ

 

たった数行のコードを書くだけで、株価データの基本である四本値ー『始値・高値・安値・終値』だけでなく、出来高調整後の終値まで一気に取得できました!

 

価格データが取得できたので、次はいよいよチャートの作成です。

チャートの作成

Pythonでチャートを作成する場合、よく使うライブラリが『matplotlib』です。

今回は、初めに『チャートの型』を設定します。

ポイントはー

今回のポイント

rcParams

というコードです。

Pythonコード

from matplotlib import rcParams
rcParams['font.size']=15
rcParams['figure.figsize']=15,8

 

rcParamsの解説

rcParams』を使えば、チャートのサイズやフォントを自在に設定できます。

書き方はー

rcParams

rcParams[ ' 設定したこと' ] = 設定したい数値 

というシンプルなものです。

rcParams['font.size']=設定したい数値
font.sizeとあるとおり、こちらはフォントサイズを指定するコードです。

▷rcParams['figure.figsize']=横のサイズ、縦のサイズ
figure.figsizeとあるとおり、こちらはチャートのサイズ全体を指定するコードです。
今回は横15、縦8の横長サイズとしました。

 

チャートの型を決めたら、次はいよいよチャートの作成です。

今回もシンプルにラインチャートを作成します。

Pythonコード

normalized = (df_nsdq/df_nsdq.iloc[0]-1)*100
normalized.Close.plot();

 

チャート作成の解説

▷normalized = (df_nsdq/df_nsdq.iloc[0]-1)*100
ナスダックの価格データを格納した変数同士で割り算し、パフォーマンスを計算するコードです。

ポイントは、分母の『.iloc[0]』です。

.ilocについて

Pandasには、任意のデータをピックアップするコードがあります。
.iloc』はその一つで、行番号や列番号で単独もしくは複数の要素の値を選択し取得できます。

分母のdf.iloc[0]は、最初のデータだけを取り出すコードです。

カッコの中をゼロにすることで最初のデータを取り出しています。

こうすることで、分子のデータが変わっても分母のデータは最初のデータの値で固定されるので、『基準日=ゼロ%』としてパフォーマンスが計算できる、というわけです。

 

▷normalized.Close.plot();
ラインチャートを描画するコードです。

パフォーマンスデータを格納した変数『normalized』『.Close』を追加して終値のみをピックアップしています。

そして最後に、可視化ライブライの『matplotlib』『.plot()』というシンプルなコードで追記するだけです。

 

結果

ナスダックの年初来パフォーマンスチャート

シンプルではありますが、簡単にナスダックの年初来パフォーマンスチャートが作成できました。

 

ボラティリティチャート

日々の変動幅、つまりナスダックの『ボラティリティ』はどの程度なのか?

もうひとつのパフォーマンスチャートでこの点を確認してみましょう!

Pythonコード

performance = df_nsdq.pct_change(periods=1)

 

pct_changeの説明

日々のボラティリティ(変動幅)を確認する時は、当日と前日の差分に注目します。

これを計算してくれるのがー

pct_changeについて

pct_change( periods = 日数 )

というコードです。

▷df_nsdq.pct_change(periods=1)
パフォーマンスデータを格納した変数『df_nsdq』『.pct_change(periods=1)』と書くだけで、差分1日のパフォーマンスを計算してくれます。

『pct_change』は、文字どおりパーセント(%)の変化です。

『periods=1』は、1日分という意味です。

 

結果

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

ナスダックのボラティリティチャート

 

今年の3月にアメリカの長期金利が急上昇する局面がありました。

この動きに連動して、ナスダックのボラティリティ(上下の変動幅)が拡大していることがわかります。

これからアメリカの金融政策は、緩和から正常化に向かいます。

この過程で、今年3月のようにボラティリティが拡大する局面があるとジェイは考えています。

 

 

チャートを編集してみよう!

上で描画したチャートは、あまりにもシンプルすぎますね。

なのでここから先は、ラインチャートをもう少しかっこよくしてみましょう!

簡単な流れ

  • ゼロラインの追加
  • グリッドラインの追加
  • 一定のエリアの色付け

年初来パフォーマンスチャート

まずは年初来のパフォーマンスから。

Pythonコード

normalized.Close.plot()
plt.axhline(y=0, color='red', ls='--')
plt.grid();

 

axhlineの解説

▷plt.axhline(y=0, color='red', ls='--')
チャート内に水平の線を設定するコードです。

カッコの引数

  • y:yの水準を設定
  • color:色の設定
  • ls:ラインスタイルの設定

最後の『ls:ラインスタイル』には、以下の種類があります。

ラインスタイルの種類

  • '-', '--', '-.', ':'
  • 'solid', 'dashed', 'dashdot', 'dotted'

▷plt.grid();
チャート内にグリッドラインを描画するコードです。

 

結果

ナスダックの年初来パフォーマンスチャート

たった2行のコードを追記するだけで、格段にわかりやすくなりましたね。

 

次は、ボラティリティチャートを編集してみましょう!

ボラティリティチャート

Pythonコード

performance.Close.plot()
plt.axhline(y=0, color='red', ls='--')
plt.axhspan(ymin=-0.03, ymax=0.03, alpha=0.1, color='red')
plt.grid();

 

axhspanの解説

今回のポイントはー

axhspan

axhspan(各引数の設定 )

というコードです。

そして『axhspan』のポイントは、引数の設定です。

カッコの引数

  • ymin:yの最小水準を設定
  • ymax:yの最大水準を設定
  • alpha:色の透明度を設定
  • color:エリアの色を設定

上4つの引数を設定すると、以下のチャートが描画されます。

 

結果

ナスダックのボラティリティチャート

エリアに色をつけることで、今年は最大マイナス3%(-0.03)からプラス3%(+0.03)の間で変動していることがわかります。

±3%を超えるような上昇 / 下落がある場合、その後は反落 / 反発のパターンとなっていることが上のボラティリティチャートから読み取れます。

 

Pythonに挑戦してみよう!

このようにPythonを使えば、簡単に株価のデータを取得できます。

Pythonを使えば、数値のデータを可視化して株価の分析もできます。

今回紹介した方法は、いずれも基本的なコードです。

しかし、シンプルなコードを見ただけでも『プログラミングって難しそう...』と感じてしまう初心者の方を多く見かけます。

ジェイも最初はそうでした。

しかし、プログラミングは『習うより慣れろ』です。

今回の記事を読んで『よし!自分もPythonに挑戦してみよう!』と思った方は、以下のリンク先をご覧ください。

ジェイが考える『Pythonを効率良く学習する方法』について解説しています。

 

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

Pythonを学ぼう

 

このブログと出会ったのも何かの縁です。

ぜひ挑戦してみてください!!

 

まとめ

今回は、PythonとYahoo!financeのデータを使ってナスダックのパフォーマンスチャートを作成しました。

また、ジェイが考える効率的なPythonの学習方法については、上のリンク先からご覧いただけます。

最後に今回のコード一覧をご紹介します。

コピペして遊んでみてください!

Pythonコード一覧

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

#ナスダックのデータを取得
df_nsdq = yf.download(tickers='^IXIC', 
                 start='2021-01-01', 
                 end=datetime.date.today())


#チャートの型を設定
from matplotlib import rcParams
rcParams['font.size']=15
rcParams['figure.figsize']=15,8


#パフォーマンスチャートの作成
normalized.Close.plot()
plt.axhline(y=0, color='red', ls='--')
plt.grid();


#日々のボラティリティを計算
performance = df_nsdq.pct_change(periods=1)

#ボラティリティチャートの作成
performance.Close.plot()
plt.axhline(y=0, color='red', ls='--')
plt.axhspan(ymin=-0.03, ymax=0.03, alpha=0.1, color='red')
plt.grid();

 

今回は以上です!


注記事項

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

 

-Pythonコード集