179
229

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonで東証から株価をAPI取得して、データをChartに表示させる

Last updated at Posted at 2018-11-02

はじめに

めざせ不労所得!目指せ億り人!目指せ、現代のゴールドラッシュ!
という前置きはさておき、普段はPythonでプログラムを書いています。

株価を取得して、機械学習して、株価予測のプログラムなり、Webサービスってできないかな?
と業務中に思い立ちました(パチパチ)

さらっと調べて、とりあえず株価をAPIでとってグラフ表示するまではできたので、
メモ程度にQiitaに置いときます。

今後は機械学習ライブラリと組み合わせてデータを予測対象とする予定。
webアプリ化なども検討か。。?

まずはグラフ表示

こんな感じ

persol_stock_ave.png

ソースコード

以下で動きます。

chart.py
import quandl
import pandas as pd
import  matplotlib.pyplot as plt

quandl_data = quandl.get("TSE/2181")
quandl_data.to_csv('Persol Data.csv')

stock = pd.read_csv('Persol Data.csv')

stock['100MA'] = stock['Close'].rolling(window = 100, min_periods=0).mean()
stock['200MA'] = stock['Close'].rolling(window = 200, min_periods=0).mean()

fig = plt.figure()

axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])

axes.plot(stock['Close'][-365:], 'black', lw = 1)
axes.plot(stock['100MA'][-365:])
axes.plot(stock['200MA'][-365:])
axes.set_xlabel('Time')
axes.set_ylabel('Price')
axes.set_title('Persol Holdings(2181) 1 Year')
axes.legend()

plt.show()

ライブラリについて

  • API取得先:quandl
  • データ保存・整形:pandas
  • データ表示:matplotlib

Quandlについて

Quandlは、世界の金融情報や統計情報をまとめているサイトです。
大きな特徴として、各種情報を取得するためのPythonやRubyのAPIを提供しており、しかもかなりの部分を無料で使用することができます。
日本の金融関係のサービスではAPIを提供しているものは少なく、あったとしても有料であることがほとんどです。

Quandlで取得できる情報の大部分は外国株式や海外の統計情報ですが、実は日本株も取得する事ができます。
東証がデータを提供していて、API経由で東証のデータ(日経平均や各種日本株式)を取得できます。

QuandlからAPI経由でデータを取得する前準備として、APIキーを発行する必要があります。Quandlのサイトで無料会員登録を行い、事前にAPIキーを入手してください。

179
229
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
179
229

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?