Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assets Anteilsmäßig einzelnen Klassifizierungen zu ordnen #1775

Open
Fabioni opened this issue Oct 5, 2020 · 11 comments
Open

Assets Anteilsmäßig einzelnen Klassifizierungen zu ordnen #1775

Fabioni opened this issue Oct 5, 2020 · 11 comments

Comments

@Fabioni
Copy link

Fabioni commented Oct 5, 2020

Is your feature request related to a problem? Please describe.
Ich finde es schade, dass ich nicht aussagekräftig sehen kann wieviel nun eigentlich in den einzelnen Regionen wie USA, Deutschland, China steckt. Die Klassifizierung mit Regionen ist dafür ja eigentlich gedacht, aber es ist nur ein trügerisches Bild.

Describe the solution you'd like
Es wäre schön, wenn es die Möglichkeit gäbe den MSCI World zum Beispiel anteilsmäßig den einzelnen Ländern zu zu ordnen oder diese Information sogar automatisch aus dem Internet zu ziehen.
Bildschirmfoto 2020-10-05 um 21 40 13

Somit wäre die Aufschlüsselung nach Regionen, oder natürlich auch bei anderer Klassifikation (Stichwort Multi Asset Fonds), viel aussagekräftiger.

@ghost
Copy link

ghost commented Oct 6, 2020

@Fabioni
Ich kann dein Problem nicht nachvollziehen, du kannst doch jedem Wertpapier beliebig viele Kategorien anteilsmäßig zuordnen?

Was den Download aus dem Internet betrifft, wenn du eine kostenlose Quelle je Wertpapiere kennst...

@Fabioni
Copy link
Author

Fabioni commented Oct 6, 2020 via email

@ghost
Copy link

ghost commented Oct 6, 2020

Der Download der Daten von justETF ist rechtlich geschützt und kann nicht verwendet werden.

Was die Aufteilung/ Gewichtung betrifft, du kannst diese entweder direkt in den Einstellungen des Wertpapiers oder in der Asset Allokation ändern. Wenn du nichts angibst ist die Gewichtung immer 100% für eine Kategorie.

@Fabioni
Copy link
Author

Fabioni commented Oct 6, 2020

Okay vielen Dank für die Erklärung :-)

Bei dem Link handelt sich um extraETF, nicht justETF.

Der Download der historischen Kurse von OnVista, wie es z.b. auch in dem offiziellen Einführungsvideo auf YouTube gezeigt wird, ist doch eigentlich genau das gleiche Prinzip. Wo erkennt man da rechtlich den Unterschied? (Nicht weil ichs dir nicht glaube, sondern weil ich es lernen möchte)

Lg
Fabian

@ghost
Copy link

ghost commented Oct 8, 2020

Ungeachtet der rechtlichen Thematik, ob der Anbieter von INet-Inhalten erlaubt oder einschränkt oder erlaubt, ergibt sich eine weitere Problematik die nicht unerheblich ist.

Bspw https://de.extraetf.com/etf-profile/IE00B3RBWM25 enthält mehr als 50 Länder, aber (hier extraETF) agregiert die Länder nach eigenen Kriterien. Es wäre zwar (mit erheblichen Aufwand) realisierbar, die Allokation herunterzuladen, können aber nicht treffsicher bestehenden Einträgen automatisch zugeordnet werden. Jede Änderung (bspw Schreibweise) würde neue Kategorien erzeugen.

Darüber hinaus, einige ETFs weisen Deutschland, Frankreich und Co getrennt aus, andere werden als Europäer zusammengefasst. Das macht die Klassifizierung nicht einfacher.

Ergo, automatisch an dieser Stelle würde mehr Fragezeichen erzeugen als eine einheitliche Klassifizierung erstellen.

VG
Marco

@fbuchinger
Copy link

Ich hab ein ähnliches Feature hier vorgeschlagen: #1665 - mein ursprünglicher Ansatz war, aus den ETF-Bestandslisten (downloadbar vom Emittenten) die Länder/Währungen/Branchen der Einzelaktien zu extrahieren und dann zu beliebigen Regionen "aufzusummieren".

Das würde das von @Ragas13 erwähnte "Regionenproblem" lösen, benötigt aber auch einigen Programmieraufwand, da jeder ETF-Anbieter seine Bestandslisten anders strukturiert und man die Spaltenüberschriften/Datentransformationen ständig pflegen müsste.

Sollte ich mal über zuviel Tagesfreizeit verfügen, könnte ich mir vorstellen, ein Python-Skript zu schreiben, dass einen/mehrere ETFs anhand der Bestandlisten in die Einzelaktien zerlegt. Die könnte man dann mit Länder/Währungsinformationen angereichert in eine PP .xml Datei schreiben -> Ergebnis wär eine ziemlich akkurate Länder/Währungs/Branchenaufteilung.

@bosix
Copy link

bosix commented Dec 20, 2020

@Fabioni der automatisierte Download von Websitedaten sollte immer mit Bedacht umgesetzt werden. Dazu im Zweifel mal die AGB der entsprechenden Seite kurz lesen. Nur weil es technisch möglich ist, heißt das nicht, dass es auch erlaubt ist. So oder so gibt es auch elegantere (und legalere) Wege, an die Daten zu kommen: z.B. https://etf-data.com. Mit ETF-Data kommt man zumindest strukturiert an Länder und Branchen (z.B. https://api.etf-data.com/product/DE000A0F5UG3).

Um mal zu der ursprünglichen Frage zurück zu kommen: du kannst bei jedem Wertpapier via Rechtsklick/Editieren unter Klassifizierungen die Prozente ändern. Alternativ kannst du das auch direkt bei den Klassifizierungen machen indem du doppelt auf die Gewichtung klickst und einen anderen Anteil eingibst.

image

@Ragas13 @fbuchinger ich glaube, dass man eher versuchen sollte, eine Quelle für alles zu finden damit zumindest die Grundstruktur bei allen Fonds gleich ist. Für die unterschiedliche Benennung von z.B. Ländern zwischen den ETF (USA vs Vereinigte Staaten von Amerika) kann ich mir ein Mapping ganz gut vorstellen. Das erschlägt sicher nicht alle Varianten und Schreibweisen, aber 100%ige Präzision ist aus meiner Sicht auch gar nicht notwendig. Mit persönlich geht es weniger um eine Zehntel-% genaue Übersicht meiner Asset-Allocation sondern eher einen guten Überblick ohne, dass ich viel Zeit investieren muss, um alles erst einmal mühsam per Hand zu klassifizieren.

@ghost
Copy link

ghost commented Dec 20, 2020

@bosix
@fbuchinger
Ok, für ETF's top und bei Aktien würde sich bspw Finnhub.io anbieten.

Jetzt stellt sich mir jedoch das nächste Problem, denn die Benennung und Zuordnung der Kategorien soll ja automatisch erfolgen. Technisch sucht PP nach der Benennung der Kategorie, ändert der Anwender diese würde automatisch die Soll-Schreibweise wiederhergestellt werden. Da die Branchen in Englisch übertragen werden, bietet sich auch die Länder immer/ausschließlich in Englisch zu benennen. Wäre das bspw. für deutsche oder spanische Anwender ok?

Andere Punkt betrifft den Zyklus der Aktualisierung, bei jedem Programmstart oder manuell?

Hier ein paar Beispiele zu Aktien und ETF's:

https://finnhub.io/docs/api#company-profile2

Aktie DE0007164600
https://finnhub.io/api/v1/stock/profile2?isin=DE0007164600&token=

{
   "country":"DE",
   "currency":"EUR",
   "exchange":"XETRA",
   "finnhubIndustry":"Technology",
   "ipo":"1988-11-04",
   "logo":"https://static.finnhub.io/logo/4899d8b4-80e6-11ea-a2b5-00000000092a.png",
   "marketCapitalization":125405.7,
   "name":"SAP SE",
   "phone":"496227747474",
   "shareOutstanding":1193.649878,
   "ticker":"SAP.DE",
   "weburl":"https://www.sap.com/"
}

Aktie DE0005190003
https://finnhub.io/api/v1/stock/profile2?isin=DE0005190003&token=

{
   "country":"DE",
   "currency":"EUR",
   "exchange":"XETRA",
   "finnhubIndustry":"Automobiles",
   "ipo":"1926-01-01",
   "logo":"https://static.finnhub.io/logo/1c89169a-80e6-11ea-83c5-00000000092a.png",
   "marketCapitalization":47082.21,
   "name":"Bayerische Motoren Werke AG",
   "phone":"49893820",
   "shareOutstanding":658.8625,
   "ticker":"BMW.DE",
   "weburl":"https://www.bmwgroup.com/"
}

ETF IE00B3RBWM25
https://api.etf-data.com/product/IE00B3RBWM25

