こんにちはーーー
今回の記事ではPythonで株価データを取得し、CSVファイルに保存する方法について説明します。
この記事が誰かの役に立てば幸いです。
(youtubeにも上げています)
プログラム全文
まずはプログラム全文です。
from yahoo_finance_api2 import share from yahoo_finance_api2.exceptions import YahooFinanceError from datetime import datetime import pandas as pd import sys import numpy as np my_share = share.Share('RIDE') symbol_data = None try: symbol_data = my_share.get_historical(share.PERIOD_TYPE_DAY,60, share.FREQUENCY_TYPE_MINUTE,5) except YahooFinanceError as e: print(e.message) sys.exit(1) data = symbol_data['timestamp'] price = symbol_data['close'] op = symbol_data['open'] high = symbol_data['high'] low = symbol_data['low'] volume = symbol_data['volume'] conv_data = [datetime.utcfromtimestamp(int(data[i]/1000)) for i in range(len(data))] data = np.array([conv_data, price,op,high,low,volume]).T data = pd.DataFrame(data) data.to_csv('test_5m.csv', mode='w', header=False, index=False)
ヤフーファイナンスのAPIを使うので、
pip install yahoo-finance-api2
でインストールしておく必要があります。
補足説明
60日間のデータを5分おきに取得したいので、
↓に60,5と記載しておきます。
symbol_data = my_share.get_historical(share.PERIOD_TYPE_DAY,60, share.FREQUENCY_TYPE_MINUTE,5)
日時、終値、始値、高値、低値、ボリュームを↓の変数で定義します。
data = symbol_data['timestamp'] price = symbol_data['close'] op = symbol_data['open'] high = symbol_data['high'] low = symbol_data['low'] volume = symbol_data['volume']
timestampは変換が必要なので、↓で変換しています。
conv_data = [datetime.utcfromtimestamp(int(data[i]/1000)) for i in range(len(data))]
以上になります!
コメント