diff --git a/apps/api/src/app/portfolio/portfolio-calculator.spec.ts b/apps/api/src/app/portfolio/portfolio-calculator.spec.ts index 0545646c7..d1f967fb2 100644 --- a/apps/api/src/app/portfolio/portfolio-calculator.spec.ts +++ b/apps/api/src/app/portfolio/portfolio-calculator.spec.ts @@ -1,3 +1,4 @@ +import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; import { OrderType } from '@ghostfolio/api/models/order-type'; import { parseDate, resetHours } from '@ghostfolio/common/helper'; import { Currency } from '@prisma/client'; @@ -18,7 +19,6 @@ import { TimelinePeriod } from './interfaces/timeline-period.interface'; import { TimelineSpecification } from './interfaces/timeline-specification.interface'; import { TransactionPoint } from './interfaces/transaction-point.interface'; import { PortfolioCalculator } from './portfolio-calculator'; -import { PortfolioService } from '@ghostfolio/api/app/portfolio/portfolio.service'; function mockGetValue(symbol: string, date: Date) { switch (symbol) { diff --git a/apps/api/src/app/portfolio/portfolio-calculator.ts b/apps/api/src/app/portfolio/portfolio-calculator.ts index 259c3e128..1f2f57a7d 100644 --- a/apps/api/src/app/portfolio/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/portfolio-calculator.ts @@ -104,6 +104,23 @@ export class PortfolioCalculator { } } + public getAnnualizedPerformancePercent({ + daysInMarket, + netPerformancePercent + }: { + daysInMarket: number; + netPerformancePercent: Big; + }): Big { + if (isNumber(daysInMarket) && daysInMarket > 0) { + const exponent = new Big(365).div(daysInMarket).toNumber(); + return new Big( + Math.pow(netPerformancePercent.plus(1).toNumber(), exponent) + ).minus(1); + } + + return new Big(0); + } + public getTransactionPoints(): TransactionPoint[] { return this.transactionPoints; } @@ -618,21 +635,4 @@ export class PortfolioCalculator { !isBefore(currentDate, parseDate(timelineSpecification[i + 1].start)) ); } - - public getAnnualizedPerformancePercent({ - daysInMarket, - netPerformancePercent - }: { - daysInMarket: number; - netPerformancePercent: Big; - }): Big { - if (isNumber(daysInMarket) && daysInMarket > 0) { - const exponent = new Big(365).div(daysInMarket).toNumber(); - return new Big( - Math.pow(netPerformancePercent.plus(1).toNumber(), exponent) - ).minus(1); - } - - return new Big(0); - } }