プログラミング

pythonで株価取得してみた

更新日:

最近巷でよく耳にする言語python。いざさわってみるといろんなことができて便利。使いこなさないと損だと気が付いた。

今回は株のチャート表示をpythonで作成してみた。

どうやって株価を取得するの?

Yahoo! Finance APIを使用すると株価データが取得できる。

https://pypi.org/project/yahoo-finance-api2/

APIリファレンス – pypi.org

いつの株価が取得できるの?

当日は15分遅れの株価が取得できる。残念ながらリアルタイム値は取得できない。

過去のデータについては数十年前の株価も取得できるらしい。(まだ未確認)

 

作成

まずはYahoo! Finance APIのライブラリをインストールする。

pip install yahoo-finance-api2

 

2日分の株価のチャートを作成する。ここでは表示する銘柄はJALとする。

import sys
from yahoo_finance_api2 import share
from yahoo_finance_api2.exceptions import YahooFinanceError
from pandas_datareader import data
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

def company_stock(period_type, period, company_code):
    my_share = share.Share(company_code)
    symbol_data = None

    try:
        symbol_data = my_share.get_historical(share.PERIOD_TYPE_DAY,
                                            period_type,
                                            share.FREQUENCY_TYPE_MINUTE,
                                            period)
    except YahooFinanceError as e:
        print(e.message)
        sys.exit(1)

    from datetime import datetime, timezone, timedelta

    date = symbol_data["timestamp"]

    old_date = date[0]
    now_date = date[len(date) - 1]

    old_time = datetime.fromtimestamp(old_date/1000)
    now_time = datetime.fromtimestamp(now_date/1000)

    price = symbol_data["close"]
    old_price = price[0]
    now_price = price[len(date) - 1]
    print(str(old_time) + "の時の株価: " + str(old_price))
    print(str(now_time) + "の時の株価: " + str(now_price))

    df = pd.DataFrame(symbol_data.values(), index=symbol_data.keys()).T
    df.timestamp = pd.to_datetime(df.timestamp, unit='ms')
    df.index = pd.DatetimeIndex(df.timestamp, name='timestamp').tz_localize('UTC').tz_convert('Asia/Tokyo')

    plt.title(company_code, color='black', size=15, loc='center') # title(タイトル, 線の色, 背景色, フォントサイズ, タイトル位置)
    plt.plot(df.index, price, label='close', color='blue')

    plt.show()

plt.figure(figsize=(10 ,5))

import time

company_stock(2, 1, '9201.T')

出力結果

2020-08-11 09:03:00の時の株価: 1914.5
2020-08-12 14:59:00の時の株価: 1984.0

無事にJALのチャートが表示されました。

株、上がってきちゃったな。買い時逃したかも。。。

-プログラミング
-

Copyright© Yoko-News , 2024 All Rights Reserved Powered by STINGER.