目安:この記事は3分で読めます
株式投資の世界には、色々な格言があります。
その中でも、これはその通りだな!と、ジェイが痛感した格言がひとつあります。
それはー
痛感した格言
Trend is your friend −トレンドはあなたの友達
です。
トレンドを無視したトレードは、かなりの高確率で損につながります。
よって株式の投資で重要なことはー
重要なこと
トレンドを知りそれに乗ること
ことです。
Pythonを使えば、たった数行のコードを書くだけで複数のチャートを簡単に描画できます。
株価チャートだけでなく、パフォマンスチャートも描画すれば、今狙っている銘柄のトレンドを客観的に比較することができます。
カーソルを合わせるだけで、データの内容も確認することができます。
どんなPythonコードを書けば、そんなに色々なことができるチャートが描画できるのか?
今回は、その点について解説します!
今回のサマリー
・Pythonで複数のチャートを描画する方法
・株価とパフォーマンスのチャートを作成
・はじめにPythonコードを一気にご紹介
・その後にひとつひとつのコードを解説
・チャート分析の解説
▼ Udemyおすすめの講座 ▼
・Pythonの基礎から応用まで一気に学ぶならこのコース おすすめ度
▶現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
・データサイエンスを学ぶならこの2コース 2コースのおすすめ度
▶【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
▶【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
・Python、ファイナンス、英語を一気に学ぶ ”欲張りコース” おすすめ度
▶Python for Finance: Investment Fundamentals & Data Analytics
※このコースには日本語の字幕がついています。
Python、ファイナンスそして英語の力を同時に上げるコースとしては、Udemy最強のコースです。
ジェイもこのコースで学び、今も復習で使っているコースです。
この記事の対象者
こんな人におすすめ
- Pythonを学びたいと思っている人
- Pythonで株価の分析がしたい人
- Pythonで株価チャートを作りたい人
この記事でわかること
わかること
- Pythonで株価チャートを描画する方法
- Pythonでパフォーマンスチャートを描画する方法
- 複数のチャートを描画する方法
- トレンドを簡単に把握したい人
Pythonコード
まずは、Pythonコードを一気にご紹介します。
今回の記事ではー
今回の最重要ポイント
Cufflinks
というPythonのチャート描画ライブラリを使いこなすことが、最も重要なポイントとなります。
Cufflinksとは?
『Cufflinks』とはー
今回の最重要ポイント
PandasのデータフレームからPlotlyのグラフを一発で描画できる
超便利なライブラリです。
今回の銘柄は6つ
今回、Pythonで取得する銘柄の価格データは、以下の6つです。
6つの銘柄
- グーグル
- アップル
- フェイスブック
- アマゾン
- マイクロソフト
- ネットフリックス
いわゆる『GAFAM+N』と呼ばれている銘柄のトレンドを、Cufflinksで簡単に確認したいと思います。
では、Pythonのコードを見てみましょう!
Pythonコード
#ライブラリのインポート import pandas as pd import yfinance as yf import matplotlib.pyplot as plt import cufflinks as cf #ティッカーコードの設定 tickers = ['GOOGL', 'AAPL', 'FB', 'AMZN', 'MSFT', 'NFLX'] #株価データの取得 df = pd.DataFrame() for t in tickers: df[t] = yf.download(tickers=t, start = '2021-01-01', end = '2021-12-31', interval='1d')['Close'] #cufflinksのオフライン設定 cf.set_config_file(offline = True) #株価チャートの描画 df.iplot(kind = 'scatter', subplots=True, subplot_titles = True, shape = (3,2), dimensions=[800,800]) plt.tight_layout(pad = 1); #パフォーマンスの計算 performance = (df/df.iloc[0]-1)*100 #パフォーマンスチャートの描画 performance.iplot(kind = 'scatter', theme= 'white', subplots=True, subplot_titles = True, shape = (3,2), dimensions=[750,750], zerolinecolor = 'dimgrey',) plt.tight_layout(pad = 1)
コードを実行すると
上のコードを実行すると、以下のチャートが描画されます。
・株価チャート
・パフォーマンスチャート
次は、Pythonコードをひとつひとつ解説してます!
Pythonコードの解説
ライブラリのインポート
まずは、いつもどおりライブラリのインポートからです。
import pandas as pd import yfinance as yf import matplotlib.pyplot as plt import cufflinks as cf
・コードの解説
▷import pandas as pd
Pythonのエクセル版、Pandasをインポート。
Pythonの分析では必須のライブラリ。
▷import yfinance as yf
Yahoo!finance USから株価のデータを取得するためのライブラリ『yfinance』をインポート。
▷import matplotlib.pyplot as plt
Pythonでチャートやグラフを作成するためのライブラリ『matplotlib』をインポート。
今回は、パフォーマンスチャートのゼロラインを設定するために使います。
▷import cufflinks as cf ☆ ← 今回の記事の最重要ポイント!
最初にインポートしたPandas(のデータフレーム)から、動的チャートのライブラリ『Plotly』のチャートやグラフを一瞬で描画できるライブラリ。
株価データの取得
tickers = ['GOOGL', 'AAPL', 'FB', 'AMZN', 'MSFT', 'NFLX'] df = pd.DataFrame() for t in tickers: df[t] = yf.download(tickers=t, start = '2021-01-01', end = '2021-12-31', interval='1d')['Close']
▷tickers =[ ]
取得したい株価データの銘柄ティッカーをリスト(カギカッコ)形式で設定。
例:グーグル:GOOGL / アップル:AAPL
▷df = pd.DataFrame()
『 pd.DataFrame()』で空のデータフレームを作成。
設定した空のデータフレームを変数『df』に入れる。
変数名はなんでもOK。
▷for t in tickers:
for文でティッカーをひとつひとつ取得。
▷df[t] = yf.download( )
変数『df[t]』とすることで、ティッカーをベースとしたデータフレームが作成できる。
『yf.download( )』は、Yahoo!finance USから株価データを取得するための定型文。
引数で詳細を設定する。
引数
- tickers:取得したい銘柄ティッカーを設定
- start:最初のデータ取得日を指定
- end:最後のデータ取得日を指定
- interval:時間足、日足といった時間軸を設定
今回のように『tickers』をリストで設定すれば、複数銘柄の株価データを一気に取得できます。
取得した期間や時間軸はお好みで設定してください。
最後に [Close] とあります。
このコードは、終値(Close)データのみを取得して!という意味です。
cufflinksのオフラインモード設定
ここからが『cufflinks』の設定です。
まずは、オフラインモードの設定を行います。
cf.set_config_file(offline = True)
▷cf.set_config_file(offline = True)
『cf.set_config_file』は定型文です。
引数の『offline』を "True" にすると、オフラインモードにあります。
自分しか見ないチャートなので、ジェイはいつもオフラインモードにしています。
株価チャートの描画
いよいよ、cufflinksでチャートを描画します!
まずは、株価チャートからです。
df.iplot(kind = 'scatter', subplots=True, subplot_titles = True, shape = (3,2), dimensions=[800,800]) plt.tight_layout(pad = 1);
▷df.iplot()
cufflinksでチャートを描画するためのコード。
ポイントは引き数の設定です。
引数
- kind:描画したいチャートスタイルの設定
- subplots:複数のチャートの並びを設定
- subplot_titles:各チャートのタイトル表示の設定
- shape:縦に表示する数 / 横に表示する数の設定
- dimensions:チャートの縦と横のサイズを設定
・『kind』
表示したいチャートのスタイル ー例えばラインとかドットプロットといった表示スタイルを設定します。
scatter や line にすれば、ラインチャートが描画されます。
・『subplots』
”True” にすれば、複数の銘柄を別々に表示することができます。
一方、”False” にすると、ひとつのチャートに複数のデータが表示されます。
ここは ”True” にすると良いでしょう。
・『subplot_titles』を
”True”にすれば、別々に表示されたチャートの上にタイトル(銘柄名)が表示できます。
・『shape』
ここで、縦に表示する数と横に表示する数が設定できます。
今回は『縦3列 / 横2列』で表示する設定としました。
・『dimensions』
cufflinks全体のチャートサイズを設定します。
見やすいサイズ(縦横比)で設定してください。
▷plt.tight_layout(pad = 1);
『plt.tight_layout』は、チャートの重なりを防ぐためのコード。
引数『pad(h_padやw_pad)』でチャート同士の縦と横の余白を設定できます。
コードを実行すると
ここまでのコードを実行すると、以下のチャートが描画されます。
・株価チャート
パフォーマンスチャートの描画
次にパフォーマンスチャートを描画します。
コードは、株価チャートとほとんど同じです。
performance.iplot(kind = 'scatter', theme= 'white', subplots=True, subplot_titles = True, shape = (3,2), dimensions=[750,750], zerolinecolor = 'dimgrey',) plt.tight_layout(pad = 1)
違う点は、引数の『theme』と『zerolinecolor』のみです。
・『theme』
cufflinks全体の色(バックグランドカラー)を設定する引数です。
株価チャートと違って、白色(white)ベースのスタイルとなっていることがわかります。
ここは好みで設定してください。
・『zerolinecolor』
ゼロラインを描画する引数です。
パフォーマンスチャートでゼロラインは必須です。
このラインを描画することで、相対的なパフォーマンスが簡単にわかるからです。
また、全体のサイズを『800, 800』から『750, 750』と若干小さめにしています。
コードを実行すると
上のコードを実行すると、以下のチャートが描画されます。
・パフォーマンスチャート
引数『zerolinecolor』を設定するだけで、GAFAM+Nのトレンドが簡単にわかりますね!
パフォーマンスチャートの分析でわかること
最後に、cufflinksで描画したチャートでGAFAM+Nのトレンドを分析してみます。
パフォーマンスチャートのスタイルをラインチャートからバーチャート(棒グラフ)に変えてみました。
引数の『kind = 』をー
変更点
'bar' に設定する
だけです。
performance.iplot(kind = 'bar', theme= 'white', subplots=True, subplot_titles = True, shape = (3,2), dimensions=[750,750], zerolinecolor = 'dimgrey',) plt.tight_layout(pad = 1)
このスタイル方が、よりパフォーマンスの推移を把握することができるビジュアルであることがわかります。
・パフォーマンスチャート(Barチャート)
好調なGOOGL & MSFT
上のパフォーマンスチャートを見比べて、今年も好調さをキープしているのがー
好調な銘柄
グーグル(GOOGL)とマイクロソフト(MSFT)
であることがわかります。
・グーグル(GOOGL)とマイクロソフト(MSFT)
これら2社が好調なパフォーマンスを維持している主因は、四半期ごとの決算を順調にクリアしてきたことにあります。
次の決算でも好調さを維持すれば、今年1年をとおして好調なパフォーマンスを維持する可能性が高まるでしょう。
勢いが復活してきたNFLX
上のパフォーマンスチャートをみて、上昇の勢いが復活している銘柄がー
勢いのある銘柄
ネットフリックス(NFLX)
です。
・ネットフリックス(NFLX)
2021年はマイナス圏で推移することが多かったネットフリックス(NFLX)ですが、今年の8月下旬以降、急速にパフォーマンスが上昇していることがわかります(緑の矢印)。
ブリジャートン家やイカゲームといった有料コンテンツをどんどん配信していること。
さらには、大手小売チェーンのウォルマート(WMT)と組んで人気番組のマーチャンダイジングの機会を増やすための新しい構想を打ち出す同社(ネットフリックス)の経営戦略が好感されていることがわかります。
同社の株価も上場来高値を更新しています。
さえないFBとAMZN
ネットフリックス(NFLX)とは対照的に、冴えないパフォーマンスへ転じているのがフェイスブック(FB)です。
・フェイスブック(FB)とアマゾン(AMZN)
フェイスブック(FB)は現在、反トラスト法(独占禁止法)のターゲットとなっています。
最近ではインスタグラムが与える影響をめぐり内部告発され、さらにはシステム障害が発生するなど、株価の下落要因に直面しています。
一方、アマゾン(AMZN)のパフォーマンスは、新型コロナパンデミックの終息や、前回の決算で7−9月期の売上高見通しについて厳しい見方を示してきた影響により、プラスマイナスを行ったり来たりする不安定な状況が続いています。
cufflinksならデータも確認できる
このように『cufflinks』を使えば、複数の銘柄のトレンドを簡単に把握することができます。
また、Plotlyチャートで作成しているため、チャートにカーソルを合わせるだけでデータの内容を確認することもできます。
・データの確認
このように、一度Pythonのコードを組めば、複数の銘柄のトレンドを簡単に知ることができます。
しかも一瞬で!
Pythonは挑戦する価値あり!
この記事で述べてきたとおり、Pythonを使えば簡単にトレンド分析ができます。
しかも、たった数行のコードだけで!
しかし、シンプルなコードを見ただけでも『プログラミングって難しそう...』と感じてしまう初心者の方を多く見かけます。
ジェイも最初はそうでした。
しかし、プログラミングは『習うより慣れろ』です。
今回の記事を読んで『よし!自分もPythonに挑戦してみよう!』と思った方は、以下のリンク先をご覧ください。
ジェイが考える『Pythonを効率良く学習する方法』について解説しています。
▼ Pythonを効率的に学ぶ方法を知りたいなら以下をクリック ▼
Pythonを学ぼう
この記事と出会ったのも何かの縁です。
ぜひ、あなたもPythonに挑戦してみてください!!
▼ チャート分析のおすすめ本▼
テクニカル分析を学ぶならこの本で!
おすすめ本
まとめ
・cufflinksなら簡単にトレンド分析ができる
・Plotlyに対応しているためチャートデータも見る事ができる
・Pythonのコードさえ組んでしまえば、あなただけの分析チャートを作ることができる
今回は以上です!
注記事項
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください。