Récupération de données financières en Python

En Python, pour effectuer une analyse quantitative, vous devez d'abord obtenir des données financières. Il existe plusieurs bibliothèques en Python qui peuvent être utilisées pour récupérer des données du marché financier.

La bibliothèque utilisée pour les exemples sur ce site estyfinance。

Installez comme suit :

pip install yfinance

yfinanceUtilisation de la bibliothèqueyf.download()La fonction de téléchargement des données financières.

Voici son format de syntaxe de base :

yf.download(tickers, start=None, end=None, actions=False, threads=True)

Description des paramètres :

tickers:

  • Description :Le code de l'instrument financier (action, indice, fonds, etc.) pour lequel télécharger des données.
  • Type :Chaîne (code unique) ou liste (codes multiples).
  • Exemple : "AAPL"、["AAPL", "GOOGL"]。

start:

  • Description :La date de début pour le téléchargement des données.
  • Type :String (format de date : "YYYY-MM-DD").
  • Valeur par défaut :None, ce qui signifie commencer à partir de la date disponible la plus ancienne.
  • Exemple : "2020-01-01"。

end:

  • Description :La date de fin pour le téléchargement des données.
  • Type :String (format de date : "YYYY-MM-DD").
  • Valeur par défaut :None, ce qui signifie se terminer à la date disponible la plus récente.
  • Exemple : "2022-01-01"。

actions:

  • Description :Indique s'il faut inclure les dividendes en actions, les fractionnements d'actions et d'autres informations.
  • Type :Boolean.
  • Valeur par défaut : False.
  • Exemple : actions=True。

threads:

  • Description :Indique s'il faut utiliser le multithreading pour télécharger les données.
  • Type :Boolean.
  • Valeur par défaut : True.
  • Exemple : threads=False。

Dans yfinance, les codes boursiers des actions A chinoises doivent avoir le suffixe de la bourse ajouté. Le suffixe pour la Bourse de Shanghai (SSE) est.SS, et le suffixe pour la Bourse de Shenzhen (SZSE) est.SZ。

Voici un exemple simple utilisantyfinancepour récupérer les données boursières de Kweichow Moutai (600519.SS) :

Exemple

import yfinance as yf

# Bourse de Shanghai, code boursier de la société Moutai
symbol = "600519.SS"

# Ou, Bourse de Shenzhen, code boursier de la société Luzhou Laojiao
# luzhou_laojiao_szse = yf.Ticker('000568.SZ')

# Obtenir les données boursières de la société Moutai
maotai_data = yf.download(symbol, start="2022-01-01", end="2023-11-01")

# Afficher les premières lignes des données
print(maotai_data.head())

Dans le code ci-dessus, nous avons utilisé la fonction download de yfinance pour obtenir les données boursières de Kweichow Moutai (600519.SS), avec une période allant du 1er janvier 2022 au 1er novembre 2023. Les données renvoyées sont un DataFrame Pandas contenant des informations telles que Date, Open, High, Low, Close, Volume et Adjusted Close (Adj Close).

Pour le contenu d'un DataFrame Pandas, veuillez vous référer à :Structures de données Pandas - DataFrame

L'exécution du code ci-dessus produit la sortie suivante :

# python3 mt.py
[*********************100%%**********************]  1 of 1 completed
                  Open         High          Low        Close    Adj Close   Volume
Date                                                                               
2022-01-04  2055.00000  2068.949951  2014.000000  2051.229980  1973.508057  3384262
2022-01-05  2045.00000  2065.000000  2018.000000  2024.000000  1947.309937  2839551
2022-01-06  2022.01001  2036.000000  1938.510010  1982.219971  1907.112793  5179475
2022-01-07  1975.00000  1988.880005  1939.319946  1942.000000  1868.416870  2981669
2022-01-10  1928.01001  1977.000000  1917.550049  1966.000000  1891.507568  2962670

Classe Ticker

La classe Ticker de yfinance est utilisée pour obtenir des informations et des données en temps réel pour un instrument financier spécifique.

TickerConstructeur de classe :

  • Utilisation :yf.Ticker('AAPL')
  • Description : Crée unTickerobjet représentant une action ou un actif financier spécifique. Passez le code boursier entre les parenthèses (par ex., 'AAPL').

