2
votes

Comment obtenir des données financières historiques pour l'analyse de données en Python?

J'ai besoin d'obtenir des données boursières à l'aide de pandas DataReader pour les banques suivantes:

import numpy as np
import pandas as pd
from pandas_datareader import data, wb
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import requests
import io
%matplotlib inline

import datetime
start = datetime.datetime(2006,1,1)
end = datetime.datetime(2016,1,1)

# Bank of America
BAC = data.DataReader("BAC",'ff', start, end)

Comment obtenir les données boursières du 1er janvier 2006 au 1er janvier 2016 pour chacune de ces banques. p>

J'ai essayé ...

    Bank of America
    CitiGroup
    Goldman Sachs
    JPMorgan Chase
    Morgan Stanley
    Wells Fargo


0 commentaires

3 Réponses :


2
votes

Votre problème est avec la source que vous utilisez pour récupérer les données avec Datareader. Il ne semble pas que 'ff' corresponde à une API acceptée.

J'ai essayé et cela fonctionne:

import pandas_datareader.data as web
from datetime import datetime

start = datetime(2016, 9, 1)
end   = datetime(2018, 9, 1)

f = web.DataReader('BAC', 'iex', start, end)
print(f)

Aussi , jetez un œil à la documentation officielle pandas-datareader , il y a plein d'exemples.


0 commentaires

0
votes

Voici la méthode que je trouve très fiable contrairement aux autres, je ne l'utilise que pour analyser et cela ne m'a jamais déçu. (De plus, la plage de dates pour les données disponibles est très étendue, comme dans l'exemple ci-dessous)

from datetime import datetime
start = datetime(2006, 2, 9)
end = datetime(2018, 5, 24)
#Bank Of America
BAC = data.DataReader('BAC', 'yahoo', start, end)


0 commentaires

1
votes

Une autre solution que vous pouvez essayer est investpy qui est un package Python pour l'extraction de données historiques depuis divers produits financiers du monde entier d'Investing.com. Il n'a aucune limitation, aucune clé API nécessaire et il est totalement gratuit puisqu'il s'agit d'un projet open-source.

Ici, je vous présente un morceau de code afin de récupérer les données historiques de stock des 9 dernières années des actions que vous demandé ci-dessus:

import investpy

stocks = ['Bank of America', 'CitiGroup', 'Goldman Sachs', 'JPMorgan', 'Morgan Stanley', 'Wells Fargo&Co']

for stock in stocks:
    print(investpy.search_stocks(by='name', value=stock))

J'espère que cela vous a aidé! Et je vous encourage également à utiliser investpy final!


Notez que les fonctions de récupération des données boursières investpy prennent comme paramètre d'entrée à la fois le symbole boursier et le pays d'où le le stock spécifié est. Ainsi de suite, comme votre entrée concernait les noms d'actions, vous devrez effectuer une recherche sur les données d'investpy afin de récupérer le symbole des noms d'actions que vous avez introduits, cela pourrait être fait comme suit:

import investpy

stock_symbols = ['BAC', 'C', 'GS', 'JPM', 'MS', 'WFC']

for stock_symbol in stock_symbols:
    df = investpy.get_stock_historical_data(stock=symbol,
                                            country='united states',
                                            from_date='01/01/2010',
                                            to_date='01/01/2019')
    print(df.head())

Le code ci-dessus imprimera tous les stocks trouvés qui correspondent totalement ou partiellement au nom introduit.


0 commentaires