今回は、Pythonを使用して日本株の個別銘柄を対象に株価取得してみたいと思います。
Pythonはオープンソースがあり、必要なモジュールをインポートすることにより、難しいことであってもシンプルなコードで表現できます。ただし、根本的な理解のないまま進めてしまう危険性アリ。
プログラムの作成
モジュールのインポート
Pythonでは先述のとおりモジュールをインポートすることで株価の取得を行なっていきます。
使用するモジュールは以下の4つです。
- pandas_datareader:データの読み込み
- matplotlib:二次元のグラフのウィンドウを作成
- mpl_finance:ローソク足を作成
- numpy:配列の結合
モジュールをpython(anaconda)に導入する方法はコチラを参照↓
株価のデータ取得
次に、サイトから個別銘柄のデータを取得します。
ここが厄介で、現状、日本のサイトから無料でスクリーニングできるものはありません。
そこで、pandas_datareaderを使用することでサポートされているサイトにアクセスし、株価を取得していきます。使用するサイトは東欧の企業が運営しているstooqというサイトです。
現状、日本の個別株を無料でスクリーニングできるのはstooqだけだと思いますが(間違っていたらスミマセン)、日足(最新日の1日前)しか取れないデメリットがあります。
コードの実装
では実際にコードを書いていきます。
まずはモジュールのインポートからです。
from pandas_datareader import data
import matplotlib.pyplot as plt
import mpl_finance as mpf
import numpy as np
from matplotlib.dates import date2num
from (モジュールの中の機能) import (モジュール名) as (コード内でモジュールを呼び出す名前)
といった形で記載します。
次に株価を取得していきます。ここでは例としてアンリツの株価を取得してみることとします。
書き方としては、2行目のカッコ内にて「銘柄番号.JP」と入力します。
stockname='ANRITSU'
df=data.DataReader('6754.JP','stooq')
df=df.sort_index()
date=df.index
これにより、株価データを取得できました。取得したデータは、「始値、高値、安値、終値、出来高」の5つです。
最後にデータをプロットしていきます。
xdate=[x for x in df.index]
ohlc=np.vstack((date2num(xdate),df.values.T)).T
fig=plt.figure()
ax=plt.subplot()
mpf.candlestick_ohlc(ax,ohlc,width=0.7,colorup='r',colordown='b')
ax.grid()
ax.set_xlim(df.index[-100].date(),df.index[-1].date())
fig.autofmt_xdate()
plt.ylim(2000,3000)
plt.ylabel('Stock Price[yen]')
plt.show()
mpf.candlestick_ohlcによってローソク足チャートを作成できます。
あとはグラフが見やすいように軸の範囲や軸名を記入していきます。
以上でデータ取得及びグラフ作成が完了しました。
コード実行結果
下にコード実行結果を示します。上手くローソク足チャートが描けました!赤色が上昇時、青色が下落時を示しています。コードの調整によって分足、時間足、日足、週足、月足好きなものを描けるため、要求に応じて変更できます。
まとめ
今回は株価の取得をPythonにて実施しました。
pandasを用いてデータ取得はできましたが、最新日の株価が反映されないので、何か他のものと組合わせてデータ取得する必要がありそうです!
コメントを残す