historyMéthodes :

  • Utilisation :ticker.history(period='1d', interval='1m')
  • Description : Récupère les données historiques de prix.periodLe paramètre spécifie l'intervalle de temps, qui peut être'1d'(un jour),'1mo'(un mois),'1y'(un an), etc.;intervalLe paramètre spécifie l'intervalle de temps, qui peut être'1m'(une minute),'1d'(un jour),'1wk'(une semaine), etc.

infoAttributs :

  • Utilisation :ticker.info
  • Description : Obtenir des informations de base sur l'action, telles que le nom de l'entreprise, le secteur, la capitalisation boursière, etc.

dividendsAttributs :

  • Utilisation :ticker.dividends
  • Description : Obtenir les données de dividendes, en renvoyant un DataFrame contenant les dates et les montants des dividendes.

splitsAttributs :

  • Utilisation :ticker.splits
  • Description : Obtenir les données de fractionnement d'actions, en renvoyant un DataFrame contenant les dates et les ratios de fractionnement.

recommendationsAttributs :

  • Utilisation :ticker.recommendations
  • Description : Obtenir les recommandations boursières, en renvoyant un DataFrame contenant les dates et les informations de recommandation.

major_holdersAttributs :

  • Utilisation :ticker.major_holders
  • Description : Obtenir des informations sur les principaux détenteurs de l'action, en renvoyant un DataFrame contenant les principaux actionnaires et leurs pourcentages de participation.

sustainabilityAttributs :

  • Utilisation :ticker.sustainability
  • Description : Obtenir des informations de durabilité pour l'action, en renvoyant un DataFrame contenant les indicateurs environnementaux, sociaux et de gouvernance (ESG).

actionsAttributs :

  • Utilisation :ticker.actions
  • Description : Obtenir les données sur les opérations sur titres de l'action, y compris les fractionnements, les dividendes, etc.

calendarAttributs :

  • Utilisation :ticker.calendar
  • Description : Obtenir les informations du calendrier financier de l'entreprise, telles que les dates de publication des résultats trimestriels, etc.

Le code suivant utilise la classe Ticker de la bibliothèque yfinance pour obtenir des informations sur l'action de Microsoft Corporation (code de l'action : MSFT), notamment des informations de base, des données historiques de marché, des dividendes, des fractionnements d'actions, des états financiers, etc. :

Exemple

import yfinance as yf

# Créer un objet Ticker représentant les opérations sur les données boursières de Microsoft
msft = yf.Ticker("MSFT")

# Obtenir toutes les informations boursières
msft.info

# Obtenir les données historiques du marché, voici les données du mois écoulé
hist = msft.history(period="1mo")

# Afficher les métadonnées des données historiques (nécessite d'appeler d'abord la fonction history())
msft.history_metadata

# Afficher les informations sur les opérations sur titres (dividendes, fractionnements, plus-values)
msft.actions
msft.dividends
msft.splits
msft.capital_gains  # Uniquement applicable aux fonds communs de placement et aux fonds négociés en bourse (ETF)

# Afficher les actions en circulation
msft.get_shares_full(start="2022-01-01", end=None)

# Afficher les états financiers :
# - Compte de résultat
msft.income_stmt
msft.quarterly_income_stmt
# - Bilan
msft.balance_sheet
msft.quarterly_balance_sheet
# - Tableau des flux de trésorerie
msft.cashflow
msft.quarterly_cashflow
# Pour plus d'options, veuillez vous référer à `Ticker.get_income_stmt()`

# Afficher les informations sur les actionnaires
msft.major_holders
msft.institutional_holders
msft.mutualfund_holders

# Afficher les dates de résultats futures et historiques, en renvoyant par défaut jusqu'à 4 trimestres futurs et 8 trimestres passés de données.
# Remarque : si plus d'informations sont nécessaires, vous pouvez utiliser msft.get_earnings_dates(limit=XX), où XX est un paramètre de limite augmenté.
msft.earnings_dates

# Afficher le numéro international d'identification des titres (ISIN) - *fonctionnalité expérimentale*
# ISIN = numéro international d'identification des titres
msft.isin

# Afficher les dates d'expiration des options
msft.options

# Afficher les actualités
msft.news

