From 6db676e636d63cb48d799bb5c95f79646fce860a Mon Sep 17 00:00:00 2001 From: bptrgx <47859535+bptrgx@users.noreply.github.com> Date: Fri, 30 May 2025 21:29:06 +0200 Subject: [PATCH] performance percentage is 100% if average buy price is zero and performance value is not null --- .../calculator/roai/portfolio-calculator.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts index 99d569be9..2d6afab99 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts @@ -783,7 +783,9 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator { ? totalGrossPerformance.div( timeWeightedAverageInvestmentBetweenStartAndEndDate ) - : new Big(0); + : totalGrossPerformance + ? new Big(1) + : new Big(0); const grossPerformancePercentageWithCurrencyEffect = timeWeightedAverageInvestmentBetweenStartAndEndDateWithCurrencyEffect.gt( @@ -792,7 +794,9 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator { ? totalGrossPerformanceWithCurrencyEffect.div( timeWeightedAverageInvestmentBetweenStartAndEndDateWithCurrencyEffect ) - : new Big(0); + : totalGrossPerformanceWithCurrencyEffect + ? new Big(1) + : new Big(0); const feesPerUnit = totalUnits.gt(0) ? fees.minus(feesAtStartDate).div(totalUnits) @@ -809,7 +813,9 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator { ? totalNetPerformance.div( timeWeightedAverageInvestmentBetweenStartAndEndDate ) - : new Big(0); + : totalNetPerformance + ? new Big(1) + : new Big(0); const netPerformancePercentageWithCurrencyEffectMap: { [key: DateRange]: Big; @@ -902,7 +908,9 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator { netPerformancePercentageWithCurrencyEffectMap[dateRange] = average.gt(0) ? netPerformanceWithCurrencyEffectMap[dateRange].div(average) - : new Big(0); + : netPerformanceWithCurrencyEffectMap[dateRange] + ? new Big(1) + : new Big(0); } if (PortfolioCalculator.ENABLE_LOGGING) {