Yahoo Financeからの株価データ取得は，pdr_overrideせず，downloadで良いんじゃない？

# 背景・目的
量子コンピュータ（疑似量子コンピュータを含む）技術の発展により，益々High Frequency Trading（HFT）が盛り上がってくると思われます．一方で，個人投資家はとてつもないリソースを使うことは困難です．そのため，手軽に（できればお金をかけずに）得られる情報から金脈を発見する必要があります．
例えば，pandas-datareaderを用いることで米国版Yahoo FinanceやStooqから株価データ，Federal Reserve Economic Data（FRED）などから経済的なデータを取得可能です．このように無料のツールでもある程度の情報取得は可能ですが，ひとつのツールで全て完結！ともいかないのが厄介なところです．

前置きは手短にして・・・
**今回は，特にpandas-datareaderで米国版Yahoo FinanceとFREDから株価と経済的なデータを取得する際に問題となるyf.pdr_override()について簡単に対応方法をまとめました．**


# 問題点と対応策
## 問題点
**yf.pdr_override()を使うと米国版Yahoo Finance以外のデータをpandas-datareaderでダウンロードできなくなります．**
pandas-datareaderでは，チュートリアルに従ってYahoo Financeからデータを取得しようとするとエラーが出ます（やまもと, 2023）．その対応策としてyf.pdr_override()を追加するのですが，これを入れることでYahoo Finance以外のデータを取得できない状態になります．
```Python
import pandas_datareader.data as web
import yfinance as yf

from dateutil.relativedelta import relativedelta
from datetime import date as dt

yf.pdr_override()

df_fred = web.DataReader('DGS2', 'fred', ago)

# 結果
1 Failed download:
['DGS2']: Exception('%ticker%: No timezone found, symbol may be delisted')
```
例えば，FREDのデータを取得しようとすると，このようにエラーメッセージが表示されます．

## 対応策
**対応策としては，株価データ取得にはyf.downloadを使用し，他のデータ取得時にはweb.DataReaderを使用します．**
※このように使い分けなくてもpandas-datareaderでは，Stooqからも株価データは取得可能なのですが，StooqではAdjclose（調整後終値）の値がなく自身で計算する手間がかかります（Tatsu Sekine, 2022）．
```python
import pandas_datareader.data as web
import yfinance as yf

from dateutil.relativedelta import relativedelta
from datetime import date as dt

today = dt.today()
ago = today - relativedelta(years=1)

df_stock = yf.download('7203.T', ago)
df_fred = web.DataReader('DGS2', 'fred', ago)

# 結果 : df_stock
Date        Open	High	Low	    Close	Adj Close	Volume					
2023-04-17	1823.0	1841.5	1822.5	1834.0	1813.978149	18967700
2023-04-18	1844.0	1846.0	1827.5	1833.5	1813.483643	23312400
2023-04-19	1833.0	1836.0	1816.5	1823.0	1803.098267	16859000
2023-04-20	1810.0	1818.0	1796.0	1813.5	1793.702026	21975500
2023-04-21	1790.0	1808.5	1784.0	1802.0	1782.327515	21559900
...	...	...	...	...	...	...
2024-04-10	3750.0	3760.0	3722.0	3740.0	3740.000000	17062700
2024-04-11	3722.0	3795.0	3721.0	3781.0	3781.000000	23458700
2024-04-12	3813.0	3815.0	3755.0	3767.0	3767.000000	21094100
2024-04-15	3721.0	3767.0	3685.0	3767.0	3767.000000	21091500
2024-04-16	3742.0	3753.0	3630.0	3649.0	3649.000000	29226300

# 結果:df_fred
DATE        DGS2	
2023-04-17	4.18
2023-04-18	4.19
2023-04-19	4.24
2023-04-20	4.14
2023-04-21	4.17
...	...
2024-04-08	4.78
2024-04-09	4.74
2024-04-10	4.97
2024-04-11	4.93
2024-04-12	4.88
```

# まとめ
今回は，米国版Yahoo FinanceとFREDから株価と経済的なデータを取得する際に問題となるyf.pdr_override()について簡単にまとめました．結論は，『米国版Yahoo Financeのデータはyf.downloadで，FREDのデータはpandas-datareaderで取得するのが良い』です．もし，他の良い手法などありましたらご教示いただけますと幸いです．


# 参考文献やサイトなど
1. pandas-datareader(Ver. 0.10.0). 2021. https://pandas-datareader.readthedocs.io/en/latest/, accessed on 16 Apr. 2024.
2. Tatsu Sekine. 2022. pythonで株価を取得するstooq版. https://qiita.com/tatsu_sekine/items/e252ea9436a47cda071a, accessed on 16 Apr. 2024.
3. やまもと. 2023. pandas-datareaderでyahooファイナンスのデータを取得する方法. https://knowledge-bridge.info/technology/statistics/3654/, accessed on 16 Apr. 2024.
4. 上脇優人. 2024. S＆P500とは？（用語解説とデータ取得方法）. https://finsoken.com/a-0001/, accessed on 16 Apr. 2024.