# Obtenir la chaîne d'options pour une date d'expiration spécifique
opt = msft.option_chain('YYYY-MM-DD')
# Les données sont accessibles via opt.calls, opt.puts

Récupération de données pour plusieurs actions

Le code suivant utilise la bibliothèque yfinance pour initialiser un objet Tickers contenant plusieurs codes d'actions, et utilise cet objet pour accéder aux informations, aux données historiques et aux opérations sur titres de différentes actions :

Exemple

import yfinance as yf

# Initialiser un objet Tickers contenant plusieurs codes d'actions
tickers = yf.Tickers('msft aapl goog')

# Exemple d'utilisation, accéder aux informations pour chaque action
tickers.tickers['MSFT'].info  # Obtenir des informations de base sur Microsoft (MSFT)
tickers.tickers['AAPL'].history(period="1mo")  # Obtenir les données historiques pour Apple (AAPL) sur le mois écoulé
tickers.tickers['GOOG'].actions  # Obtenir des informations sur les opérations sur titres de Google (GOOG) (dividendes, fractionnements, etc.)

Télécharger les données historiques

Le code suivant utilise la bibliothèqueyfinancepour télécharger les données historiques du marché pour l'ETF S&P 500 (SPY) et Apple (AAPL) sur le mois écoulé :

Exemple

import yfinance as yf

# Utiliser yfinance pour télécharger les données historiques du marché pour l'ETF S&P 500 (SPY) et Apple (AAPL)
data = yf.download("SPY AAPL", period="1mo")

period="1mo"Le paramètre indique que la période de téléchargement correspond au mois écoulé.


Autres bibliothèques financières

Voici quelques bibliothèques principalement utilisées pour récupérer des données financières :

yfinance

  • Site officiel : yfinance
  • Introduction :yfinance est une bibliothèque permettant de récupérer les données de Yahoo Finance. Elle fournit une API simple qui permet aux utilisateurs d'obtenir des données financières telles que des actions, des indices, etc.
  • Installation : pip install yfinance

Tushare

  • Site officiel : Tushare
  • Introduction :Tushare est une plateforme ouverte de données financières qui fournit des interfaces pour de riches données de marché financier telles que les actions, les contrats à terme, les fonds, etc. Elle prend en charge Python et fournit une API facile à utiliser.
  • Installation : pip install tushare

pandas-datareader

  • Site officiel : pandas-datareader
  • Introduction :pandas-datareader est une bibliothèque qui récupère des données financières depuis plusieurs sources de données en ligne (telles que Yahoo Finance, Google Finance, etc.).
  • Installation : pip install pandas-datareader
  • Site officiel : baostock

baostock

  • Site officiel : baostock
  • Introduction :baostock est une bibliothèque qui fournit gratuitement des données financières telles que les actions A, les actions de Hong Kong, les options, etc. Elle fournit une interface Python permettant aux utilisateurs d'obtenir facilement des données.
  • Installation : pip install baostock

alpha_vantage

  • Site officiel : alpha_vantage
  • Introduction :alpha_vantage fournit une API simple qui peut être utilisée pour obtenir des données financières telles que les actions, le change, etc. Il prend également en charge le calcul de certains indicateurs techniques.
  • Installation : pip install alpha_vantage

quandl

  • Site officiel : Quandl
  • Introduction :Quandl fournit des données financières et économiques provenant de diverses sources. Il fournit une bibliothèque Python permettant aux utilisateurs d'obtenir facilement des données.
  • Installation : pip install quandl

ccxt

  • Site officiel : ccxt
  • Introduction :ccxt est une bibliothèque open source pour le trading et l'obtention de données financières, prenant en charge l'acquisition de données depuis plusieurs plateformes d'échange.
  • Installation : pip install ccxt

AKShare

  • Site officiel : AKShare
  • Introduction :AKShare est une bibliothèque d'interfaces de données financières basée sur Python. Elle vise à fournir un ensemble d'outils pour les produits financiers tels que les actions, les contrats à terme, les options, les fonds, le change, les obligations, les indices et les cryptomonnaies, couvrant les données fondamentales, les données de marché en temps réel et historiques, ainsi que les données dérivées, depuis la collecte des données, le nettoyage des données jusqu'à leur stockage. Elle est principalement utilisée à des fins de recherche universitaire.
  • Installation : pip install akshare
Autres extensions