import yfinance as yf
import matplotlib.pyplot as plt
from datetime import timedelta
# 定义要获取数据的股票代码
symbols = ['GC=F', 'BTC-USD', '^IXIC', '^GSPC'] # 黄金、纳斯达克指数、标普500指数
# 获取每只股票的最早时间和最新数据的日期
start_dates = []
end_dates = []
for symbol in symbols:
ticker = yf.Ticker(symbol)
history = ticker.history(period='max')
start_dates.append(history.index[0])
end_dates.append(history.index[-1])
# 设置start和end为每只股票的最早时间和最新数据的日期
start = max(start_dates).strftime('%Y-%m-%d')
end = min(end_dates).strftime('%Y-%m-%d')
# 获取数据
data = yf.download(symbols, start=start, end=end)['Close']
# 绘制可视化图表
data.plot(subplots=True, figsize=(10, 8))
plt.legend(loc='best')
plt.show()
end = min(end_dates).strftime('%Y-%m-%d')
start = (min(end_dates) - timedelta(days=7)).strftime('%Y-%m-%d')
# 获取数据
data = yf.download(symbols, start=start, end=end)['Close']
# 绘制可视化图表
data.plot(subplots=True, figsize=(10, 8))
plt.legend(loc='best')
plt.show()
分别爬取历年数据和最近一周数据,将symbols里的股票更改可以改成自定义的股票。