Pythonコード集

【Pythonコード集】『mplfinance』でボリュームチャートを描画してみよう それも一瞬で!

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

 

株価のチャートでは、見るべきポイントがいくつもあります。

その中でも必ずチェックすべきポイントがあります。

それがー

チェックポイント

ボリューム(出来高)

です。

 

なぜ、取引のボリュームをチェックすることが重要なのか?

それはボリュームがー

なぜ重要?

短期的なトレンドを予測する重要な指標

となるからです。

 

株価が上昇している時、いつもより取引のボリュームが多い場合は、短期的な上昇トレンドを形成する可能性が高まります。

株価が下落している時、いつもより取引のボリュームが多い場合は、短期的な下落トレンドを形成する可能性が高まります。

ボリュームを常にチェックすることで、株価の動向だけではわからない情報を得ることができます。

 

そこで今回は、Pythonで簡単にボリュームチャートを作る方法について解説します。

 

今回のサマリー

・最初にPythonのコードを一気に紹介
・その後、ひとつひとつのコードを解説

 

ボリュームチャートを描画するだけでは味気ない記事になってしまいます。

そこで最後の方ではー

おまけ

たった1行のコードを追加するだけで移動平均線(SMA)を簡単に描画できる方法

についても解説します。

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


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

 

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

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

 

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


この記事の対象となる人

こんな人におすすめ

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

この記事でわかること

わかること

・たった数行のPythonコードでボリュームチャートを描画する方法
・たった1行のコードを追加するだけで移動平均線を描画できる方法


Pythonコードの紹介

まずは、Pythonコードを一気にご紹介します。

なお、今回採用した銘柄は、ジェイが実際に投資をしている新興の米フィンテック企業『エヌシーノ(Ticker:NCNO)』です。

 

Pythonコード

#必要なライブラリをインポートするコード
import yfinance as yf
import mplfinance as mpf


#NCNOの株価データをロードするコード
yticker = yf.Ticker("NCNO")
data = yticker.history(period="3mo")


#ボリュームチャートの単位を設定するコード
data['Volume'] = data['Volume'] /1000


#チャートを描画するコード
mpf.plot(data, type='candle', 
         style='yahoo', 
         volume=True,
         title="NCNO",
         ylabel='Price', 
         ylabel_lower='Volume')

 

結果

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

NCNOのチャート

NCNO 日足チャート

 

ボリュームチャートの見方

ボリュームチャートは、必ず株価のトレンドを見ながらチェックすることが重要です。

そうすることで、今後株価が上昇するのか?下落するのか?を判断するひとつの材料となり得るからです。

ボリュームを伴った株価の上昇

ボリュームを伴った株価上昇のパターン

株価チャートの下に、しっかりとボリュームチャートが表示されていることがわかります。

9月上旬に株価が急上昇した局面で、ボリュームも急速に増加したことがわかります。

ボリュームを伴った株価の上昇はー

ポイント

短期的な上昇トレンドを示唆するシグナル

となる場合があります。

実際にNCNOの株価を見ると、80ドル手前まで株高が進んだことがわかります。

 

ボリュームを伴った株価の下落

ボリュームを伴った株価下落のパターン

一方、9月下旬に株価が下落トレンドへ転じた局面でも、ボリュームが急速に増加したことがわかります。

ボリュームを伴った株価の下落はー

ポイント

短期的な下落トレンドを示唆するシグナル

となる場合があります。

実際にNCNOの株価を見ると、70ドル割れの水準まで下落しています。

 

Pythonコードの解説

ここからは4つのカテゴリーに分けて、一つ一つのコードについて解説していきます。

最後に『おまけ』の解説もあります。

 

1:ライブラリ

import yfinance as yf
import mplfinance as mpf

 

・コードの解説

今回は、最短でチャートを作成したいため『2つのライブラリ』のみをインポートします。

▷import yfinance as yf
Yahoo!finance USから株価のデータを取得するためのライブラリ『yfinance』をインポート

 

▷import mplfinance as mpf
チャートを描画するためのライブラリ『mplfinance』をインポート

いつもならmatplotlibでチャートを作成します。

しかし『mplfinance』を使えばー

mplfinanceのメリット

ボリュームや移動平均線を簡単に描画できる

こんなメリットがあります。

なので今回は、『mplfinance』をインポートします。

 

なお、いずれのライブラリも『as 〇〇』としています。

こうすることで、その後のコードを短縮して書くことができます。

 

2:株価データの取得

yticker = yf.Ticker("NCNO")
data = yticker.history(period="3mo")

 

