2
3

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 1 year has passed since last update.

yfinanceでビットコインの時系列データを取得する(1日ごと、1時間ごと)

Last updated at Posted at 2023-03-01

■ 概要

yfinanceを用いて、ビットコインの時系列データを取得します。
取得するデータの取引間隔としては日足と1時間足です。

一連のコードは↓

■ 環境

yfinance : 0.2.12 (Released: Feb 16, 2023)
pandas : 1.3.5

■ 実装

( 1 ) yfinanceのインストール

yfinanceはYahoo非公認API。
使用は研究および教育目的に限る。

!pip install yfinance

( 2 ) データの取得

取得できるデータは
Open(始値)、High(高値)、Low(安値)、Close(終値)、Adj Close(調整後終値)、Volume(出来高)

● 1日ごとのデータ取得

  • tickers : 銘柄
  • start : 取得する期間の始まり
  • end : 取得する期間の終わり
  • period : 期間 ( 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max )
  • interval : 取引間隔 ( 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo )
  • ignore_tz : 異なる取引所からデータを整列するときにタイムゾーンを無視するか
  • prepost : 市場時間前後のデータをダウンロードするか
#yfinanceとpandasをインポート
import yfinance as yf
import pandas as pd

#取得するデータ詳細
name = 'BTC-USD'
start = '2022-01-01'
end = '2023-01-01'

#データのダウンロード
df = yf.download(tickers=name, start=start, end=end)
df.head()
Date Open High Low Close Adj Close Volume
2022-01-01 46311.746094 47827.312500 46288.484375 47686.812500 47686.812500 24582667004
2022-01-02 47680.925781 47881.406250 46856.937500 47345.218750 47345.218750 27951569547
2022-01-03 47343.542969 47510.726562 45835.964844 46458.117188 46458.117188 33071628362
2022-01-04 46458.851562 47406.546875 45752.464844 45897.574219 45897.574219 42494677905
2022-01-05 45899.359375 46929.046875 42798.222656 43569.003906 43569.003906 36851084859

● 1時間ごとのデータ取得

startとendのかわりにperiodにすることができる。

#取得するデータ詳細
name = 'BTC-USD'
period = '1y'
interval = '1h'

#データのダウンロード
df = yf.download(tickers=name, period=period, interval=interval, ignore_tz=True)
df.head()
Date Open High Low Close Adj Close Volume
2022-01-01 00:00:00 46311.746094 46726.558594 46288.484375 46726.558594 46726.558594 0
2022-01-01 01:00:00 46723.667969 46888.292969 46650.351562 46788.546875 46788.546875 56967168
2022-01-01 02:00:00 46798.843750 46914.199219 46792.679688 46830.488281 46830.488281 0
2022-01-01 03:00:00 46836.500000 46861.910156 46800.742188 46833.105469 46833.105469 0
2022-01-01 04:00:00 46831.148438 46878.140625 46703.164062 46778.796875 46778.796875 81956864

( 3 ) データの可視化

● 1日ごとの終値データを表示

df["Close"].plot()

● 時間を指定してみる

datetimeモジュールを使用して時間をする。

import datetime as dt
df[df.index >= dt.datetime(2022, 6, 1)]["Close"].plot()

■ 注意

取引間隔(interval)が短い分だけ、期間(period)が指定される場合がある。
以下のように、periodを3年にすると730日以内と指定される。

name = 'BTC-USD'
period = '3y'
interval = '1h'

#データのダウンロード
df = yf.download(tickers=name, period=period, interval=interval, ignore_tz=True)
df.head()

1 Failed download:
- BTC-USD: 1h data not available for startTime=1583129047 and endTime=1677737047. The requested range must be within the last 730 days.

■ 参考文献

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?