Suivre ses investissements boursiers à l'aide de Yahoo Finance API.

8 novembre 2020 (il y a 4 ans)

background image

L'article a pour vocation d'expliquer, étape par étape, comment construire un outil de suivi de vos titres boursiers à l'aide de Yahoo Finance API, Google Sheet et Glide.

Suite à la lecture de cet article, vous allez pouvoir :

  • Collecter et traiter les données Yahoo Finance API (YF) directement depuis Google Sheet.

  • Relier les données YF et celles de vos investissements personnels afin de créer un outil de suivi d'actions personnalisé.

  • Obtenir un accès visuel à mon portefeuille d'actions automatisé (ici).

  • Découvrir l'app Stock Portfolio Tracker. Développée à partir des données Google Sheet, elle permet, depuis son téléphone, de gérer et suivre l'évolution de son portefeuille boursier en temps réel.

N.B. : Je ne donne ici aucun conseil en investissement boursier. Orientées 'investisseurs dividendes', les données boursières qui composent l'article sont celles que j'estime intéressantes d'observer avant de passer à l'action.

Table des matières

  1. Contexte
  2. Construire son portefeuille avec Yahoo Finance
  3. Portefeuille d'actions: explications des valeurs
  4. Gérer vos actions via une application

Contexte

Suite à la parution d'un premier article au sujet des investissements boursiers en Mai 2020, j'ai reçu de très nombreux retours (~100 téléchargements) à propos de la feuille de calcul 'Stock Portfolio Tracker V.1'.

Cela m'a donc poussé à :

  • Enrichir la spreadsheet en intégrant de nouvelles informations comme la date des futurs IPOs, un calendrier des dividendes ou encore les volumes moyens ($) échangés.

  • Revoir les fonctions Google Sheet utilisées pour récupérer la donnée. Exit GoogleFinance et ImportXML, bonjour ImportJSON (fonction à télécharger ici) ! Plus simple d'utilisation, elle permet d'enrichir et d'organiser les données d'une feuille de calcul à partir de celles d'une API.

  • Remplacer l'utilisation d'APIs privées (IEX Cloud, Finnhub..) au profit d'APIs libre d'accès comme Yahoo Finance API ou Nasdaq API. Elles permettent d'effectuer un nombre de requêtes illimitées... gratuitement et sans clé d'accès (token).

  • Retravailler l'UX de l'app (ici) afin que les utilisateurs puissent facilement visualiser l'évolution de leur investissement boursier.

Construire son portefeuille avec Yahoo Finance

Yahoo Finance est l'un des sites références en matière d'informations financières. Trouver la source d'accès des données (endpoint) de YF API permet d'identifier des données, que l'on peut collecter sur Google Sheet, les retraiter et construire bloc par bloc un portefeuille d'actions automatisé. Mais par où commencer ? 🤔

⇒ Pour ne perdre personne avec les explications qui vont suivre, je vous invite à visualiser mon portefeuille d'actions automatisé.

Trouvez le endpoint de Yahoo Finance API

  • Copiez-collez l'URL suivante : https://fr.finance.yahoo.com/quote/AAPL

  • Cliquez sur 'option + ⌘ J' de votre clavier Mac et ouvrez l'onglet Network (voir screenshot).

  • Cliquez sur 'XHR' et sur l'un des endpoints de la colonne 'Name'. Pour la plupart, ils sont composés de données organisées que l'on souhaite récupérer.

  • Pour récupérer un endpoint : clic droit puis copier le CURL. Collez précieusement ce bloc d'informations dans un Google Sheet.

Résultat : sur Yahoo Finance, il existe plusieurs endpoints. Sur la feuille de calcul que je vous partage ici, j'utilise principalement ces deux endpoints :

Si les cas d'usage de l'API YF vous intéresse, je vous invite à lire cet article

Importer les données de YF API sur Google Sheet avec ImportJSON

Maintenant que l'on a identifié où se trouvent les données qui nous intéressent, comment les exporter en 10 secondes sur Google Sheet ? En utilisant ImportJSON bien-sûr ! (téléchargerici)

L'outil permet de récupérer les informations d'un endpoint et de les intégrer dans votre feuille de calcul. Pour que ce soit plus clair, prenons un exemple où l'on souhaite déterminer le rendement moyen du dividende sur l'année de l'action Apple :

