diff --git a/apps/api/src/app/portfolio/calculator/mwr/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/mwr/portfolio-calculator.ts index 7426807c0..ec744f624 100644 --- a/apps/api/src/app/portfolio/calculator/mwr/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/mwr/portfolio-calculator.ts @@ -1,9 +1,9 @@ import { PortfolioCalculator } from '@ghostfolio/api/app/portfolio/calculator/portfolio-calculator'; import { CurrentPositions } from '@ghostfolio/api/app/portfolio/interfaces/current-positions.interface'; import { + SymbolMetrics, TimelinePosition, - UniqueAsset, - SymbolMetrics + UniqueAsset } from '@ghostfolio/common/interfaces'; export class MWRPortfolioCalculator extends PortfolioCalculator { diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts index 5b34ca205..cf1fe9324 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.factory.ts @@ -9,8 +9,8 @@ import { PortfolioCalculator } from './portfolio-calculator'; import { TWRPortfolioCalculator } from './twr/portfolio-calculator'; export enum PerformanceCalculationType { - TWR = 'TWR', // Time-Weighted Rate of Return - MWR = 'MWR' // Money-Weighted Rate of Return + MWR = 'MWR', // Money-Weighted Rate of Return + TWR = 'TWR' // Time-Weighted Rate of Return } @Injectable() diff --git a/apps/api/src/app/portfolio/current-rate.service.spec.ts b/apps/api/src/app/portfolio/current-rate.service.spec.ts index 867f38009..9b0548522 100644 --- a/apps/api/src/app/portfolio/current-rate.service.spec.ts +++ b/apps/api/src/app/portfolio/current-rate.service.spec.ts @@ -1,4 +1,3 @@ -import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service'; import { DataProviderService } from '@ghostfolio/api/services/data-provider/data-provider.service'; import { MarketDataService } from '@ghostfolio/api/services/market-data/market-data.service'; import { PropertyService } from '@ghostfolio/api/services/property/property.service'; @@ -6,6 +5,7 @@ import { UniqueAsset } from '@ghostfolio/common/interfaces'; import { DataSource, MarketData } from '@prisma/client'; +import { CurrentRateService } from './current-rate.service'; import { GetValuesObject } from './interfaces/get-values-object.interface'; jest.mock('@ghostfolio/api/services/market-data/market-data.service', () => { diff --git a/apps/api/src/app/portfolio/portfolio.module.ts b/apps/api/src/app/portfolio/portfolio.module.ts index 6fb4db1e7..6b06bf02d 100644 --- a/apps/api/src/app/portfolio/portfolio.module.ts +++ b/apps/api/src/app/portfolio/portfolio.module.ts @@ -2,7 +2,6 @@ import { AccessModule } from '@ghostfolio/api/app/access/access.module'; import { AccountBalanceService } from '@ghostfolio/api/app/account-balance/account-balance.service'; import { AccountService } from '@ghostfolio/api/app/account/account.service'; import { OrderModule } from '@ghostfolio/api/app/order/order.module'; -import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.service'; import { UserModule } from '@ghostfolio/api/app/user/user.module'; import { ApiModule } from '@ghostfolio/api/services/api/api.module'; import { ConfigurationModule } from '@ghostfolio/api/services/configuration/configuration.module'; @@ -17,6 +16,7 @@ import { SymbolProfileModule } from '@ghostfolio/api/services/symbol-profile/sym import { Module } from '@nestjs/common'; import { PortfolioCalculatorFactory } from './calculator/portfolio-calculator.factory'; +import { CurrentRateService } from './current-rate.service'; import { PortfolioController } from './portfolio.controller'; import { PortfolioService } from './portfolio.service'; import { RulesService } from './rules.service'; diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 37c28cc3c..566ad4049 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -947,6 +947,7 @@ export class PortfolioService { const user = await this.userService.user({ id: userId }); const { endDate, startDate } = getInterval(dateRange); + const { activities } = await this.orderService.getOrders({ endDate, filters, @@ -1121,6 +1122,7 @@ export class PortfolioService { const { endDate, startDate } = getInterval(dateRange); const { activities } = await this.orderService.getOrders({ + endDate, filters, userCurrency, userId, @@ -1769,8 +1771,8 @@ export class PortfolioService { const annualizedPerformancePercent = this.calculatorFactory .createCalculator({ - calculationType: PerformanceCalculationType.TWR, activities: [], + calculationType: PerformanceCalculationType.TWR, currency: userCurrency }) .getAnnualizedPerformancePercent({ @@ -1784,8 +1786,8 @@ export class PortfolioService { const annualizedPerformancePercentWithCurrencyEffect = this.calculatorFactory .createCalculator({ - calculationType: PerformanceCalculationType.TWR, activities: [], + calculationType: PerformanceCalculationType.TWR, currency: userCurrency }) .getAnnualizedPerformancePercent({