PythonRecommend

Pythonによる株価のスクレイピングとグラフ化(ローソク足チャート化)の方法

Python

Pythonによる株価のスクレイピングの方法を解説します。またスクレイピングしたデータで、ローソク足チャートの作成方法を解説します。ローソク足チャートは、日足、週足、月足の方法を解説します。

環境

Anacondaをインストールして、Jupyternotebookで実行します。環境構築の方法は以下の記事を参考ください。

スクレイピングの方法

スクレイピングには以下の方法を用います。

  • pandas_datareader.data

pandas_datareaderのインストール方法

以下をの場合は、Windowsコマンドプロンプトで、Macの場合はターミナルで入力してください。

pip install pandas-datareader

pandas_datareaderによるスクレイピングの方法

以下のコードでスクレイピング可能です。

  • importで使用するライブラリを呼び出します。
  • 変数nowに現在の日付をdatetime型で代入します。
  • startendから365日前の日付をdatetime型で代入します。
  • pdr.DataReader(str(code)+'.jp', 'stooq', start, end)で、指定したコードの株価を取得することができます。
  • kabukaget_kabukaで取得した株価データを代入します。
import pandas_datareader.data as pdr
import datetime
import pandas as pd

#現在から、指定の日付までの株価を取得する場合
now = datetime.date.today()
end = now
start = end - datetime.timedelta(days=365)#365日分取得
code = 7751#銘柄のコードを入力ください。7751はキヤノン

#株価取得を関数化
def get_kabuka(code,start,end):
    pd_data = pdr.DataReader(str(code)+'.jp', 'stooq', start, end)
    return pd_data

kabuka = get_kabuka(code,start,end)
kabuka = kabuka.iloc[::-1]

出力結果

open,High,Low,Close,Volumeが格納されていますね。

  • Open:始値
  • High:高値
  • Low:安値
  • Close:終値
  • Volume:取引量
kabuka.head()

ローソク足チャートの作成方法(日足)

ローソク足チャートの作成には以下の方法を用います。

  • mplfinance

mplfinanceのインストール方法

以下をの場合は、Windowsコマンドプロンプトで、Macの場合はターミナルで入力してください。

pip install mplfinance

mplfinanceによるローソク足チャートの作成方法

以下のコードでローソク足チャートの作成が可能です。

  • importで使用するライブラリを呼び出します
  • mpf.plot()でローソク足チャートの作成します
  • figratioでローソク足チャートとボリュームの画角サイズの比率を決定します
  • volume=Trueでボリュームを表示
  • mav=(5, 25,75)で5,25,75で移動平均線を引く
  • style='yahoo'でyahooスタイルで表示
import mplfinance as mpf
import matplotlib.pyplot as plt
%matplotlib inline
#ローソク足チャートを作成する
mpf.plot(kabuka, type='candle', figratio=(12,4),
         volume=True, mav=(5, 25,75), style='yahoo')

出力結果

綺麗なローソク足チャートを描くことができます。

ローソク足チャートの作成方法(週足、月足)

ローソク足チャートの作成方法(週足)

以下で、計算に必要なパラメータの名前に変更します。

d_ohlcv = {'Open': 'first',
'High': 'max',
'Low': 'min',
'Close': 'last',
'Volume': 'sum'}

  • resample('W-MON', closed='left', label='left').agg(d_ohlcv)で週足データに変換
#週足
d_ohlcv = {'Open': 'first',
           'High': 'max',
           'Low': 'min',
           'Close': 'last',
           'Volume': 'sum'}
kabuka_w = kabuka.resample('W-MON', closed='left', label='left').agg(d_ohlcv)

ローソク足チャートの作成方法(月足)

  • resample('M', closed='left', label='left').agg(d_ohlcv)で月足データに変換
#月足
d_ohlcv = {'Open': 'first',
           'High': 'max',
           'Low': 'min',
           'Close': 'last',
           'Volume': 'sum'}
kabuka_m = kabuka.resample('M', closed='left', label='left').agg(d_ohlcv)
mpf.plot(kabuka_m, type='candle', figratio=(12,4),
         volume=True, mav=(5, 25,75), style='yahoo')

出力結果

ローソク足チャートの作成方法(週足)

ローソク足チャートの作成方法(週足)

ローソク足チャートの作成方法(月足)

ローソク足チャートの作成方法(月足)

もっとスクレイピングを学びたい方

本でスクレイピングを学ぶ方法

スクレイピングをもっと学びたい方は以下の本がおすすめです。

https://amzn.to/3qk54R2

Udemyでスクレイピングを学ぶ方法

>>Udemyのスクレイピングおすすめ講座<<

コメント

  1. […] Pythonによる株価のスクレイピングとグラフ化(ローソク足チャート化)の方法Pythonによる株価のスクレイピングの方法を解説します。またスクレイピングしたデータで、ローソク足チャ […]

  2. […] Pythonによる株価のスクレイピングとグラフ化(ローソク足チャート化)の方法Pythonによる株価のスクレイピングの方法を解説します。またスクレイピングしたデータで、ローソク足チャ […]

タイトルとURLをコピーしました