如何在Python下载历史股票价格?
股票价格是指该股票的当前价格。股票价格在机器学习领域被广泛用于回归问题的演示。股票预测是机器学习的一种应用,我们通过查看其过去的数据来预测特定公司的股票。现在构建类似这样的东西的第一步是获取我们的历史库存数据。
我们可以使用在Python作为库支持提供的 API 来获取我们的历史股票数据。下面提到了一些 API:
- 雅虎财经
- Pandas 数据读取器
- 昆德尔
方法:
每种方法都使用不同的Python模块,但它们具有相似的过程结构,包括以下步骤:
1.导入需要的库
- 我们正在使用 datetime 模块来获取所需股票数据的起止日期。
- 我们使用 matplotlib 模块以图形格式显示提取的数据。
2.初始化获取该时间段股票数据的起止日期。
3.使用每个模块中提供的专用功能获取数据。
4.使用 matplotlib 库显示数据。我们使用 plot()函数以图形格式绘制数据。
方法一:使用雅虎财经
我们可以使用 yfinance 模块中提供的yfinance.download()函数获取股票,该模块是 Yahoo 财务 API 的模块。我们可以使用以下命令下载模块。
pip install yfinance
我们需要在 yfinance.download()函数提供 3 个必需的参数,它们是
- 股票代码
- 开始日期
- 结束日期
下面是实现。
Python3
# import modules
from datetime import datetime
import yfinance as yf
import matplotlib.pyplot as plt
# initialize parameters
start_date = datetime(2020, 1, 1)
end_date = datetime(2021, 1, 1)
# get the data
data = yf.download('SPY', start = start_date,
end = end_date)
# display
plt.figure(figsize = (20,10))
plt.title('Opening Prices from {} to {}'.format(start_date,
end_date))
plt.plot(data['Open'])
plt.show()
Python3
# import modules
from pandas_datareader import data as pdr
import matplotlib.pyplot as plt
# initializing Parameters
start = "2020-01-01"
end = "2021-01-01"
symbols = ["AAPL"]
# Getting the data
data = pdr.get_data_yahoo(symbols, start, end)
# Display
plt.figure(figsize = (20,10))
plt.title('Opening Prices from {} to {}'.format(start, end))
plt.plot(data['Open'])
plt.show()
Python3
# import modules
import quandl
from datetime import datetime
import matplotlib.pyplot as plt
# initialize parameters
start = datetime(2015, 1, 1)
end = datetime(2020, 1, 1)
# get the data
df = quandl.get('NSE/OIL', start_date = start,
end_date = end,
authtoken = 'enter_your_api_key')
# display
plt.figure(figsize=(20,10))
plt.title('Opening Prices from {} to {}'.format(start, end))
plt.plot(df['Open'])
plt.show()
输出:
方法二:使用 Pandas DataReader
另一种获取历史股票数据的方法是使用 pandas_datareader 库。它还使用雅虎的财务 API 来加载数据。我们可以使用以下命令下载模块。
pip install pandas_datareader
它还需要类似的三个字段来加载数据
- 股票代码
- 开始日期
- 结束日期
下面是实现:
蟒蛇3
# import modules
from pandas_datareader import data as pdr
import matplotlib.pyplot as plt
# initializing Parameters
start = "2020-01-01"
end = "2021-01-01"
symbols = ["AAPL"]
# Getting the data
data = pdr.get_data_yahoo(symbols, start, end)
# Display
plt.figure(figsize = (20,10))
plt.title('Opening Prices from {} to {}'.format(start, end))
plt.plot(data['Open'])
plt.show()
输出:
方法 3:使用 Quandl
Quandl 拥有数百个免费和付费数据源,涵盖股票、固定收益、商品、汇率等。为了获得访问权限,我们需要在 Quandl 上创建一个帐户并获得一个 API Key 以免费访问数据。之后,我们需要使用以下命令下载Python的API支持quandl库。
pip install quandl
我们将使用quandl.get()函数来获取数据。加载数据需要四个字段
- 象征
- 开始日期
- 结束日期
- 身份验证令牌
下面是实现:
蟒蛇3
# import modules
import quandl
from datetime import datetime
import matplotlib.pyplot as plt
# initialize parameters
start = datetime(2015, 1, 1)
end = datetime(2020, 1, 1)
# get the data
df = quandl.get('NSE/OIL', start_date = start,
end_date = end,
authtoken = 'enter_your_api_key')
# display
plt.figure(figsize=(20,10))
plt.title('Opening Prices from {} to {}'.format(start, end))
plt.plot(df['Open'])
plt.show()
输出: