[Fonctionnalité] Voir le top des composants des ETFs investis

Hello,

Une fonctionnalité qui pourrait être intéressante, notamment pour ceux qui investissent dans des ETFs : voir avec Finary le top des composants sur lesquels ils sont investis.

Au final lorsqu’on adopte une gestion passive ETF, on ne se préoccupe pas toujours de savoir dans quoi on investit en détails, on prend le S&P500, le NASDAQ-100 ou un MSCI World, mais au final quelle part est réellement investie dans les GAFAM / grosse capitalisations ?

Par exemple savez-vous que :

  • Apple représente 11% du NASDAQ 100
  • ASML représente 29% du Stoxx Europe 600 Technology
  • Apple représente 18% du du MSCI World Information Technology
  • LVMH représente 12% du CAC 40

Si l’on s’étend aux 10 premiers composants de chaque ETF, voilà la part de capitalisation que cela représente par rapport à la valeur totale de l’indice :

  • Stoxx Europe 600 Technology : 80%
  • Stoxx Europe 600 Healthcare : 72%
  • NASDAQ-100 : 54%
  • S&P 500 : 28%
  • CAC40 : 55%
  • MSCI World : 18%

Pas si diversifié que ça au final! On pense investir dans 600 sociétés distinctes via un ETF, mais dans les faits le top 10 représente plus de 70%! Ce qui cohérent quand on sait que seules 4% des actions du marché sont un bon investissement.

Perso je me suis fait un petit script qui crawl les différents émetteurs de mes ETF (Amundi, Lyxor, BNP principalement) pour récupérer les différents composants qui sont disponibles sur chaque fiche et va ensuite mettre à jour un Google Spreesheet pour m’afficher un graphique du type :

Une fonctionnalité que j’aimerais bien voir dans Finary :grinning:

Très explicite. Je vote pour (+1) :+1:

2 « J'aime »

@mounir @julien un avis sur cette fonctionnalité ?

en tout cas un indicateur de diversification du portefeuille ou des différents éléments du portefeuille serait très intéressant

Nous avons construit notre base de données pour pouvoir proposer la transparisation des fonds à terme :wink:

8 « J'aime »

Parfait hâte de voir ça alors ! :grinning:

Cette fonctionnalité serait vraiment top. Je l’ai fait en manuel de mon coté, mais je butte pour automatiser tout ça.
Par exemple, je sais que j’ai 5’000 titres, dont 3’200 sans les doublons.
1% des titres représente 25% de mon portefeuille ETF.
Ca pourrait faire des beaux graphiques pour voir les fonds en transparence. Voici des exemples des miens.


Des sites proposent d’obtenir la liste des constituants des ETFs par API. C’est un peu cher pour un particulier qui fera 1 ou 2 « get » par mois, mais dans un cadre global sur Finary y’a moyen de diminuer les couts :

https://cbonds.com/api/catalog/

https://eodhistoricaldata.com/
https://www.bloomberg.com/professional/support/api-library/
https://www.cloudquote.io/products/api/etfglobal-getETFConstituents
https://developer.factset.com/api-catalog/etf-profile-and-prices-api

Sinon le listing home-made de chaque émetteur, mais là c’est trop de contraintes.

Et ensuite, pouvoir exporter ce résultat via API :wink:

3 « J'aime »

Bonjour, Je télécharge 3012 cotations ETF disponible a 23h50 EOD ainsi que la plus part des bourses mondiale au format Metastock je pense que je peux les convertir (Uniquement les ETFs ) en CSV et les mettre à dispo sur un OneDrive, ou si vous connaissez VB, powershell & Python je vous refile les scripts

Hello,

@pcombes le problème des cotations, c’est que c’est du one-shot. Il faut être capable de l’automatiser et donc idéalement on recherche plutôt une API ou un site Web.

@freerider74 j’ai regardé tes liens merci! Le problème comme tu le signales c’est que ce sont soit des APIs très chères pour un particulier, soit des APIs limitées au marché US. On va donc attendre que Finary implémente la feature :smiley:

J’ai essayé sinon de répertorier quelques sites scrappables mais finalement très peu de sites proposent la composition et ceux qui le font ne le font pas sur tous (typiquement sur la plupart des ETFs ZoneBourse est incapable de me sortir la composition, idem pour Boursorama).

