L’API (non officielle) de Yahoo Finance – Doug Guthrie

Table des matières

L’API (non officielle) de Yahoo Finance – Doug Guthrie

Une interface Python pour des quantités infinies de données

Doug Guthrie
photo par Sean Pollock sur Unsplash

Contexte

Je travaille dans le secteur des services financiers en tant que gestionnaire d’analyse de données. Mon rôle est de soutenir mon organisation dans tout besoin lié aux données. Un projet sur lequel nous travaillons est une application interne qui s’appuie fortement sur des données financières; mon travail consistait à trouver un moyen de fournir les données pertinentes.

Avoir de la chance

Si vous effectuez une recherche sur Internet assez longtemps, vous pourrez trouver des solutions qui vous y mèneront (ou partiellement). J’ai joué avec Nuage IEX, Quandl, et d’autres, qui sont d’excellents services mais qui ne sont tout simplement pas gratuits. Ainsi, comme tout développeur à la recherche d’une solution, j’ai commencé à rechercher StackOverflow. J’ai souvent rencontré Yahoo finance comme une solution possible, même si la note ci-dessous se trouve en haut de la page de résultats de recherche pour Yahoo finance:

VEUILLEZ NOTER: CETTE API A ÉTÉ DISCONTINUÉE PAR YAHOO. Yahoo! La finance est un service de Yahoo! qui fournit des informations financières. Il s’agit du premier site d’information financière et de recherche aux États-Unis.

Il semblait que les gens utilisaient toujours le service, que ce soit par grattage Web ou via des URL que vous ne pouviez trouver qu’en recherchant dans les demandes XHR. Je savais que je ne voulais pas d’une solution de grattage Web. J’ai donc commencé à parcourir l’onglet réseau dans les outils de développement de Chrome pour tout ce qui ressemblait à des données. Heureusement, je suis tombé sur certains.

Le package propose trois classes différentes qui permettent une récupération efficace et rapide des données que vous pouvez visualiser via le front-end. La classe principale, où la plupart des données peuvent être récupérées, est le Ticker classe.

Téléscripteur

Assez facile, non? Passez simplement un symbole ou une liste de symboles et vous êtes prêt à récupérer la plupart des données disponibles via Yahoo Finance. Avant de poursuivre, il est important de savoir qu’il existe des arguments de mots clés supplémentaires que vous pouvez fournir pour modifier certains comportements:

  • asynchronous: Passer asynchronous=True et les demandes faites avec plusieurs symboles seront faites de manière asynchrone. La valeur par défaut est False
  • max_workers: Passer max_workers= et modifier le nombre de travailleurs disponibles pour effectuer des demandes asynchrones. Ceci n’est utilisé que lorsque asynchronous=True est également adopté. La valeur par défaut est 8.
  • proxies: Passer proxies={http: ..., https: ...} d’utiliser un proxy lors de la demande.
  • formatted: Passer formatted=True recevoir plus des données numériques au format suivant: earnings: {"raw": 22236000000, "fmt": "22.24B", "longFmt": "22,236,000,000"}. La valeur par défaut est False.
  • username et password: Si vous vous abonnez à Yahoo Finance Premium, passez votre username et password. Vous serez connecté et pourrez désormais accéder à des propriétés / méthodes premium. Toutes les propriétés / méthodes premium commencent par p_. Désactivez l’authentification à deux facteurs pour que cela fonctionne.

La classe Ticker peut être divisée en quelques catégories différentes: modules, options, historique des prix et données premium.

Modules

Les modules correspondent (généralement) à un onglet ou à des données dans des onglets individuels du frontal de Yahoo Finance. Par exemple, pour récupérer des données à partir de l’onglet «Résumé», vous utiliseriez le summary_detail propriété sur le Ticker classe.

Ou pour trouver des données dans l’onglet « Statistiques », vous utiliseriez les propriétés valuation_measures et key_stats.

Les options

Toutes les dates d’expiration des options peuvent être récupérées avec une simple ligne:

La variable options sera un pandas DataFrame. Le DataFrame contiendra un MultiIndex composé du symbole, de la date d’expiration et du type d’option (put ou call).

Tarification historique

photo par M. B. M. sur Unsplash

Celui-ci est assez simple: récupérez les données OHLC historiques pour un symbole ou une liste de symboles:

Le code ci-dessus renverra les données YTD quotidiennes. Cependant, des arguments supplémentaires peuvent être fournis à la méthode:

Données Premium

La fonctionnalité est également disponible pour récupérer les données des abonnés Yahoo Finance Premium. Le package utilise du sélénium, et chromedriver spécifiquement, pour vous connecter à Yahoo Finance. Une fois connecté, l’utilisateur pourra utiliser des méthodes et des propriétés premium pour récupérer des données.

Plus d’information