Pythonコード集

【Pythonコード集】爆速でローソク足チャートをつくってみよう!

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

ここでは、PythonとYahoo!finace USのデータを使って、以下のような株価のローソク足チャートをつくってみます。

今回のゴール

今回は、ダウ平均のチャートをPythonで作成します。

Pythonチャート

Pythonで作成

しかも、カーソルを合わせれば価格データが自動的に表示されたり、画面をクーロズアップしたりロングショットにしたりできるー

今回のポイント

動的なチャート

をつくります。

そして最後のまとめでは、今回ご紹介するPythonコードを一気にご紹介します。

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

 

この記事の対象となる人

こんな人におすすめ

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

この記事でわかること

わかること

  • Pythonを使えば、簡単に株価のローソク足チャートがつくれます
  • Pythonを使えば、簡単に動的なチャートがつくれます
  • Pythonの効率的な学習方法がわかります

 


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

 

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

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

 

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


 

Pythonコード

ステップ1:ライブラリのインポート

Pythonコード

import pandas as pd
import yfinance as yf
import datetime

import plotly.graph_objs as go


コードの解説

▷import pandas as pd
Python版のエクセルの『pandas』をインポート

 

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

 

▷import datetime
日付や日時を設定するライブラリ『datetime』をインポート

 

import plotly.graph_objs as go ☆
このコードが、今回の記事の重要ポイントです。

Plotly

可視化ライブラリの『Plotly』を使えば、動的なチャートがつくれる

Pythonには『matplotlib』『seaborn』といった、データを可視化するためのライブラリがあります。

その中でも今回使う『Plotly』は、動的なチャートを作る時によく使われる可視化ライブラリです。

基本的な書き方はー

書き方

plotly.graph_objs

となります。

今回は、最後に『as go』を付けて、『go』として簡単に呼び出せるようにしました。

 

 

ステップ2:株価データの取得

さて、ライブラリのインポートが終わったら、次は株価データの取得です。

今回は、今年に入ってから上昇トレンドにある『ダウ平均』の株価を取得します。

ティッカーコードは『^DJI』です。

Pythonコード

df = yf.download(tickers='^DJI',
                 start='2021-01-01',
                 end=datetime.date.today() ,
                 auto_adjust=True, 
                 interval='1d')

 

コードの解説

▷yf.download
上のように書くことで、価格データを取得することができます。

ポイントはカッコの引数です。

yfinanceの引数

  • tickers:ティッカーコードを指定
  • start:最初のデータ取得日を指定
  • end:最後のデータ取得日を指定
  • auto_adjust:Trueにすると調整済み終値を取得
  • interval:時間軸を指定

tickersには、Yahoo!finance USのティッカーコードを設定します。
例:アップルならAAPL、アマゾンならAMZN、ネットフリックスならNFLX

 

startendは、日付で直接指定してもOKです。
その場合は文字型になるので、必ず『' '』『" "』で日付をくくりましょう。

また、今回のように『datetime』関数で指定してもOKです。

 

auto_adjustは、調整済みの終値を取得する場合に使用します。

『True』にすると取得できます。

 

intervalは、データの時間軸を設定します。
今回は日足のデータを取得するので『1d』としました。

その他の時間軸としてはー『5d,1 mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max』があります。

 

ステップ3:チャートの作成

さて、いよいよチャートの作成に入ります。

冒頭でも言いましたが、今回は可視化ライブラリ『Plotly』を使います。

Pythonコード

fig = go.Figure(go.Candlestick(x=df.index,
                       open = df['Open'],
                       high = df['High'],
                       low = df['Low'],
                       close = df['Close']), 
                        layout_title_text='Dow Chart')

fig.update_layout(width=800, height=700)

fig.update(layout_xaxis_rangeslider_visible = True)
fig.show()

 

コードの解説

▷go.Figure(go.Candlestick)
まずは、上のようにコードを書いてチャートの土台を設定します。
『Candlestick』『ローソク足』となります。

設定したチャートの土台を変数『fig』に入れます。

ポイントは、カッコの中の引数です。

Candlestickの引数

  • x:インデックス(x軸)を設定
  • open:始値を設定
  • high:高値を設定
  • low:安値を設定
  • close:終値を設定
  • layout_title_text:チャートのタイトルを設定

x軸の設定にご注意!

上の引数の中で一番つまずきやすいのが、最初の『x』かもしれません。

今回のように日付のデータをインデックスとして設定している場合は、『x=df.index』とします。

こうすることで、価格データを入れた変数『df』のうち、『index(日付のデータ)』だけをx軸に設定して、という意味になるからです。

 

『open, high, low, close』はいわゆる『四本値』といわれ、ローソク足を構成する基本的な部分です。

価格データを入れた変数『df』から、該当する箇所を[ '設定したい項目のカラム名' ]というかたちで設定するだけです。

 

一番最後の『layout_title_text』は、チャートのタイトルを設定するコードとなります。

 

▷fig.update_layout(width=800, height=700)
チャートのサイズを設定する時は、『update_layout』を使います。

チャートデータを入れた変数『fig』『update_layout』をくっつけます。

チャートのサイズ

  • width:チャートの横幅を設定
  • height:チャートの縦幅を設定

 

▷fig.update(layout_xaxis_rangeslider_visible = True)
価格チャートの下にある『レンジスライダー』を表示するコードです。

レンジスライダー

レンジスライダー

update(layout_xaxis_rangeslider_visible)は公式みたいなものです。

書いていくうちに覚えます。

レンジスライダーの設定

  • True:レンジスライダーの表示
  • False:レンジスライダーの非表示

 

▷fig.show()
最後に『show」関数を書くことで、チャートが描画されます。

 

結果

Pythonチャート

 

レンジスライダー

ちなみにレンジスライダーを動かすと、チャートのクローズアップ / ロングショットができます。

Pythonチャート

 

 

 

Pythonは挑戦する価値あり!

このようにPythonを使えば、簡単に動的なチャートが作れます。

しかも基本的なコードだけで。

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

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

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

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

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

 

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

Pythonを学ぼう

 

この記事を読んでくださったのも何かの縁です。

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

 

まとめ

今回は、Plotlyの基本的なコードのみでダウ平均の株価チャートを作成しました。

基本的なコードでここまでできるPlotlyです。

色々学んでいけば、あなただけのオリジナルチャートを作ることだって可能です!

 

最後に今回のコード一覧をご紹介します。

コピペして遊んでみてください!

今回のPythonコード一覧

#ライブラリのインポート
import pandas as pd
import yfinance as yf
import datetime

import plotly.graph_objs as go


#ダウ平均のデータを取得
df = yf.download(tickers='^DJI',
                 start='2021-01-01',
                 end=datetime.date.today() ,
                 auto_adjust=True, 
                 interval='1d')


#ローソク足チャートを作成
fig = go.Figure(go.Candlestick(x=df.index,
                       open = df['Open'],
                       high = df['High'],
                       low = df['Low'],
                       close = df['Close']), 
                        layout_title_text='Dow Chart')


#チャートのサイズを設定
fig.update_layout(width=800, height=700)


#レンジスライダーを表示
fig.update(layout_xaxis_rangeslider_visible = True)


#ローソク足を描画
fig.show()

今回は以上です!


注記事項

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

-Pythonコード集