Comment bien gérer son portefeuille boursier?

16 avril 2020 (il y a 4 ans)

background image

"Le risque provient de ne pas savoir ce que l'on fait. - Warren Buffet"

Convaincu par l'importance d'analyser le marché avant de se positionner sur des actions d'entreprises connus de tous (Amazon, Google, Apple, etc), j'ai conçu un éco-système automatisé pour analyser et suivre ses investissements boursiers en liant Google Sheet et Glide.

Dans cet article, vous allez:

  • Faire la connaissance de 'jkbot', un outil conçu pour analyser l'action de votre choix.

  • Découvrir des fonction avancées Google Sheet (Googlefinance(), ImportJSON(), Arrayformula(), etc.) permettant de suivre l'évolution de votre portefeuille boursier.

  • Comprendre comment lier Google Sheet et Glide afin de créer une application mobile fonctionnelle et design.

  • Pouvoir télécharger gratuitement mon modèle de portefeuille d'actions automatisé en cliquant ici!

Table des matières

  1. Analyser pour prévenir les erreurs
  2. Suivre pour maximiser les profits
  3. Gérer son portefeuille avec une application mobile
  4. Quelques idées d'amélioration futures?

Analyser pour prévenir les erreurs

La bourse est loin d'être un jeu de hasard et laisse l'opportunité, à celui qui analyse intelligemment, de prévoir les variations futures et tirer partie des fruits de son investissement. Dans ce sens, j'ai créé un outil nommé 'jkbot' qui permet, en mentionnant le code boursier (ticker) d'une entreprise, d'obtenir les informations suivantes:

  • Augmentation consécutive du dividende (années).

  • Rentabilité du dernier dividende (%).

  • Le quotient de variation (beta) de l'indice boursier.

  • Croissance moyenne du dividende depuis l'IPO (%).

  • La date du prochain dividende.

Analyse d'un titre boursier avec spreadsheets 'jkbot'

Conçu pour les investisseurs, il permet de prendre des décisions à partir des données fiables, sourcées sur le net via plusieurs API (Yahoo Finance, Financial Modeling Prep, Google Finance...). Différents graphiques sont présents pour suivre l'évolution d'une action et de son dividende.

Interface avec variations boursières.Evolution du dividende avec 'jkbot'

Pour l'utiliser, je vous invite à télécharger gratuitement mon modèle de portefeuille d'actions automatisés où est inclut l'interface de 'jkbot'.

Suivre pour maximiser les profits.

Surveiller quotidiennement ses investissements boursiers peut être une tâche difficile, voire décourageante. Il est pourtant primordial de connaître les performances de ses actions au risque de voir amoindris le profit que vous pourriez faire si le suivi était effectué rigoureusement.

En créant une feuille de calcul automatisée pour son portefeuille boursier à l'aide de Google Sheet, cela devient tout de suite plus simple. On peut alors traquer régulièrement la performance de ses actions, connaître la date du prochain dividende et gagner du temps.

Suivre variations titres boursiers interface Google Sheets

Contrairement à précédemment, je ne vais pas énumérer les critères présents sur le tableur associé mais parler des 5 formules avancées qui le composent à 90%.

  • GoogleFinance

Google Sheets dispose d'une fonction intégrée appelée Googlefinance qui permet d'obtenir des informations actuelles ou historiques sur les titres de Google Finance. Syntaxe:

=GOOGLEFINANCE("ticker";"attribut")

et/ou

=GOOGLEFINANCE("ticker"; "attribut"; DATE(2020;1;1); DATE(2020;12;31); "DAILY")

Fonction GoogleFinance Google Sheets

Dans notre modèle d'investissement boursier, cette formule permet d'identifier la capitalisation boursière, la variation du prix d'une action sur 52 semaines ou encore son rendement moyen.

  • ImportJSON()

Sur la toile, il existe de nombreuses API (Application Programming Interface) permettant d'accéder à des millions de données financières et économiques. Voici celles sur lesquelles je me suis appuyé pour créer le portefeuille boursier automatisé:

Mais comment importer facilement les informations d'une API dans un tableur Google Sheet?

La fonction ImportJSON répond parfaitement à cette problématique puisqu'elle permet d'appeler les données d'une API directement depuis Google Sheet. Voici comment:

  • Ajoutez ce code dans un script Google Sheet (outil > éditeur de scripts) puis sauvegarder (⌘ + s).

  • Retournez sur votre feuille de calcul puis tapez "=ImportJSON()". Bon pour vous?

  • À titre d'exemple, déterminez la marge (%) moyenne d'une entreprise depuis 5 ans à l'aide de cette requête API en intégrant la formule suivante dans votre tableur:

=ImportJSON("https://finnhub.io/api/v1/stock/metric?symbol=fb&metric=margin&token=bq7i6ffrh5r82dn984q0";"/metric/netProfitMargin5Y";"noHeaders")*1%

Comment fonctionne la fonction ImportJson - Google Sheet

Google Sheet ira alors chercher l'information "netProfitMargin5Y" en suivant le chemin indiqué: metric → netProfitMargin5Y et en prenant soin de ne pas afficher l'en-tête avec l'attribut "noHeaders".

  • ImportHTML()

Nul besoin de compétences techniques pour appréhender cette formule qui permet d'importer deux types de données d'une page web: tableau et liste. Syntaxe:

=IMPORTHTML("url","tableau ou liste",index)

Comment fonctionne la fonction ImportHTML - Google Sheet