TIPS : si vous voulez lire plus simplement les donnée d'un endpoint en JSON, je vous conseil d'utiliser l'addon Chrome JSON Viewer.

  • Etape 2 : Collez le bloc d'information CURL (endpoint) dans un nouveau spreadsheet (sheet.new) et activez l'add-on ImportJSON (si ce n'est pas déjà fait 🤟).

  • Etape 3 : Utilisez la fonction ImportJSON, maintenant disponible sur votre feuille de calcul, pour collecter des données disponible via YF API. Vous devriez obtenir des résultats similaires au screenshot ci-dessous. 👇

  • Etape 4 : Identifiez et collectez uniquement les données dont vous avez besoin. En effet, la fonction nous permet d'indiquer dans une cellule {optionChain/result/0/quote/trailingAnnualDividendYield} pour ne récupérer que la valeur souhaitée. On obtient alors le résultat suivant 👇

TIPS : pour obtenir la valeur, sans le header, vous pouvez intégrer dans la fonction gSheet la mention 'hideHeaders' pour le voir supprimer (voir screenshot). De nombreuses autres possibilités comme la mise à jour automatique des données ou la mise en cache des données sont disponibles. La documentation complète de l'outil est à retrouver ici.

  • Etape 5 : Composez, étape par étape, votre portefeuille d'actions en intégrant uniquement les informations que vous souhaitez suivre... capitalisation boursière, valeur de l'action, secteur de l'entreprise. Les possibilités sont multiples et vous permettent alors de visualiser l'évolution et la santé de vos investissements boursiers.

Rendez votre portefeuille automatisé avec =ArrayFormula()

Après avoir collecté et organisé les données qui composent votre portefeuille, vous vous êtes sans doute rendu compte qu'il est fastidieux de devoir modifier et déplier manuellement chaque fonction Google Sheet x ImportJSON pour chacune de vos actions.

En réalité, il est possible de gagner du temps (beaucoup) avec la fonction =ArrayFormula().Elle permet d'intégrer une formule par colonne et de l'appliquer automatiquement à l'ensemble des cases de la colonne, tout en respectant les variantes imposées.

Exemple : Pour déterminer les secteurs associés à chaque entreprise de mon portfolio, je vais associer les fonctions ArrayFormula + ImportJSON (voir image) pour collecter l'ensemble de ces informations par l'intermédiaire d'une seule formule.

Plus besoin de modifier la feuille de calcul, elle évolue automatiquement en fonction des données injectées dans l'onglet 'TRACKER 💰', via l'application mobile, et celles collectées via YF API qui évoluent en temps réel.

Portefeuille d'actions: explications des valeurs

Cette partie cherche à définir les quelques données complexes présentes dans mon portefeuille d'actions que vous pouvez visualiser ici.

  • Payout Ratio (PR) : Proportion des bénéfices générés par l'entreprise, versés aux actionnaires. Cela dépend du secteur mais, généralement je ne mise pas sur une entreprise avec un PR > 60%. ⚠️ Attention aux entreprises qui s'endettent pour attirer de nouveaux investisseurs.

  • Price to Book Ratio (P/B) : Facteur qui met en exergue le coût à laquelle s'échange l'action par rapport à sa capitalisation boursière. Cela permet de déterminer si l'action est sur / sous évaluée par les investisseurs par rapport aux capitaux générés de l'entreprise. Au moment où j'écris l'article (4/12/20), Mastercard (MA) à un PB Ratio > 57, alors que Visa (V) = 14...

  • Price Earning Ratio (P/E) : Facteur qui permet d'évaluer la valeur d'un titre par rapport aux prix des titres de sociétés du même secteur. Plus ce dernier est bas, plus le titre est considéré comme bon marché. Permet d'identifier d'identifier la spéculation sur un titre.

  • Earning per Share (EPS) : Représente le profit net réalisé par l'entreprise pour chacune des actions en circulation. Un investisseur pourra alors plus facilement décider d'acheter une action surévaluée (cf. P/B Ratio) s'il sait que l'entreprise réalise des gros bénéfices dessus.

  • Yield on Cost (YOC) : Indice de mesure du rendement des dividendes au prix auquel l'investisseur à acheter un titre. Il évolue donc au cours du temps et diffère du Dividend Yield qui est l'indice de rendement à l'instant T.

Si vous avez des questions, n'hésitez pas à me demander par mail

Gérer vos actions via une application

Dernière pièce du puzzle, Stock Tracker Portfolio offre la possibilité de gérer et suivre ses investissements boursiers, depuis son téléphone et, sans toucher à la feuille de calcul !

Créée via Glide, la web-app vous permet d'enrichir les données de votre feuille de calcul et les traduire dans un outil qui offre un aperçu de l'évolution de vos titres par secteurs et marchés. Pour en savoir plus ? ⬇️

  • Comment faire évoluer les données de l'app après l'achat d'une nouvelle action ? Lorsque vous faites l'acquisition d'un nouveau titre, que vous recevez un dividende ou que vous faites un profit suite à une vente, rendez-vous sur l'onglet 'info' et cliquez sur l'icon '💸'. Vous allez renseigner vos informations et voir l'application évoluer. En effet, les informations envoyées vont mettre à jour la feuille de calcul qui va retourner de nouvelles informations.

  • Comment sont organisées les informations de l'app ? Une brève description des onglets ? L'application est voulue simple d'utilisation, où il est possible de suivre la santé de son portefeuille avec différents indicateurs de croissance. Sont présents des dashboards pour évaluer la diversification du portefeuille (secteur, marché...) et suivre les informations autour des dividendes (calendrier, projections). Vous trouverez également un historique des dernières transactions (achats, ventes et dividendes), le calendrier des prochaines IPOs et la liste des 500 entreprises américaines cotées en bourse.

  • Est-il possible de télécharger l'application et d'améliorer son design ? J'offre un accès gratuit aux 50 premiers utilisateurs qui voudraient répliquer l'application ⇒ Vous pouvez m'envoyer un mail. Si vous souhaitez améliorer son design et que vous avez quelques compétences techniques en HTML, CSS, et JS, sachez qu'il est possible d'intégrer du code pour faire évoluer le design de l'app.