Pythonで株価データを取得し、CSVファイルに保存する方法

Python
スポンサーリンク

こんにちはーーー

今回の記事では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))]

以上になります!

コメント

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