{
   "totalFee":0.22,
   "indexName":"FTSE All World Index",
   "name":"Vanguard FTSE All-World UCITS ETF",
   "isin":"IE00B3RBWM25",
   "provider":"Vanguard",
   "domicile":"IRL",
   "baseCurrency":"USD",
   "assetClass":"EQUITY",
   "replicationMethod":"PHYSICAL",
   "distributionFrequency":"QUARTERLY",
   "distributionType":"DISTRIBUTING",
   "listings":[
      {
         "currency":"USD",
         "exchange":"LSE",
         "ticker":"VWRD",
         "reutersTicker":null,
         "bloombergTicker":null
      },
      {
         "currency":null,
         "exchange":"BORSA_ITALIANA",
         "ticker":"VWRL",
         "reutersTicker":"VWRL.MI",
         "bloombergTicker":"VWRL IM"
      },
      {
         "currency":"GBP",
         "exchange":"LSE",
         "ticker":"VWRL",
         "reutersTicker":null,
         "bloombergTicker":null
      },
      {
         "currency":"EUR",
         "exchange":"EURONEXT",
         "ticker":"VWRL",
         "reutersTicker":null,
         "bloombergTicker":null
      },
      {
         "currency":"EUR",
         "exchange":"XETRA",
         "ticker":"VGWL",
         "reutersTicker":"VGWL.DE",
         "bloombergTicker":"VGWL GY"
      },
      {
         "currency":"CHF",
         "exchange":"SIX",
         "ticker":"VWRL",
         "reutersTicker":"VWRL.S",
         "bloombergTicker":"VWRL SE"
      }
   ],
   "regions":[
      {
         "country":"USA",
         "percentage":56.8
      },
      {
         "country":"JPN",
         "percentage":7.5
      },
      {
         "country":"CHN",
         "percentage":5.6
      },
      {
         "country":"GBR",
         "percentage":3.7
      },
      {
         "country":"FRA",
         "percentage":2.7
      },
      {
         "country":"CHE",
         "percentage":2.6
      },
      {
         "country":"DEU",
         "percentage":2.4
      },
      {
         "country":"CAN",
         "percentage":2.3
      },
      {
         "country":"AUS",
         "percentage":2.0
      },
      {
         "country":"TWN",
         "percentage":1.7
      },
      {
         "country":"KOR",
         "percentage":1.5
      },
      {
         "country":"NLD",
         "percentage":1.2
      },
      {
         "country":"IND",
         "percentage":1.2
      },
      {
         "country":"HKG",
         "percentage":1.0
      },
      {
         "country":"SWE",
         "percentage":0.9
      },
      {
         "country":"DNK",
         "percentage":0.7
      },
      {
         "country":"ITA",
         "percentage":0.6
      },
      {
         "country":"BRA",
         "percentage":0.6
      },
      {
         "country":"ESP",
         "percentage":0.6
      },
      {
         "country":"ZAF",
         "percentage":0.5
      },
      {
         "country":"SAU",
         "percentage":0.4
      },
      {
         "country":"FIN",
         "percentage":0.4
      },
      {
         "country":"THA",
         "percentage":0.3
      },
      {
         "country":"RUS",
         "percentage":0.3
      },
      {
         "country":"SGP",
         "percentage":0.3
      },
      {
         "country":"BEL",
         "percentage":0.3
      },
      {
         "country":"MYS",
         "percentage":0.2
      },
      {
         "country":"IDN",
         "percentage":0.2
      },
      {
         "country":"MEX",
         "percentage":0.2
      },
      {
         "country":"NOR",
         "percentage":0.2
      },
      {
         "country":"ISR",
         "percentage":0.1
      },
      {
         "country":"IRL",
         "percentage":0.1
      },
      {
         "country":"CHL",
         "percentage":0.1
      },
      {
         "country":"NZL",
         "percentage":0.1
      },
      {
         "country":"KWT",
         "percentage":0.1
      }
   ],
   "sectors":[
      {
         "sector":"INFORMATION_TECHNOLOGY",
         "percentage":22.2
      },
      {
         "sector":"CONSUMER_DISCRETIONARY",
         "percentage":16.0
      },
      {
         "sector":"INDUSTRIALS",
         "percentage":13.0
      },
      {
         "sector":"FINANCIALS",
         "percentage":13.0
      },
      {
         "sector":"HEALTH_CARE",
         "percentage":11.9
      },
      {
         "sector":"CONSUMER_STAPLES",
         "percentage":6.9
      },
      {
         "sector":"MATERIALS",
         "percentage":4.0
      },
      {
         "sector":"COMMUNICATION_SERVICES",
         "percentage":3.8
      },
      {
         "sector":"UTILITIES",
         "percentage":3.3
      },
      {
         "sector":"ENERGY",
         "percentage":3.0
      },
      {
         "sector":"REAL_ESTATE",
         "percentage":2.8
      }
   ]
}

@bosix
Copy link

bosix commented Dec 20, 2020

@Ragas13 in #1665 hatten @fbuchinger und ich bereits über das Problem des Eingriffs durch den Nutzer geschrieben. Aus meiner Sicht sollte eine automatisch erstellte Klassifikation markiert werden sodass der Nutzer weiß, dass er daran nichts ändern soll. Besser wäre noch, wenn PP das in diesem Fall direkt blockiert. So oder so werden alle Änderungen, die manuell vom Nutzer gemacht wurden, beim nächsten Anwenden der automatischen Klassifikation überschrieben.

Für den Update-Zyklus schlage ich erstmal einen manuellen Button vor. Je nachdem, wie viele Aktien in PP hinterlegt sind, können das sonst ne ganze Menge Requests werden und gerade kostenfreie APIs finden das selten spaßig und so oft ändert sich ja auch nichts nennenswert an den Verteilungen.

Sprachlich spricht aus meiner Sicht nichts gegen Englisch. Vielleicht kann man sogar die Übersetzungsmöglichkeiten, die bereits in PP eingebaut sind, nutzen und die Länder etc. automatisch übersetzen.

@fbuchinger
Copy link

fbuchinger commented Dec 21, 2020 via email

@ghost
Copy link

ghost commented Jan 2, 2021

Equally to #1665

The bad news: ETF data is rather incomplete, I was unable to get industry/country info for the following ETFs: IUSN, EUNL, IS3N, EUNK and CEMR

I've just tried with the Ishares ENUK one, which is ISIN IE00B4K48X80. And gathering the ISIN via finnhhb API with the API key I get the following response:

https://finnhub.io/api/v1/etf/country?isin=IE00B4K48X80&token=xxxxxxxxxxx

{
   "countryExposure":[
      {
         "country":"United Kingdom of Great Britain and Northern Ireland (the)",
         "exposure":20.72
      },
      {
         "country":"France",
         "exposure":16.56
      },
      {
         "country":"Switzerland",
         "exposure":15.84
      },
      {
         "country":"Germany",
         "exposure":14.81
      },
      {
         "country":"Netherlands (the)",
         "exposure":8.51
      },
      {
         "country":"Sweden",
         "exposure":5.08
      },
      {
         "country":"Denmark",
         "exposure":3.95
      },
      {
         "country":"Spain",
         "exposure":3.91
      },
      {
         "country":"Italy",
         "exposure":3.32
      },
      {
         "country":"Finland",
         "exposure":1.95
      },
      {
         "country":"Ireland",
         "exposure":1.55
      },
      {
         "country":"Belgium",
         "exposure":1.47
      },
      {
         "country":"Norway",
         "exposure":0.95
      },
      {
         "country":"Luxembourg",
         "exposure":0.44
      },
      {
         "country":"Austria",
         "exposure":0.28
      },
      {
         "country":"Portugal",
         "exposure":0.27
      },
      {
         "country":"Isle of Man",
         "exposure":0.09
      },
      {
         "country":"Mexico",
         "exposure":0.03
      }
   ],
   "symbol":"SMEA.L"
}

https://finnhub.io/api/v1/etf/country?isin=IE00B4K48X80&token=xxxxxxxxxxx

{
   "sectorExposure":[
      {
         "exposure":10.45,
         "industry":"Pharmaceuticals"
      },
      {
         "exposure":6.66,
         "industry":"Banks"
      },
      {
         "exposure":5.27,
         "industry":"Insurance"
      },
      {
         "exposure":4.77,
         "industry":"Textiles, Apparel \u0026 Luxury Goods"
      },
      {
         "exposure":4.47,
         "industry":"Food Products"
      },
      {
         "exposure":4.14,
         "industry":"Chemicals"
      },
      {
         "exposure":3.78,
         "industry":"Oil, Gas \u0026 Consumable Fuels"
      },
      {
         "exposure":2.97,
         "industry":"Electric Utilities"
      },
      {
         "exposure":2.79,
         "industry":"Semiconductors \u0026 Semiconductor Equipment"
      },
      {
         "exposure":2.76,
         "industry":"Beverages"
      },
      {
         "exposure":2.72,
         "industry":"Capital Markets"
      },
      {
         "exposure":2.69,
         "industry":"Metals \u0026 Mining"
      },
      {
         "exposure":2.63,
         "industry":"Personal Products"
      },
      {
         "exposure":2.37,
         "industry":"Electrical Equipment"
      },
      {
         "exposure":2.36,
         "industry":"Machinery"
      },
      {
         "exposure":2.25,
         "industry":"Diversified Telecommunication Services"
      },
      {
         "exposure":2.12,
         "industry":"Automobiles"
      },
      {
         "exposure":1.98,
         "industry":"Software"
      },
      {
         "exposure":1.97,
         "industry":"Health Care Equipment \u0026 Supplies"
      },
      {
         "exposure":1.82,
         "industry":"Professional Services"
      },
      {
         "exposure":1.74,
         "industry":"Aerospace \u0026 Defense"
      },
      {
         "exposure":1.72,
         "industry":"Other"
      },
      {
         "exposure":1.6,
         "industry":"IT Services"
      },
      {
         "exposure":1.44,
         "industry":"Multi-Utilities"
      },
      {
         "exposure":1.32,
         "industry":"Hotels, Restaurants \u0026 Leisure"
      },
      {
         "exposure":1.3,
         "industry":"Internet \u0026 Direct Marketing Retail"
      },
      {
         "exposure":1.3,
         "industry":"Industrial Conglomerates"
      },
      {
         "exposure":1.21,
         "industry":"Tobacco"
      },
      {
         "exposure":1.06,
         "industry":"Construction \u0026 Engineering"
      },
      {
         "exposure":1.04,
         "industry":"Food \u0026 Staples Retailing"
      },
      {
         "exposure":1.03,
         "industry":"Household Products"
      },
      {
         "exposure":0.97,
         "industry":"Building Products"
      },
      {
         "exposure":0.85,
         "industry":"Air Freight \u0026 Logistics"
      },
      {
         "exposure":0.8,
         "industry":"Diversified Financial Services"
      },
      {
         "exposure":0.8,
         "industry":"Life Sciences Tools \u0026 Services"
      },
      {
         "exposure":0.79,
         "industry":"Real Estate Management \u0026 Development"
      },
      {
         "exposure":0.73,
         "industry":"Construction Materials"
      },
      {
         "exposure":0.71,
         "industry":"Trading Companies \u0026 Distributors"
      },
      {
         "exposure":0.67,
         "industry":"Specialty Retail"
      },
      {
         "exposure":0.59,
         "industry":"Communications Equipment"
      },
      {
         "exposure":0.57,
         "industry":"Equity Real Estate Investment Trusts (REITs)"
      },
      {
         "exposure":0.54,
         "industry":"Paper \u0026 Forest Products"
      },
      {
         "exposure":0.53,
         "industry":"Auto Components"
      },
      {
         "exposure":0.53,
         "industry":"Wireless Telecommunication Services"
      },
      {
         "exposure":0.53,
         "industry":"Biotechnology"
      },
      {
         "exposure":0.51,
         "industry":"Household Durables"
      },
      {
         "exposure":0.51,
         "industry":"Health Care Providers \u0026 Services"
      },
      {
         "exposure":0.5,
         "industry":"Media"
      },
      {
         "exposure":0.4,
         "industry":"Entertainment"
      },
      {
         "exposure":0.38,
         "industry":"Electronic Equipment, Instruments \u0026 Components"
      },
      {
         "exposure":0.33,
         "industry":"Transportation Infrastructure"
      },
      {
         "exposure":0.26,
         "industry":"Marine"
      },
      {
         "exposure":0.21,
         "industry":"Gas Utilities"
      },
      {
         "exposure":0.21,
         "industry":"Interactive Media \u0026 Services"
      },
      {
         "exposure":0.18,
         "industry":"Commercial Services \u0026 Supplies"
      },
      {
         "exposure":0.17,
         "industry":"Water Utilities"
      },
      {
         "exposure":0.16,
         "industry":"Technology Hardware, Storage \u0026 Peripherals"
      },
      {
         "exposure":0.13,
         "industry":"Multiline Retail"
      },
      {
         "exposure":0.12,
         "industry":"Containers \u0026 Packaging"
      },
      {
         "exposure":0.08,
         "industry":"Independent Power and Renewable Electricity Producers"
      },
      {
         "exposure":0.04,
         "industry":"Airlines"
      },
      {
         "exposure":0.04,
         "industry":"Energy Equipment \u0026 Services"
      }
   ],
   "symbol":"SMEA.L"
}

Regular stocks are available via:

https://finnhub.io/api/v1/stock/profile2?isin=IE00B4K48X80&token=bvob9c748v6rbvas2gsg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants