|
|
|
@ -576,8 +576,8 @@ export class PortfolioService { |
|
|
|
for (const { |
|
|
|
activitiesCount, |
|
|
|
currency, |
|
|
|
dateOfFirstActivity, |
|
|
|
dividend, |
|
|
|
firstBuyDate, |
|
|
|
grossPerformance, |
|
|
|
grossPerformanceWithCurrencyEffect, |
|
|
|
grossPerformancePercentage, |
|
|
|
@ -633,7 +633,7 @@ export class PortfolioService { |
|
|
|
assetSubClass: assetProfile.assetSubClass, |
|
|
|
countries: assetProfile.countries, |
|
|
|
dataSource: assetProfile.dataSource, |
|
|
|
dateOfFirstActivity: parseDate(firstBuyDate), |
|
|
|
dateOfFirstActivity: parseDate(dateOfFirstActivity), |
|
|
|
dividend: dividend?.toNumber() ?? 0, |
|
|
|
grossPerformance: grossPerformance?.toNumber() ?? 0, |
|
|
|
grossPerformancePercent: grossPerformancePercentage?.toNumber() ?? 0, |
|
|
|
@ -801,9 +801,9 @@ export class PortfolioService { |
|
|
|
activitiesCount, |
|
|
|
averagePrice, |
|
|
|
currency, |
|
|
|
dateOfFirstActivity, |
|
|
|
dividendInBaseCurrency, |
|
|
|
feeInBaseCurrency, |
|
|
|
firstBuyDate, |
|
|
|
grossPerformance, |
|
|
|
grossPerformancePercentage, |
|
|
|
grossPerformancePercentageWithCurrencyEffect, |
|
|
|
@ -828,7 +828,10 @@ export class PortfolioService { |
|
|
|
}); |
|
|
|
|
|
|
|
const dividendYieldPercent = getAnnualizedPerformancePercent({ |
|
|
|
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), |
|
|
|
daysInMarket: differenceInDays( |
|
|
|
new Date(), |
|
|
|
parseDate(dateOfFirstActivity) |
|
|
|
), |
|
|
|
netPerformancePercentage: timeWeightedInvestment.eq(0) |
|
|
|
? new Big(0) |
|
|
|
: dividendInBaseCurrency.div(timeWeightedInvestment) |
|
|
|
@ -836,7 +839,10 @@ export class PortfolioService { |
|
|
|
|
|
|
|
const dividendYieldPercentWithCurrencyEffect = |
|
|
|
getAnnualizedPerformancePercent({ |
|
|
|
daysInMarket: differenceInDays(new Date(), parseDate(firstBuyDate)), |
|
|
|
daysInMarket: differenceInDays( |
|
|
|
new Date(), |
|
|
|
parseDate(dateOfFirstActivity) |
|
|
|
), |
|
|
|
netPerformancePercentage: timeWeightedInvestmentWithCurrencyEffect.eq(0) |
|
|
|
? new Big(0) |
|
|
|
: dividendInBaseCurrency.div(timeWeightedInvestmentWithCurrencyEffect) |
|
|
|
@ -845,7 +851,7 @@ export class PortfolioService { |
|
|
|
const historicalData = await this.dataProviderService.getHistorical( |
|
|
|
[{ dataSource, symbol }], |
|
|
|
'day', |
|
|
|
parseISO(firstBuyDate), |
|
|
|
parseISO(dateOfFirstActivity), |
|
|
|
new Date() |
|
|
|
); |
|
|
|
|
|
|
|
@ -910,7 +916,7 @@ export class PortfolioService { |
|
|
|
// Add historical entry for buy date, if no historical data available
|
|
|
|
historicalDataArray.push({ |
|
|
|
averagePrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency, |
|
|
|
date: firstBuyDate, |
|
|
|
date: dateOfFirstActivity, |
|
|
|
marketPrice: activitiesOfHolding[0].unitPriceInAssetProfileCurrency, |
|
|
|
quantity: activitiesOfHolding[0].quantity |
|
|
|
}); |
|
|
|
@ -924,6 +930,7 @@ export class PortfolioService { |
|
|
|
|
|
|
|
return { |
|
|
|
activitiesCount, |
|
|
|
dateOfFirstActivity, |
|
|
|
marketPrice, |
|
|
|
marketPriceMax, |
|
|
|
marketPriceMin, |
|
|
|
@ -931,7 +938,6 @@ export class PortfolioService { |
|
|
|
tags, |
|
|
|
averagePrice: averagePrice.toNumber(), |
|
|
|
dataProviderInfo: portfolioCalculator.getDataProviderInfos()?.[0], |
|
|
|
dateOfFirstActivity: firstBuyDate, |
|
|
|
dividendInBaseCurrency: dividendInBaseCurrency.toNumber(), |
|
|
|
dividendYieldPercent: dividendYieldPercent.toNumber(), |
|
|
|
dividendYieldPercentWithCurrencyEffect: |
|
|
|
|