@ -5,13 +5,20 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
## 2.149.0 - 2025-03-30
### Added
- Added support for changing the asset profile identifier (`dataSource` and `symbol`) in the asset profile details dialog of the admin control panel (experimental)
- Set up the terms of service for the _Ghostfolio_ SaaS (cloud)
### Changed
- Improved the static portfolio analysis rule: Emergency fund setup by supporting assets
- Restricted the historical market data gathering to active asset profiles
- Upgraded `nestjs` from version `10.4.15` to `11.0.12`
- Improved the language localization for German (`de`)
This Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your information when You use the Service and tells You about Your privacy rights and how the law protects You.
We use Your Personal data to provide and improve the Service. By using the Service, You agree to the collection and use of information in accordance with this Privacy Policy.
@ -16,7 +14,7 @@ For the purposes of this Privacy Policy:
- **Account** means a unique account created for You to access our Service or parts of our Service.
- **Application** means the software program provided by the Company downloaded by You on any electronic device, named Ghostfolio App.
- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Ghostfolio.
- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Ghostfolio LLC.
- **Country** refers to: Switzerland
- **Device** means any device that can access the Service such as a computer, a cellphone or a digital tablet.
- **Personal Data** is any information that relates to an identified or identifiable individual.
@ -78,3 +76,5 @@ You are advised to review this Privacy Policy periodically for any changes. Chan
## Contact Us
If you have any questions about this Privacy Policy, You can contact us [here](https://ghostfol.io/en/about).
This Terms of Service Agreement (hereinafter referred to as the "Agreement") is a legally binding contract between you (hereinafter referred to as the "User" or "You") and Ghostfolio LLC (hereinafter referred to as "LICENSEE") governing your use of the web application and the application programming interface (API) (hereinafter referred to as the "Service") provided by LICENSEE. By either accessing or using the Service, or by downloading data provided by the Service, you agree to be bound by the terms and conditions of this Agreement. If you do not agree to these terms, please do not access or use the Service.
## Definitions
<oltype="a">
<li>"Service" refers to the services provided by LICENSEE, including, but not limited to, the web application, the application programming interface (API), and the provision of financial market data.</li>
<li>"User" refers to any individual or entity that either accesses or uses the Service, or downloads data provided by the Service.</li>
<li>"LICENSEE" refers to Ghostfolio LLC, the provider of the Service.</li>
</ol>
## License Grant
LICENSEE grants the User a non-exclusive, non-transferable, revocable license to access and use the Service, and download data provided by the Service, solely for lawful and non-commercial purposes in accordance with the terms and conditions of this Agreement.
## Use Restrictions
The User agrees to the following use restrictions:
<oltype="a">
<li>The Service provided by LICENSEE is for informational and educational purposes only and shall not be used for any commercial purposes.</li>
<li>The User shall not distribute, sell, rent, lease, sublicense, or otherwise transfer the data provided by the Service to any third party.</li>
<li>The User shall not modify, adapt, reverse engineer, decompile, disassemble, or create derivative works based on the Service.</li>
<li>The User shall not use the Service in any manner that violates applicable laws or regulations.</li>
</ol>
## Ownership
The Service, and all data provided by the Service, is the property of LICENSEE and is protected by intellectual property laws. The User acknowledges that LICENSEE retains all rights, title, and interest in and to the Service.
## Disclaimer of Warranty
LICENSEE provides the Service and data provided by the Service "as is" and makes no representations or warranties regarding the accuracy, completeness, or reliability of the Service. The User uses the Service at their own risk.
## Limitation of Liability
LICENSEE shall not be liable for any direct, indirect, incidental, special, or consequential damages arising out of or in connection with the use or inability to use the Service or the data provided by the Service.
## Termination
This Agreement is effective until terminated by either party. The User may terminate this Agreement by ceasing to use the Service. LICENSEE may terminate this Agreement at any time without notice if the User breaches any of its terms. Upon termination, the User must cease all use of the Service and data provided by the Service.
## Governing Law
This Agreement shall be governed by and construed in accordance with the laws of Zurich, Switzerland, without regard to its conflict of law principles.
## Entire Agreement
This Agreement constitutes the entire agreement between the User and LICENSEE regarding the Service and supersedes all prior agreements and understandings, whether oral or written.
## Changes to Agreement
LICENSEE reserves the right to modify this Agreement at any time. Users are encouraged to review this Agreement periodically for updates. Continued use of the Service after changes to this Agreement constitutes acceptance of the modified terms.
By accessing or using the Service, or downloading data provided by the Service, the User acknowledges that they have read, understood, and agreed to be bound by this Terms of Service Agreement.
For any questions or concerns regarding this Agreement, please contact us [here](https://ghostfol.io/en/about).
<target state="translated">El risc d’assumir pèrdues en les inversions és substancial. No és recomanable invertir diners que pugui necessitar a curt termini.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst.</target>
<target state="translated">Bitte bewahre dein Sicherheits-Token sicher auf. Wenn du es verlierst, kannst du dein Benutzerkonto nicht wiederherstellen.</target>
<source>I understand that if I lose my security token, I cannot recover my account.</source>
<target state="translated">Ich nehme zur Kenntnis, dass ich mein Benutzerkonto nicht wiederherstellen kann, wenn ich mein Sicherheits-Token verliere.</target>
<source>I understand that if I lose my security token, I cannot recover my account</source>
<target state="translated">Ich nehme zur Kenntnis, dass ich mein Benutzerkonto nicht wiederherstellen kann, wenn ich mein Sicherheits-Token verliere</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="translated">und ich stimme den <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Allgemeinen Geschäftsbedingungen<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/> zu.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="translated"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) wird bereits verwendet.</target>
<source>An error occurred while updating to <x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>).</source>
<target state="translated">Bei der Änderung zu <x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) ist ein Fehler aufgetreten.</target>
<target state="translated">El riesgo de pérdida en trading puede ser sustancial. No es aconsejable invertir dinero que puedas necesitar a corto plazo.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">Le risque de perte en investissant peut être important. Il est déconseillé d’investir de l’argent dont vous pourriez avoir besoin à court terme.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">Ryzyko strat na rynku może być znaczne. Nie jest zalecane inwestowanie pieniędzy, które mogą być potrzebne w krótkim okresie.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<target state="translated">Ризик втрат у торгівлі може бути суттєвим. Не рекомендується інвестувати гроші, які можуть знадобитися в короткостроковій перспективі.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<source>and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</source>
<target state="new">and I agree to the <x id="START_LINK" ctype="x-a" equiv-text="<a class="font-weight-bold" target="_blank" [routerLink]="routerLinkAboutTermsOfService" >"/>Terms of Service<x id="CLOSE_LINK" ctype="x-a" equiv-text="</a >"/>.</target>
<source><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</source>
<target state="new"><x id="PH" equiv-text="assetProfileIdentifier.symbol"/> (<x id="PH_1" equiv-text="assetProfileIdentifier.dataSource"/>) is already in use.</target>