Pythonコード集

【Pythonコード集】『cufflinks』を使えばGAFAMのトレンドがひと目でわかる!

目安:この記事は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)

 

コードを実行すると

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

・株価チャート

GAFAM+Nの株価チャート(cufflinksで作成)

 

・パフォーマンスチャート

GAFAM+Nのパフォーマンスチャート(cufflinksで作成)

 

次は、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)』でチャート同士の縦と横の余白を設定できます。

 

コードを実行すると

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

・株価チャート

GAFAM+Nの株価チャート(cufflinksで作成)

 

パフォーマンスチャートの描画

次にパフォーマンスチャートを描画します。

コードは、株価チャートとほとんど同じです。

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』と若干小さめにしています。

 

コードを実行すると

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

・パフォーマンスチャート

GAFAM+Nのパフォーマンスチャート(cufflinksで作成)

 

引数『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チャート)

GAFAM+Nのパフォーマンスチャート(cufflinksで作成)

 

好調なGOOGL & MSFT

上のパフォーマンスチャートを見比べて、今年も好調さをキープしているのがー

好調な銘柄

グーグル(GOOGL)とマイクロソフト(MSFT)

であることがわかります。

グーグル(GOOGL)とマイクロソフト(MSFT)

グーグル(GOOGL)とマイクロソフト(MSFT)

これら2社が好調なパフォーマンスを維持している主因は、四半期ごとの決算を順調にクリアしてきたことにあります。

次の決算でも好調さを維持すれば、今年1年をとおして好調なパフォーマンスを維持する可能性が高まるでしょう。

 

勢いが復活してきたNFLX

上のパフォーマンスチャートをみて、上昇の勢いが復活している銘柄がー

勢いのある銘柄

ネットフリックス(NFLX)

です。

ネットフリックス(NFLX)

ネットフリックス(NFLX)

2021年はマイナス圏で推移することが多かったネットフリックス(NFLX)ですが、今年の8月下旬以降、急速にパフォーマンスが上昇していることがわかります(緑の矢印)。

ブリジャートン家やイカゲームといった有料コンテンツをどんどん配信していること。

さらには、大手小売チェーンのウォルマート(WMT)と組んで人気番組のマーチャンダイジングの機会を増やすための新しい構想を打ち出す同社(ネットフリックス)の経営戦略が好感されていることがわかります。

同社の株価も上場来高値を更新しています。

 

さえないFBとAMZN

ネットフリックス(NFLX)とは対照的に、冴えないパフォーマンスへ転じているのがフェイスブック(FB)です。

フェイスブック(FB)とアマゾン(AMZN)

フェイスブック(FB)とアマゾン(AMZN)

フェイスブック(FB)は現在、反トラスト法(独占禁止法)のターゲットとなっています。

最近ではインスタグラムが与える影響をめぐり内部告発され、さらにはシステム障害が発生するなど、株価の下落要因に直面しています。

 

一方、アマゾン(AMZN)のパフォーマンスは、新型コロナパンデミックの終息や、前回の決算で7−9月期の売上高見通しについて厳しい見方を示してきた影響により、プラスマイナスを行ったり来たりする不安定な状況が続いています。

 

cufflinksならデータも確認できる

このように『cufflinks』を使えば、複数の銘柄のトレンドを簡単に把握することができます。

また、Plotlyチャートで作成しているため、チャートにカーソルを合わせるだけでデータの内容を確認することもできます。

・データの確認

ネットフリックス(NFLX)の株価データ

 

このように、一度Pythonのコードを組めば、複数の銘柄のトレンドを簡単に知ることができます。

しかも一瞬で!

 

Pythonは挑戦する価値あり!

この記事で述べてきたとおり、Pythonを使えば簡単にトレンド分析ができます。

しかも、たった数行のコードだけで!

 

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

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

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

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

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

 

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

Pythonを学ぼう

 

この記事と出会ったのも何かの縁です。

ぜひ、あなたもPythonに挑戦してみてください!!


▼ チャート分析のおすすめ本▼

テクニカル分析を学ぶならこの本で!

おすすめ本


まとめ

・cufflinksなら簡単にトレンド分析ができる

・Plotlyに対応しているためチャートデータも見る事ができる

・Pythonのコードさえ組んでしまえば、あなただけの分析チャートを作ることができる

今回は以上です!


注記事項

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

-Pythonコード集