Elle m'a été utile pour récupérer la liste des 500 entreprises américaines présentes sur le SP500 (Nasdaq & NYSE) et l'historique du dividende d'une entreprise.

Associé à la fonction Query, il devient alors possible de récupérer uniquement les valeurs de son choix.

=QUERY(IMPORTHTML("https://en.wikipedia.org/wiki/List_of_S%26P_500_companies";"table");"select Col1, Col2, Col4, Col5")"noHeaders")*1%
  • ArrayFormula()

Alors qu'une fonction classique renvoie une seule valeur, ArrayFormula affiche automatiquement une série de valeurs sans avoir besoin d'étirer la formule et rend le document autonome. Syntaxe (pour calculer une somme):

=ARRAYFORMULA(A1:C1+A2:C2)

Comment fonctionne la fonction ArrayFormula - Google Sheet

En utilisant cette fonction, j'ai pu calculer la somme de plusieurs éléments avec une seule formule.

Pour éviter l'expansion de la fonction Arrayformula jusqu'en bas de votre feuille de calcul, je vous invite à la coupler avec IF + LEN. Vous obtiendrez uniquement les valeurs ciblées.

=ARRAYFORMULA(IF(LEN(N3:N),(N3:N-J3:J),))
  • ImportXML()

Fonction puissante qui permet d'extraire n'importe quel élément d'une page web. Elle nécessite un minimum de connaissances techniques, notamment sur la notion de Xpath. Syntaxe:

=IMPORTXML("url","xpath")

Comment fonctionne la fonction IMPORTXML - Google Sheet

Elle m'a été utile pour identifier la date du prochain dividende. Avant de connaître ImportJson et les requêtes API, j'utilisais ImportXML pour récupérer 90% des données présentes sur la feuille de calcul.

Noter que faire de nombreuses requêtes simultanées sur le web avec la fonction ImportXML peut augmenter drastiquement le temps de chargement de votre page. Pour éviter de faire face à ce problème, et comme j'en ai déjà parlé dans cet article pour récupérer facilement des informations sur Trip Advisor, il existe une fonction alternative nommée ImportfromWeb.

Gérer son portefeuille avec une application mobile.

Suivre quotidiennement son portefeuille boursier depuis Google Sheet peut rapidement être contraignant. Parti de ce constat, j'ai trouvé intéressant de pouvoir transformer la feuille de calcul en application mobile avec Glide.

Comme expliqué dans cet article, Glide est un outil permettant de créer une application fonctionnelle en quelques minutes, sans code et à partir de Google Sheet!

Découvrez l'application mobile de mon portefeuille boursier en cliquant ici.

Application mobile jkapp - Glide

À l'aide de l'application, je suis aujourd'hui en capacité de suivre facilement mes titres, les profits / pertes, l'historique des transactions, et d'étoffer mon portefeuille en indiquant l'achat de nouvelles actions.

Ci-dessous, suivez les étapes de création de l'application JKAPP:

  • Nouveau G-Sheets

Pour afficher uniquement les données importantes et ne pas sortir du forfait gratuit (limité à 500 lignes), j'ai relié quelques informations du premier Sheet avec une nouvelle feuille de calcul par l'intermédiaire de la fonction Importrange. Syntaxe:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/abcd123abcd123";"Feuille1!A1:C10")

Comment fonctionne la fonction Importrange - Google Sheet

  • Création de l'application

J'ai ensuite indiqué l'URL du second Sheet sur Glide qui va alors, en quelques secondes, transformer les données du Sheet en application web. Vous avez également la possibilité de créer votre application à partir d'un modèle.

Glide - Google Sheets - Création d'application mobile

  • Ajuster le design

Une fois l'application en main, vous êtes libre de réviser le design, en modifiant sa structure, le style et les données que vous souhaitez mettre en avant.

Modifier design Glide - Application mobile

  • Utilisation de l'application

Il est désormais possible de suivre le profit / perte de ses titres, d'observer l'historique de ses transactions, et de faire évoluer son portefeuille en indiquant lorsque l'on acquiert de nouvelles parts d'entreprise.

Application mobile - ajouter un titre boursier - Glide

⚠️ Arrayformula ne pouvant pas être associé aux fonctions Googlefinance, ImportXML et ImportJSON, une intervention humaine est nécessaire sur le Sheet associé à l'application, lorsque vous indiquez l'achat d'une nouvelle action. Sans quoi, certaines informations n'apparaîtront pas sur l'application.

Quelques idées d'amélioration futures?

Cet article s'achève sur l'énumération de quelques idée d'amélioration pouvant voir le jour prochainement:

  • Déterminer un intervalle de temps lorsque l'on analyse un titre sur le 'jkbot'.

  • Affiner l'analyse sur le 'jkbot' en intégrant deux nouveaux critères: récession (%) et sécurité du dividende (/100).

  • Afficher dans un nouvel onglet l'historique de la valeur de son portefeuille d'actions.

  • Recevoir un notification SMS/mail lorsque le prix d'un titre atteint un palier.

  • Plus hypothétique et indépendant de ma volonté, connecter l'API de Revolut Trading à Google Sheet. Revolut ne propose pas d'API mais il serait intéressant de pouvoir connecter les deux plateformes pour ajouter une nouvelle ligne dès qu'un nouvel investissement est effectué. Plus besoin de l'indiquer manuellement sur l'application / Sheet.

Envie de prendre part à ce projet en proposant des idées d'amélioration? N'hésitez pas à m'envoyer un mail à ce sujet.