Browse Source

Add dividend yield

pull/2636/head
Thomas Kaul 1 year ago
parent
commit
b8c1c8831e
  1. 6
      apps/api/src/app/portfolio/portfolio.service.ts
  2. 3
      apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts
  3. 39
      apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html

6
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(

3
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<Activity>;
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(

39
apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html

@ -134,17 +134,29 @@
>Investment</gf-value
>
</div>
<div class="col-6 mb-3">
<gf-value
i18n
size="medium"
[isCurrency]="true"
[locale]="data.locale"
[unit]="data.baseCurrency"
[value]="dividendInBaseCurrency"
>Dividend</gf-value
>
</div>
@if (dividendInBaseCurrency && user?.settings?.isExperimentalFeatures) {
<div class="col-6 mb-3">
<gf-value
i18n
size="medium"
[isCurrency]="true"
[locale]="data.locale"
[unit]="data.baseCurrency"
[value]="dividendInBaseCurrency"
>Dividend</gf-value
>
</div>
<div class="col-6 mb-3">
<gf-value
i18n
size="medium"
[isPercent]="true"
[locale]="data.locale"
[value]="dividendYieldPercent"
>Dividend Yield</gf-value
>
</div>
}
<div class="col-6 mb-3">
<gf-value
i18n
@ -179,6 +191,9 @@
}
</gf-value>
</div>
@if (user?.settings?.isExperimentalFeatures) {
<div class="col-6 mb-3"></div>
}
<div class="col-6 mb-3">
<gf-value i18n size="medium" [hidden]="!assetClass" [value]="assetClass"
>Asset Class</gf-value
@ -292,7 +307,7 @@
[deviceType]="data.deviceType"
[hasPermissionToCreateActivity]="false"
[hasPermissionToExportActivities]="
!data.hasImpersonationId && !user.settings.isRestrictedView
!data.hasImpersonationId && !user?.settings?.isRestrictedView
"
[hasPermissionToFilter]="false"
[hasPermissionToOpenDetails]="false"

Loading…
Cancel
Save