学习过程中,发现yahoo finance不能用了,为了能继续学习,摈弃yahoo,用stooq和tiingo来导入金融股票数据。
stooq:
可以直接用,不需要申请API
代码部分
import pandas_datareader.data as web
all_data = {ticker: web.DataReader(ticker, 'stooq', start='2023-07-10', end='2023-07-20')for ticker in ['AAPL', 'IBM', 'MSFT', 'GOOG']}
#这里直接调用datareader就可以了,前提是要安装pandas,在终端输入pip install pandas升级到最新版本。教材里面用的是AAPL IBM MSFT GOOG四家公司,同样stooq也一样,唯一要注意的是多了开始时间和结束时间。
price = pd.DataFrame({ticker: data['Close']for ticker, data in all_data.items()})
#需要注意的是在不同的股票中,可能命名方式不一样,这时候可以用 for ticker, data in all_data.items(): print(ticker, data.columns) 查看不同的columns
volume = pd.DataFrame({ticker: data['Volume']for ticker, data in all_data.items()})
returns=price.pct_change()
returns.tail()
<