🐏
【yfinance API解説】 Part4 download他編
前回はClassについて解説したので、今回はFunctionについて解説していきます。
1. yfinance.download()
複数のTickerの情報を一度にダウンロード可能。
・例
yfinance.download("Google")
・引数情報
yfinance.download(tickers, start=None, end=None, actions=False,
threads=True, ignore_tz=None, group_by='column', auto_adjust=True,
back_adjust=False, repair=False, keepna=False, progress=True, period='max',
interval='1d', prepost=False, proxy=None, rounding=False, timeout=10,
session=None, multi_level_index=True) → DataFrame | None
・引数詳細
tickers: str, list
ダウンロードするTickerのリスト
period: str
Valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max
periodを使用するか、start & end を使用するかどちらでも。
interval: str
Valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo
データ取得頻度
start: str
データ取得開始日時。
string型の(YYYY-MM-DD)もしくはdatetime型で指定。デフォルトは99年前。
例えば start="2020-01-01" と指定すると、最初のデータは 2020/01/01 から始まる(inclusive)。
end: str
データ取得終了日時。
string型の(YYYY-MM-DD)もしくはdatetime型で指定。デフォルトは現在。
例えば end=”2023-01-01” と指定すると、最後のデータは “2022-12-31” で終わる。
group_by: str
Group by ‘ticker’ or ‘column’ (default)
prepost: bool
市場開始前、終了後のデータを含むか。デフォルトは False
auto_adjust: bool
自動で全てのOHLC(始値、高値、安値、終値)を調整するか。デフォルトはTrue
back_adjust: bool
取得した過去の株価データに対して、企業の配当や株式分割などのコーポレートアクションの影響を反映させるために、データ全体を後方(バックワード)に調整するオプション。
通常、ticker.history() の auto_adjust=True により、当日の始値・高値・安値・終値は、配当や分割の影響を取り除いた「調整後」価格に変換されます。しかし、back_adjust を True にすると、単にその日の値を調整するだけでなく、過去すべての日付について、最新の株価水準と整合するように全体を一貫した基準で再計算(後方修正)する。
例えば、ある日配当が支払われた場合、実際の市場価格は配当支払い直後に下落しますが、auto_adjust はその日の OHLC 値から配当の影響を除外します。back_adjust を有効にすると、さらに過去のデータにもその配当の影響が均一に反映され、まるで配当金を再投資したかのような「真の」価格推移に近づける効果が期待されます。ただし、この「後方修正」はあくまで疑似的なもので、全ての状況で完璧に実際のリターンや値動きを再現するわけではない。
repair: bool
通貨単位が誤って100倍もしくは1/100になってしまうミスを検出し、修復を試みる。デフォルトはFalse
keepna: bool
Yahooから返されたNaN行をそのまま返すか。デフォルトはFalse
actions: bool
配当金と株式を分割したデータをダウンロードする。デフォルトはFalse
threads: bool / int
大量データをダウンロードするためのスレッドの数を指定。デフォルトはTrueで、この場合自動で設定される。Falseだと並列ダウンロードは行われない。
ignore_tz: bool
異なるタイムゾーンのデータを組み合わせる際に、日時データのタイムゾーン部分を無視するかどうか。
デフォルトは以下:
Intraday(1日の中の短い間隔、例: 1分足や5分足など)の場合: デフォルトは False となり、タイムゾーン情報が考慮される。
Day+(日足以上の間隔、例: 日足、週足、月足など)の場合: デフォルトは True となり、タイムゾーン情報は無視される。
proxy: str
Optional. Proxy server URL scheme. Default is None
rounding: bool
Optional. 値を小数点第2位に丸めるか。
timeout: None or float
この値が None でない場合、指定された秒(0.01など少数も指定可能)だけレスポンスを待ち、時間が経過したら待機を中止する。サーバーなどからの応答が指定時間内に得られない場合、そのリクエストはタイムアウト扱いとなり、無限に待ち続けることを防ぐ。
session: None or Session
Optional. ユーザーが自分で作成したセッションオブジェクトを渡すことで、そのセッションを用いてすべてのリクエストが行われる。これにより、セッション内で設定したカスタムヘッダーや認証情報、接続プールなどの設定が反映され、再利用が可能となる。
・例
-----------------------------------------------------------------
import requests
session = requests.Session()
session.headers.update({'User-Agent': 'my-custom-agent'})
# この session を渡すことで、以降のリクエストはカスタム設定が反映される
some_function(timeout=5, session=session)
-----------------------------------------------------------------
multi_level_index: bool
Optional. 常に MultiIndex DataFrame を返すか。 デフォルトはTrue
2. yfinance.enable_debug_mode()
エラー以外のデバッグ情報やログなどを確認できるデバッグモードを有効にする。
・例
yfinance.enable_debug_mode()
3. set_tz_cache_location()
タイムゾーン情報のキャッシュ(再利用可能なデータ)の保存先ディレクトリを設定する。
・例
# set_tz_cache_location(cache_dir)
set_tz_cache_location(root/cache)
タイムゾーンのデータは、日時の変換やタイムゾーンに関する処理で必要となる。
このデータを毎回インターネットから取得するのではなく、一度取得したデータをキャッシュとして保存しておくことで、以降の処理を高速化し、不要なネットワーク通信を減らすことができる。
Discussion