Pythonコード集

【Python】Yahoo!financeのデータでローソク足を作成してみよう

Aさん
チャートの分析ではローソク足をよく使いますよね。
Pythonでローソク足のチャートを作ることはできますか?

 

チャートの分析は、投資の世界でとても重要な分野です。

チャート分析の基本は、『価格をみる』ことにあります。

そして価格を見る上で、『ローソク足』は色々な情報を私たちに与えてくれます。

 

そこで今日はー

Pythonを使ってローソク足を描画(びょうが)する方法

についてお話します。

 

今回の記事を最後までお読みいただければ、自分でローソク足チャートを作成したり、ボリューム(出来高)チャートを追加で表示したりすることができます。

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

 

記事を読んでわかること

わかること

  • PythonでYahoo!financeから株価のデータを取得する方法
  • Pythonでローソク足チャートを作成する方法
  • 作成したローソク足チャートを簡単に編集することができる

 

この記事の対象となる人

こんな人におすすめ

  • プログラミング言語『Python』に興味がある人
  • Pythonを使って株価のデータを取得したい人
  • Pythonを使ってチャートを作ってみたい人

 

結論からいいます

  • Pythonを使えば簡単に株価データを取得できる
  • Pythonを使えば簡単にローソク足チャートを作成できる

Yahoo!financeから株価データを取得してみよう

 

スクレイピングでデータが取得できない場合

『スクレイピング で効率よく記事を読もう!』シリーズで指摘したとおり、スクレイピングを使ってデータの取得ができない場合はー

API
Application Programming Interface

という方法を使ってデータを取得します。

 

APIを使ってYahoo!financeからデータを取得!

APIって何?という方は、Google先生に聞けばすぐにわかります。

なのでこのブロブでは、APIを使ってYahoo!financeから実際に株価のデータを取って、ローソク足のチャートを作成する方法にフォーカスします。

その方が、PythonやAPIに対する理解も深まると思います。

 

さて、今回のテーマはー

ローソク足チャートの作成

です。

銘柄は何でも良いのですが、上昇ムードが高まっているダウ平均のローソク足チャートを作成してみましょう。

 

まずは、Yahoo!financeからダウ平均の株価データを取得するコードから書いてみましょう。

※スマートフォンでご覧の人は、コード一覧の画面を左右にスライドして見ることができます。

Pythonのコード例:株価の取得

import pandas as pd
import matplotlib.pyplot as plt
import yfinance
import mplfinance as mf

import warnings
warnings.simplefilter('ignore')


dji = yfinance.download('^DJI',
start='2020-01-01',
end='2021-12-31',
interval='1d',
auto_adjust=True)


chart = mf.plot(dji,
style='yahoo',
type='candle',
title='Dow Jones Industrial Average CHart')

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

実行結果

ダウ平均の日足チャート

 

たった7行のコードを書くだけで、Yahoo!financeからダウ平均の株価データを取得して、ローソク足のチャートまで作成することができました。

 

次はコードの説明です。

コードの説明

1:まずは4つのライブラリをインポート

#最初にデータ分析では必須のライブラリ"pandas"をインポート
import pandas as pd

#Yahoo!financeからデータを取得するためのライブラリ”yfinance”をインポート
import yfinance

#チャートを作成するライブラリ"mplfinance"をインポート
import mplfinance as mf

#警告表示を非表示にするライブラリ"warnings"をインポート
import warnings
warnings.simplefilter('ignore')

 

2:ダウ平均の価格データを取得する

#引数『dji』にyfinance.downloadで取得した価格データを入れるコード
dji = yfinance.download('^DJI',
start='2020-01-01',
end='2021-12-31',
interval='1d', 
auto_adjust=True)

引数の説明

・最初にダウ平均のティッカーコード”^DJI”を書く

start & end:データを取得する期間を設定する

interval:日足、週足、月足といった時間軸を設定する

auto_adjust:『始値 / 高値 / 安値 / 終値』の四本値を自動的に調整する

なお、Yahoo!financeでは下の画像の赤い丸の箇所が『ティッカーコード』となります。

Yahoo!financeのティッカーコード

 

3:最後にチャートを描画する

#mplfinanceでチャート描画する
chart = mf.plot(dji,
style='yahoo',
type='candle',
title='Dow Jones Industrial Average CHart')

引数の説明

・最初に価格データを入れた変数”dji”を書く

style:チャートのスタイルを設定(今回はYahoo!financeスタイル)