・コードの解説

▷yticker = yf.Ticker("NCNO")
ティッカーコードを指定して株価データを取得するコードです。

ポイントはー

コード

yfinace.Tciker( "ティッカーコード")

と書くことです。これは定型文と考えてください。

株価データを入れる変数名は、お好みでOKです。

 

▷data = yticker.history(period="3mo")

株価データの期間を設定するコードです。

ポイントはー

コード

株価データの変数名.history(period="取得したい期間")

と書くことです。これも定型文と考えてください。

今回は3ヶ月(3mo)としました。

株価データを入れる変数名は、お好みでOKです。

 

3:ボリューム単位の調整

次にボリュームの単位を設定します。

銘柄によっては膨大なボリューム量になるため、ボリュームをチャートに描画する際は、以下のように割り算で単位を調整することをおすすめします

data['Volume'] = data['Volume'] /1000

 

・コードの解説

▷data['Volume'] = data['Volume'] /1000

data['Volume']とすることで、データフレームからボリュームデータのみをピックアップできます。

今回は1,000で割って、ボリュームの単位を調整しました。

ボリュームについては、銘柄によって自由に調整してください。

 

4:チャートの描画

いよいよ、チャートの描画です。

mpf.plot(data, 
         type='candle', 
         style='yahoo', 
         volume=True,
         title="NCNO",
         ylabel='Price', 
         ylabel_lower='Volume')

 

・コードの解説

▷mpf.plot( )

チャートの大枠を設定するコードです。これは定型文と覚えてください。

 

mplfinanceのポイントは、引数の設定あります。

mplfinanceの引数

  • data:一番最初に株価データを入れた変数を入力
  • type:株価チャートのタイプを設定
  • style:チャート全体の表示スタイルを設定

株価データの変数を設定するだけで、チャートが描画できます。

その後に、typeを『candle』にするだけで、『ローソク足』が描画されます。

そしてstyleを『yahoo』にするだけで、『yahoo! finance』のチャートレイアウトが表示されます。

 

ボリュームチャートを描画する場合はー

ボリュームチャートの描画

volume=True

と、引数に設定するだけです。

mplfinanceを使えば、この1行だけでボリュームチャートが描画できます。

 

最後にタイトルや軸のラベルを表示したい場合はー

mplfinanceの引数

  • title:タイトルの設定
  • ylabel:株価チャートのラベルを設定
  • ylabel_lower:ボリュームチャートのラベルを設定

mpf.plot( )のコードを1行で表示すれば、たったの6行で株価チャートとボリュームチャートが一瞬にして出来上がります!

 

おまけ

さて、ボリュームチャートを描画するだけでは、味気ない記事になってしまいます。

そこで今回はおまけとしてー

おまけ

移動平均線を簡単に描画するコード

についても解説します。

 

移動平均線の描画コード

mpf.plot(data, 
         type='candle', 
         style='yahoo', 
         volume=True,
         title="NCNO",
         ylabel='Price', 
         ylabel_lower='Volume', 
         mav = (10,20,50))

 

・コードの解説

追記したのは、最後の1行だけです。

移動平均線のコード

mav = (移動平均線の期間)

と書くだけで、複数の移動平均線を簡単に描画できます。

移動平均線のチャート

移動平均線を描画したチャート

今回は10日線(青ライン)、20日線(黄ライン)、50日線(緑ライン)の各移動平均線を一気に描画できました!

 

ジェイの考察

上のテクニカルチャートを見ると、10日線と20日線は弱気トレンドを示す『デッドクロス』となっていますが、多くのプロ投資家が注目している50日線は維持することに成功しています。

しかも直近は反発の基調にあります。

しかしボリュームが伴っていないため、短期的に70ドル〜80ドルのレンジ相場へシフトするかどうか?なんてことを、上のチャートを見てジェイは考えています。

 

まとめ

・Pythonを使えば株価チャートが簡単に作成できる

・爆速で株価チャートを作るなら『mplfinance』が便利

『mplfinance』ならボリュームチャートを一瞬で描画できる

『mplfinance』なら移動平均線を一瞬で描画できる

 

効率よくPythonを学ぶ方法

Pythonって便利だな...

私もPythonを学んでみたい!

 

今回の記事を読んでそう思われた方は、以下のリンク先をご覧ください。

本気でPythonを学びたいなら

Pythonを学ぼう

 

なぜPythonを学ぶ必要があるのか?その理由がわかります。

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

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


注記事項

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

-Pythonコード集