From b8c1c8831eba0e48a89b6740787bf88c02b7bd90 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Wed, 3 Apr 2024 18:27:25 +0200 Subject: [PATCH] Add dividend yield --- .../src/app/portfolio/portfolio.service.ts | 6 ++- .../position-detail-dialog.component.ts | 3 ++ .../position-detail-dialog.html | 39 +++++++++++++------ 3 files changed, 34 insertions(+), 14 deletions(-) diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index adcb0d755..14977ffc0 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -768,9 +768,9 @@ export class PortfolioService { dividendInBaseCurrency, fee, firstBuyDate, - investment, marketPrice, quantity, + timeWeightedInvestmentWithCurrencyEffect, transactionCount } = position; @@ -785,7 +785,9 @@ export class PortfolioService { const dividendYieldPercent = this.getAnnualizedPerformancePercent({ daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), - netPerformancePercent: dividendInBaseCurrency.mul(100).div(investment) + netPerformancePercent: dividendInBaseCurrency.div( + timeWeightedInvestmentWithCurrencyEffect + ) }); const historicalData = await this.dataProviderService.getHistorical( diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts index 6ada2eeb1..570f9ebfc 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts @@ -48,6 +48,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit { public dataProviderInfo: DataProviderInfo; public dataSource: MatTableDataSource; public dividendInBaseCurrency: number; + public dividendYieldPercent: number; public feeInBaseCurrency: number; public firstBuyDate: string; public historicalDataItems: LineChartItem[]; @@ -95,6 +96,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit { averagePrice, dataProviderInfo, dividendInBaseCurrency, + dividendYieldPercent, feeInBaseCurrency, firstBuyDate, historicalData, @@ -119,6 +121,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit { this.dataProviderInfo = dataProviderInfo; this.dataSource = new MatTableDataSource(orders.reverse()); this.dividendInBaseCurrency = dividendInBaseCurrency; + this.dividendYieldPercent = dividendYieldPercent; this.feeInBaseCurrency = feeInBaseCurrency; this.firstBuyDate = firstBuyDate; this.historicalDataItems = historicalData.map( diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html index 3a8694c83..99eac9e12 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -134,17 +134,29 @@ >Investment -
- Dividend -
+ @if (dividendInBaseCurrency && user?.settings?.isExperimentalFeatures) { +
+ Dividend +
+
+ Dividend Yield +
+ }
+ @if (user?.settings?.isExperimentalFeatures) { +
+ }
Asset Class