目安:この記事は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のチャート
ボリュームチャートの見方
ボリュームチャートは、必ず株価のトレンドを見ながらチェックすることが重要です。
そうすることで、今後株価が上昇するのか?下落するのか?を判断するひとつの材料となり得るからです。
ボリュームを伴った株価の上昇
株価チャートの下に、しっかりとボリュームチャートが表示されていることがわかります。
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を効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。
この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!
注記事項
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください。