diff --git a/CHANGELOG.md b/CHANGELOG.md index a4e67288b..0e845a610 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +### Added + +- Broken down the performance into asset and currency on the analysis page (experimental) + ### Changed - Prepared the portfolio calculation for exchange rate effects diff --git a/apps/api/src/app/portfolio/portfolio.controller.ts b/apps/api/src/app/portfolio/portfolio.controller.ts index e6e7def77..d137ae97c 100644 --- a/apps/api/src/app/portfolio/portfolio.controller.ts +++ b/apps/api/src/app/portfolio/portfolio.controller.ts @@ -155,7 +155,9 @@ export class PortfolioController { 'cash', 'committedFunds', 'currentGrossPerformance', + 'currentGrossPerformanceWithCurrencyEffect', 'currentNetPerformance', + 'currentNetPerformanceWithCurrencyEffect', 'currentValue', 'dividend', 'emergencyFund', @@ -383,7 +385,9 @@ export class PortfolioController { performanceInformation.performance, [ 'currentGrossPerformance', + 'currentGrossPerformanceWithCurrencyEffect', 'currentNetPerformance', + 'currentNetPerformanceWithCurrencyEffect', 'currentNetWorth', 'currentValue', 'totalInvestment' diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts index f3072d5bc..0ed7c4444 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts @@ -11,6 +11,7 @@ import { Filter, HistoricalDataItem, PortfolioInvestments, + PortfolioPerformance, Position, User } from '@ghostfolio/common/interfaces'; @@ -54,6 +55,7 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { { label: $localize`Monthly`, value: 'month' }, { label: $localize`Yearly`, value: 'year' } ]; + public performance: PortfolioPerformance; public performanceDataItems: HistoricalDataItem[]; public performanceDataItemsInPercentage: HistoricalDataItem[]; public placeholder = ''; @@ -326,11 +328,12 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { range: this.user?.settings?.dateRange }) .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ chart, firstOrderDate }) => { + .subscribe(({ chart, firstOrderDate, performance }) => { this.firstOrderDate = firstOrderDate ?? new Date(); this.daysInMarket = differenceInDays(new Date(), firstOrderDate); this.investments = []; + this.performance = performance; this.performanceDataItems = []; this.performanceDataItemsInPercentage = []; diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html index ae14d205a..0d69c7b05 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html @@ -34,6 +34,108 @@ + @if (user?.settings?.isExperimentalFeatures) { +