diff --git a/.gitignore b/.gitignore index 3ccb616de..fe165c0f2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ old/ s.bat .DS_Store test.md +.idea diff --git a/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_alle_kurse.png b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_alle_kurse.png new file mode 100755 index 000000000..458a808bf Binary files /dev/null and b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_alle_kurse.png differ diff --git a/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools.png b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools.png new file mode 100755 index 000000000..518a62169 Binary files /dev/null and b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools.png differ diff --git a/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools_details.png b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools_details.png new file mode 100755 index 000000000..fc4d2b573 Binary files /dev/null and b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools_details.png differ diff --git a/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools_details_json.png b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools_details_json.png new file mode 100755 index 000000000..2fef127b3 Binary files /dev/null and b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_developer_tools_details_json.png differ diff --git a/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_historische_Daten.png b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_historische_Daten.png new file mode 100755 index 000000000..983674ac2 Binary files /dev/null and b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_historische_Daten.png differ diff --git a/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_settings_pp.png b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_settings_pp.png new file mode 100755 index 000000000..74a300b4c Binary files /dev/null and b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_settings_pp.png differ diff --git a/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_settings_pp_final.png b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_settings_pp_final.png new file mode 100755 index 000000000..117122c81 Binary files /dev/null and b/docs/de/how-to/historische-aktienkurse/images/screenshot_onvista_json_settings_pp_final.png differ diff --git a/docs/de/how-to/historische-aktienkurse/json.md b/docs/de/how-to/historische-aktienkurse/json.md index 609e15628..0f0bd7350 100644 --- a/docs/de/how-to/historische-aktienkurse/json.md +++ b/docs/de/how-to/historische-aktienkurse/json.md @@ -116,4 +116,210 @@ Abbildung: JSON Kursdaten Parameter.{class=pp-figure} ![](images/json-yahoo-parameter.png) -Bei den meisten Diensten muss man sich registrieren, um einen API-Schlüssel zu erhalten, eine eindeutige Kennung, die den Nutzer authentifiziert und den Zugang zum Dienst ermöglicht. Zwar bieten zahlreiche Finanzdienste scheinbar kostenlose API-Schlüssel an, doch erweisen sich ihre Nutzungsbedingungen und langfristigen Verpflichtungen oft als unzureichend. Portfolio Performance hat aus Kompatibilitätsgründen mehrere dieser Dienste in seiner Liste der Kursquellen-Anbieter behalten; z.B. Alpha Vantage, eodhd, .... In der Regel empfiehlt es sich, Portfolio Report und Yahoo Finance für ein typisches Portfolio zu nutzen. \ No newline at end of file +Bei den meisten Diensten muss man sich registrieren, um einen API-Schlüssel zu erhalten, eine eindeutige Kennung, die den Nutzer authentifiziert und den Zugang zum Dienst ermöglicht. Zwar bieten zahlreiche Finanzdienste scheinbar kostenlose API-Schlüssel an, doch erweisen sich ihre Nutzungsbedingungen und langfristigen Verpflichtungen oft als unzureichend. Portfolio Performance hat aus Kompatibilitätsgründen mehrere dieser Dienste in seiner Liste der Kursquellen-Anbieter behalten; z.B. Alpha Vantage, eodhd, .... In der Regel empfiehlt es sich, Portfolio Report und Yahoo Finance für ein typisches Portfolio zu nutzen. + + +## Beispiel Onvista API (Stand: 03.08.2024) +Onvista (https://www.onvista.de/) hat ein breites Spektrum an Assets und dazu auch sehr lang vorgehaltene historische Daten. +Wer historische Daten von vor 10 Jahren und mehr benötigt (bspw. für das Tracken von Rentenversicherunge etc.), +hat hier große Chancen fündig zu werden. + +Auf der Seite eines Assets kann man aktuell unter `Alle Kurse` ganz unten unter `Historische Kurse zu XYZ` +historische Daten von einem Monat direkt einsehen. Längere Zeiträume müssen als CSV Datei runter geladen werden. + +Abbildung: Alle Kurse anzeigen Onvista {class="pp-figure"} + +![](images/screenshot_onvista_json_alle_kurse.png) + +Abbildung: Historische Kursdaten Onvista {class="pp-figure"} + +![](images/screenshot_onvista_json_historische_Daten.png) + +In der Filterauswahl über der Tabelle ist es möglich den jeweiligen Handelsplatz auszuwählen, +das Startdatum festzulegen und den Zeitraum, der betrachtet werden soll. Sobald mehr als ein Monat ausgewählt wird, +erscheint statt der Kursliste ein Download Button und man muss eine CSV runter laden. +Ein automatisierter CSV Import von einer URL ist über Portfolio Performance aktuell nicht möglich. +Da aber im Hintergrund des Download-Mechanismuses ein Call gegen die Onvista API (HTTP) stattfindet, +welcher ein JSON object zurückliefert, kann die Call-URL und das zurückgegebene JSON für einen automatisierten Import +genutzt werden. + +Beispiel-Url: +[https://api.onvista.de/api/v1/instruments/FUND/6278016/eod_history?idNotation=35420185&range=M1&startDate=2024-07-03&withEarnings=true](https://api.onvista.de/api/v1/instruments/FUND/6278016/eod_history?idNotation=35420185&range=M1&startDate=2024-07-03&withEarnings=true)). + +### URL Aufbau +Die URL unterscheidet sich, je nachdem was man in der Filterauswahl über der Tabelle ausgewählt hat. + +Die wichtigen Parts sind: + +- Der Wert hinter `/FUND/` (hier: `6278016`) in der URI, stellt das zu exportierende Asset dar. +- Der Parameter `idNotation` (hier: `35420185`) bestimmt den Handelsplatz. +- Der Parameter `range` (hier: `M1`) gibt den Betrachtungszeitraum an (Dauer). +- Der Parameter `startDate` (hier: `2024-07-03`) gibt das Startdatum der Kurse an. + +Die weiteren Parameter sind für den Import unerheblich. + +### URL ermitteln +Um den größtmöglichen historischen Zeitraum zu beziehen, stellt man bei `Dauer` den Wert `max.` ein. +Das Startdatum springt dann automatisch auf den Anfang der Unix Epoche `01.01.1970`. +Anschließend wählt man den gewünschten Handelsplatz oder probiert einige Handelsplätze durch und wählt den mit der +längsten Historie oder der besten Datenqualität. Dazu lädt man sich die Dateien zunächst exemplarisch runter und öffnet +sie in Excel oder ähnlichem. + +Um nun an die URL des Calls zu kommen, kann man die Developer Tools der jeweiligen Browser nutzen. Im Chrome kann die +Developer Toolbar über die Taste `F12` oder die Tastenkombination `Strg+Shift+I` geöffnet werden (alternativ über das +Browsermenü unter `Weitere Tool -> Developer Tools`). + +In den Developer Tools wählt man nun den `Netzwerk` Tab und stellt den Filter `Fetch/XHR` ein. Außerdem stellt man beim +Textfilter `eod_history?` ein. Zudem löscht man zuvor am besten einmal alle bestehenden Calls mittels des +`Clear Nework Logs`-Button. +So bekommt man beim Ausführen des Downloads nur die Calls angezeigt, die zum Download der +CSV gehören. Nach dem erneuten Ausführen des Downloads, kann man den Download Call dann in Log-Liste sehen. + +Abbildung: Onvista API Call Developer Tools {class="pp-figure"} + +![](images/screenshot_onvista_json_developer_tools.png) + +Durch Anklicken des Calls, kann man den Call genauer betrachten und sich die URL aus den Call-Details +kopieren. Den Teil `&withEarnings=true` kann man dabei auslassen. + +Abbildung: Onvista JSON URL mittels Developer Tools beziehen {class="pp-figure"} + +![](images/screenshot_onvista_json_developer_tools_details.png) + +Diese Url kann nun in Portfolio Performance als Kurs-Url eingetragen werden. + +Abbildung: Onvista JSON in Call Details {class="pp-figure"} + +![](images/screenshot_onvista_json_settings_pp.png) + +### JSON Antwort einsehen +Um die oben erläuterten JSON Pfade zu ermitteln, kann man die URL auch einfach in der Browser Adressbar eingeben und +man bekommt das JSON direkt im Browser angezeigt. Alternativ ist es auch im Tab `Response` in den Call-Details zu finden. + +Abbildung: Onvista JSON in Call Details {class="pp-figure"} + +![](images/screenshot_onvista_json_developer_tools_details_json.png) + +### Beispiel JSON +Hier ein gekürztes Beispiel des gelieferten Onvista API JSONs: + +```json +{ + "expires": 1722542222119, + "entityType": "FUND", + "entityValue": "11680838", + "market": { + "name": "Frankfurt", + "codeMarket": "_FRA", + "nameExchange": "Frankfurt", + "codeExchange": "FRA", + "idNotation": 15911132, + "isoCountry": "DE" + }, + "idInstrument": 11680838, + "idNotation": 15911132, + "isoCurrency": "EUR", + "unitType": "STK", + "datetimeStartAvailableHistory": "2006-10-20T00:00:00.000+00:00", + "datetimeEndAvailableHistory": "2024-07-31T23:59:59.000+00:00", + "idTradingSchedule": 66, + "datetimeLast": [ + 1719835200, + 1719921600, + 1720008000, + 1720094400, + 1720180800, + 1720440000, + 1720526400, + 1720612800, + 1720699200 + ], + "first": [ + 2107.229, + 2106.275, + 2119.345, + 2126.186, + 2114.754, + 2116.483, + 2125.949, + 2133.487, + 2152.971 + ], + "last": [ + 2109.383, + 2114.109, + 2123.822, + 2115.041, + 2119.793, + 2131.636, + 2133.645, + 2143.027, + 2132.029 + ], + "high": [ + 2109.777, + 2114.109, + 2123.822, + 2126.186, + 2119.793, + 2134.405, + 2138.599, + 2143.078, + 2154.079 + ], + "low": [ + 2102.052, + 2098.794, + 2110.312, + 2114.702, + 2112.632, + 2116.483, + 2125.949, + 2133.487, + 2132.029 + ], + "volume": [ + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 40.0 + ], + "numberPrices": [ + 23, + 27, + 23, + 18, + 22, + 23, + 20, + 28, + 1 + ], + "displayUnit": "EUR" +} +``` +Aus der Struktur ergeben sich folgenden Eingaben in Portfolio Performance: + +| Feld Portfolio Performance | JSON Pfad | +|----------------------------|---------------------| +| Pfad zum Datum | `$.datetimeLast[*]` | +| Pfad zum Kurs | `$.last.*` | +| Pfad zum Tagestief | `$.low.*` | +| Pfad zum Tageshoch | `$.high.*` | +| Pfad zum Volumen | `$.volume.*` | + + +#### Eingabe in Portfolio Performance +Wenn man die URL, den Datums- und den Kurs-Pfad angegeben hat, sollte Portfolio Performance bereits Kursdaten laden und +im Dialogfenster unten anzeigen. Die anderen Felder sind nicht zwingend notwendig. + +Abbildung: Finale Settings Portfolio Performance Onvista JSON {class="pp-figure"} + +![](images/screenshot_onvista_json_settings_pp_final.png) + + diff --git a/docs/en/getting-started/rebalancing.md b/docs/en/getting-started/rebalancing.md index 4115fae24..831d8e582 100644 --- a/docs/en/getting-started/rebalancing.md +++ b/docs/en/getting-started/rebalancing.md @@ -14,4 +14,4 @@ The first step is to set the allocation goal for each category. For example, in The Rebalance (Amount) and Rebalance (Shares) columns show the amount and number of shares you need to sell (negative number) or buy (positive number) to reach the target value. Naturally, it isn't always possible to buy or sell a fractional number of shares. -Please note that the sum of the allocation percentages across categories does not need to be 100%, although it is advisable. Colour coding will draw your attention to any discrepancies if the sum isn't 100%. \ No newline at end of file +Please note that the sum of the allocation percentages across categories does not need to be 100%, although it is advisable. Color coding will draw your attention to any discrepancies if the sum isn't 100%. \ No newline at end of file diff --git a/docs/en/reference/view/taxonomies/using-taxonomies.md b/docs/en/reference/view/taxonomies/using-taxonomies.md index 49003c38f..77211f07c 100644 --- a/docs/en/reference/view/taxonomies/using-taxonomies.md +++ b/docs/en/reference/view/taxonomies/using-taxonomies.md @@ -14,7 +14,7 @@ By default, the definition view displays a table with the five columns: - **Weight**: The weight represents the proportion or percentage that a security can contribute to its total value. A weight of 100% indicates that all securities are included in calculating the total value. This field is used in the Rebalancing view. -- **Color**: Each category is automatically assigned a colour. You can change the colour using the context menu. +- **Color**: Each category is automatically assigned a color. You can change the color using the context menu. - **Actual Value**: The market value of a security on the current day. For a category, this is the summed market value of all securities assigned to that category. For example, as of 2024-07-08, the market value of Daimler Trucks is 20 shares x 36.36 EUR = 727.20 EUR, and for Mercedes: 10 shares x 65.47 EUR = 654.70 EUR. Thus, the total value for the category is 727.20 EUR + 654.70 EUR = 1381.90 EUR. Please note that there is a significant number of unassigned securities in `myTaxonomy`.Foreign securities (e.g. Amazon) are calculated in the base currency. @@ -58,7 +58,7 @@ Figure: Pie chart of the portfolio + zoomed-in variants. {class=pp-figure} ![](images/taxonomies-pie-chart.svg) -The pie chart representing the entire portfolio in Figure 3 appears simple and incomplete because not all securities are assigned to categories within `myTaxonomy`. From Figure 1, it can be inferred that approximately 28% of the securities are assigned, represented by the purple-coloured segment. +The pie chart representing the entire portfolio in Figure 3 appears simple and incomplete because not all securities are assigned to categories within `myTaxonomy`. From Figure 1, it can be inferred that approximately 28% of the securities are assigned, represented by the purple-colored segment. By clicking on a segment of the pie chart, you can zoom in on that particular part. The second pie chart displayed in the middle of Figure 3 shows the categories within `myTaxonomy`, such as Base Currency and Foreign Currencies. The third pie chart specifically focuses on the `Base Currency` category. @@ -86,7 +86,7 @@ Figure: Stacked chart of the portfolio. {class=pp-figure} ![](images/taxonomies-stacked-chart.png) -A stacked chart is a type of chart that displays data as a series of coloured lines, where each line represents a category. The position of the line on the y-axis corresponds to cumulative value of the category. The lines are stacked on top of each other to show the total value of all categories combined, which is 100%. By default, the categories are stacked from large to small, with the largest category at the bottom of the chart. The order of stacking can be adjusted using the :gear: icon, allowing bars to be stacked based on magnitude or according to their position in the taxonomy list. +A stacked chart is a type of chart that displays data as a series of colored lines, where each line represents a category. The position of the line on the y-axis corresponds to cumulative value of the category. The lines are stacked on top of each other to show the total value of all categories combined, which is 100%. By default, the categories are stacked from large to small, with the largest category at the bottom of the chart. The order of stacking can be adjusted using the :gear: icon, allowing bars to be stacked based on magnitude or according to their position in the taxonomy list. Both the stacked and stacked area charts plot time on the X-axis, set by the selected reporting period (default=1 year).