La meilleure solution à date reste donc pour le moment de scrapper les sites des émetteurs, mais ça nécessite de développer une instrumentation différente pour chaque émetteur. Si ca intéresse des personnes je pourrais éventuellement mettre ça sur github.

exemple API Python téléchargement des Quotes
si vous souhaitez la source complète avec les explications d’installation et du Run contactez moi

import pandas as pd
import yfinance as yf
import datetime
import time
import requests
import io
# Input Start and End Date
start = datetime.datetime(2020,2,1)
end = datetime.datetime(2021,10,11)
url="https://pkgstore.datahub.io/core/nasdaq-listings/nasdaq-listed_csv/data/7665719fb51081ba0bd834fde71ce822/nasdaq-listed_csv.csv"
s=requests.get(url).content
companies=pd.read_csv(io.StringIO(s.decode('utf-8')))
companies.head()
 len(Symbols)`` ` 
Symbols[0:10]   *ou*  Symbols[0:2967]
**résultat attendu**  ['AAIT', 'AAL', 'AAME', 'AAOI', 'AAON', 'AAPL', 'AAVL', 'AAWW', 'AAXJ', 'ABAC']
t0 = time.time()

# create empty dataframe
stock_final = pd.DataFrame()

# iterate over each symbol
for i in Symbols:  
    
    # print the symbol which is being downloaded
    print( str(Symbols.index(i)) + str(' : ') + i, sep=',', end=',', flush=True)  
    
    try:
        # download the stock price 
        stock = []
        stock = yf.download(i,start=start, end=end, progress=False)
        
        # append the individual stock prices 
        if len(stock) == 0:
            None
        else:
            stock['Name']=i
            stock_final = stock_final.append(stock,sort=False)
    except Exception:
        None
        
t1 = time.time()

total = t1-t0

stock_final.Name.unique()
len(stock_final)
stock_final.to_excel('nom de votre fichier excel .xlsx', index = False)
stock_final.Name.nunique()
stock_final.head(10)
  résultat
![resultat|690x70](upload://i1d0aUq69iHNDDhZSrUYtAnAQeb.jpeg)

Hello,

Le script en question télécharge les cotations de symboles indiqués dans le CSV distant. La problématique de ce thread c’est d’obtenir, à partir d’un ISIN ETF, la liste des composants pondérés (genre Apple- 11%).

Si tu as une source qui permet d’avoir ces infos je suis preneur.

Il n’existe pas de moyen simple La seule façon de tenter de le faire c’est de faire une correspondance avec le code boursier mais on ne peut pas taper les tables en direct
il me semble qu’il est possible de faire un appel REST API à OpenFIGI a tester
(OpenFIGI API | OpenFIGI) ensuite faire des liaisons peut être en Power Pivot directement dans excel
les intermédiaires financier veulent généralement que vous payiez pour les tables de conversion CUSIP / ISIN-to-ticker …, je vais demander à l’interne si quelqu’un à déjà fait une requête du style
Il me semble que ce que vous essayez de faire, c’est de construire votre propre Bloomberg! :upside_down_face:

La meilleure solution à date reste donc pour le moment de scrapper les sites des émetteurs, mais ça nécessite de développer une instrumentation différente pour chaque émetteur. Si ca intéresse des personnes je pourrais éventuellement mettre ça sur github.

Oui, c’est vite lourd de dev une interface par émetteur, surtout que ça change avec le temps (et donc nécessite du dev de maj, pas le temps de me créer un autre métier).
Et avec Vaneck, on est vite coincé (les exports des constituants sont très pauvres)

Le S&P a établi en novembre son 66e record annuel, pour autant de records absolus, l’indice élargi de Wall Street ayant dépassé dès la fin d’année dernière son pic pré-pandémique, mais n’a pourtant pas été aussi concentré depuis plus d’un demi-siècle.

À eux cinq, Microsoft (2.523 milliards de dollars), Apple (2.481), Alphabet (1.978), Amazon (1.760) et Tesla (1.227) affichent une valorisation combinée de 9.993 milliards de dollars à la clôture de vendredi, soit 24,53% de la « market cap » totale du S&P 500 - qui compte actuellement 506 membres. Il s’agit d’un record depuis… 1969 en termes de concentration selon Jim Bianco, fondateur du cabinet d’études Bianco Research.

Sujet plus que jamais d’actualité !

1 « J'aime »