📜  如何在Python下载历史股票价格?

📅  最后修改于: 2022-05-13 01:55:26.928000             🧑  作者: Mango

如何在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()

输出: