web-dev-qa-db-fra.com

Comment puis-je télécharger des données boursières avec Python?

J'ai installé pandas-daatreader, mais les API Google et Yahoo pour télécharger les données historiques des cours boursiers sont obsolètes.

import pandas_datareader.data as web
start_date = '2018-01-01'
end_date = '2018-06-08'
panel_data = web.DataReader('SPY', 'yahoo', start_date, end_date)

ImmediateDeprecationError: 
Yahoo Daily has been immediately deprecated due to large breaks in the API without the
introduction of a stable replacement. Pull Requests to re-enable these data
connectors are welcome.

See https://github.com/pydata/pandas-datareader/issues

Pourriez-vous me dire comment accéder aux cours historiques des actions en utilisant Python? En fait, je serais intéressé à obtenir des prix aussi bas que possible pendant que je fais des recherches.

Merci.

8
user8270077

Yahoo Finance est l'une des sources gratuites pour obtenir des données boursières. Vous pouvez obtenir les données en utilisant pandas datareader ou en utilisant la bibliothèque yfinance. La méthode pour obtenir des données de la bibliothèque yfinance est indiquée ci-dessous.

# Import the yfinance. If you get module not found error the run !pip install yfiannce from your Jupyter notebook
import yfinance as yf
# Get the data of the stock AAPL
data = yf.download('AAPL','2016-01-01','2019-08-01')
# Import the plotting library
import matplotlib.pyplot as plt
%matplotlib inline
# Plot the close price of the AAPL
data['Adj Close'].plot()
plt.show()

Quandl Wiki est l'une des sources gratuites disponibles sur Quandl pour obtenir les données des 3000+ actions américaines. Il s'agit de données gérées par la communauté. Récemment, il a cessé d'être maintenu, mais c'est une bonne source gratuite pour tester vos stratégies. Pour obtenir les données, vous devez obtenir la clé API gratuite de quandl et remplacer le dans le code ci-dessous par votre clé API.

# Import the quandl package
import quandl
# Get the data from quandl
data = quandl.get("WIKI/KO", start_date="2016-01-01", end_date="2018-01-01", api_key=<Your_API_Key>)
# Plot the close pr
import matplotlib.pyplot as plt
data.Close.plot()
# Show the plot
plt.show()

Remarque: Quandl nécessite NumPy (v1.8 ou supérieur) et pandas (v0.14 ou supérieur) pour fonctionner. Pour obtenir votre clé API, inscrivez-vous pour un compte Quandl gratuit. Ensuite, vous pouvez trouver votre clé API sur la page des paramètres de compte Quandl.

Obtenez des données pour plusieurs actions

# Define the ticker list
import pandas as pd
tickers_list = [‘AAPL’, ‘WMT’, ‘IBM’, ‘MU’, ‘BA’, ‘AXP’]
# Import pandas
data = pd.DataFrame(columns=tickers_list)
# Fetch the data
import yfinance as yf
for ticker in tickers_list:
 data[ticker] = yf.download(ticker, ‘2015–1–1’, ‘2019–1–1’)[‘Adj Close’]
# Print first 5 rows of the data
data.head()

# Plot all the close prices
((data.pct_change()+1).cumprod()).plot(figsize=(10, 7))
# Show the legend
plt.legend()
# Define the label for the title of the figure
plt.title(“Adjusted Close Price”, fontsize=16)
# Define the labels for x-axis and y-axis
plt.ylabel(‘Price’, fontsize=14)
plt.xlabel(‘Year’, fontsize=14)
# Plot the grid lines
plt.grid(which=”major”, color=’k’, linestyle=’-.’, linewidth=0.5)
plt.show()

Si vous regardez un niveau minute ou des données fondamentales, alors la page this peut être utile.

4
Ishan Shah

Voir ci-dessous. Le code est écrit en Python 2.7, mais devrait fonctionner en 3.5 lorsque vous remplacez la fonction d'impression. Assurez-vous que lorsque vous copiez l'espacement est correct dans votre éditeur: un onglet est de 4 espaces, etc.

# pip install datareader
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
import pandas_datareader.data as web
import matplotlib.pyplot as plt
import numpy as np

from datetime import datetime, timedelta

#stock of interest
stock=['MSFT','SAP','V','JPM']

# period of analysis
end = datetime.now()
start = end - timedelta(days=500)

for i in range(len(stock)):
    f = web.DataReader(stock[i], 'morningstar', start, end)

    # Nice looking timeseries (DataFrame to panda Series)
    f = f.reset_index()
    f = pd.Series(f.Close.values,f.Date)

    print "Start: Year, Month, Day, Time"
    print str(start)
    f.plot(label=stock[i]);
    plt.legend()
    plt.ylabel('price in [USD]')

plt.show();
2
Maik Holzhey

Vous pouvez également utiliser quandl, mais vous devez vous inscrire et obtenir votre propre clé API. Je ne sais pas si l'une des API financières gratuites qui ont bien fonctionné avec le webreader pandas fonctionne toujours de manière fiable et efficace ...

# pip install datareader
import pandas as pd
pd.core.common.is_list_like = pd.api.types.is_list_like
# quandl api explore
import quandl
from datetime import datetime, timedelta
import matplotlib.pyplot as plt
# api instructions
quandl.ApiConfig.api_key = "YOUR_API_KEY"
end = datetime.now()
start = end - timedelta(days=365)
# frankfurt stock exchange
mydata2 = quandl.get('FSE/VOW3_X', start_date = start, end_date = end)
f = mydata2.reset_index()
# timeseries
plt.figure(1)
f = pd.Series(f.Close.values,f.Date)
f.plot()
plt.show()
1
Maik Holzhey