type:ここでローソク足(candle)を設定 ★重要

title:チャートのタイトルを設定

以上です。

うーん、簡単!

 

チャートのサイズを横長にしてみよう!

ここで終わってはあまりにも味気ないので、今度はチャートのサイズを変更してみます。

コードは以下となります。

Pythonのコード例:サイズの変更

chart = mf.plot(dji,
style='yahoo',
type='candle',
title='Dow Jones Industrial Average CHart', 
figratio=(12,4))

最後の行に注目してください。

『figratio』という引数に横のサイズ(12)縦のサイズ(4)を設定するだけで、以下のようにチャートのサイズを変更することができました。

実行結果

ダウ平均の日足チャート(横長)

うーん、やっぱり簡単!

 

ボリュームチャートを追加してみよう!

株式の投資では、日々のボリューム(出来高)をチェックすることが重要です。

そこで価格チャートの下にボリュームチャートも追加してみましょう。

コードは以下となります。

Pythonのコード例:ボリュームチャートの追加

chart = mf.plot(dji,
style='yahoo',
type='candle',
title='Dow Jones Industrial Average CHart', 
figratio=(12,4),
volume=True)

またまた最後の行に注目してください。

『volume』という引数に”True”と設定するだけで、価格チャートの下にボリュームチャートが追加されました。

実行結果

ダウ平均のボリュームチャート

 

しかも、価格の動きに合わせて緑と赤に色分けされて描画されています。

チャートの豆知識

・海外では、価格が上昇する場合は”緑”で表記するのが一般的です。
一方、下落の場合は”赤”で表記されるのが一般的です。

・日本では上昇が”赤”、下落が”緑か青”で表記されるのが一般的です。

 

ローソク足の分析は『幹』

チャート分析を『木』に例えるならば

『チャート分析=テクニカル分析』と考える人がいます。

別に間違いではないですが、チャート分析の基本はあくまでもローソク足での『価格の分析』にあります。

テクニカル指標での分析は、あくまでも”補助”と考えるた方が良いでしょう。

 

チャート分析を『木』に例えるならばー

チャート分析とは

  • ローソク足の分析は木で言えば『幹』
  • テクニカル指標の分析は木で言えば『枝葉』

ということになります。

 

チャート分析は奥が深い

ひと言でチャート分析と言っても、この分野はとても奥が深いです。

なので独学では中々身につきません。

ではどうやってチャート分析のスキルを上げていくのか?

ジェイは、以下の本を”使って”スキルを上げてきました。

 

 

 『先物市場のテクニカル分析 』は、チャート分析の古典的ともいえる名著です。

上の方で ”使う” という表現を用いましたが、この本は読むのではなく ”使う本" です。

実践で使えるからこそ、おすすめしているのです。

これ以外で、チャート分析の基本から応用までを体系的にまとめ上げた本をジェイは知りません。

分厚い本ですがその分学ぶことも多く、この1冊されあれば他の本を買ったりセミナーなどに参加する必要なんてありません。

ぜひご一読ください!

 

まとめ

まとめ

  • Pythonを使えば、Yahoo!financeから簡単に株価のデータを取得できる
  • Pythonを使えば、簡単にローソク足のチャートを作成することができる
  • ライブラリ『mplfinance』の引数を設定するだけで、チャートを自由自在にカスタマイズできる

 

Pythonを使えば、簡単にローソク足のチャートを作成できることがわかりました。

今回作成したチャートに『TA-Lib』というテクニカル分析専用のライブラリを使えば、テクニカル指標を描画して ”あなただけのテクニカルチャート” を作成することができます。

また、統計学をベースとした分析や機械学習の分析にも応用できます。

 

今回はローソク足チャートを作成する基本的なコードをご紹介しました。

今後、このブログでは、Pythonを使ったより詳細な分析方法についてもご紹介する予定です。

乞うご期待!


注記事項

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

 

最後に

Pythonを学びたい方へ

今やPythonは、マーケットの分析に限らず、あらゆる分野で使われているプログラミング言語です。

Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。

『私もPythonを学んでみたい!』

という人は以下のリンク先をご覧ください。

プログラミングを学ぼう

 

なぜプログラミングを学ぶ必要があるのか?その理由がわかります。

そして『これがPythonを効率的に学ぶ方法だ!』と、ジェイが自信をもっておすすする効率的な学習方法もわかります。

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

-Pythonコード集