diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index 754794d94..bbe2a6ca5 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -1279,15 +1279,15 @@ export class PortfolioService { summary.ordersCount > 0 ? await this.rulesService.evaluate( [ - new RegionalMarketClusterRiskNorthAmerica( + new RegionalMarketClusterRiskEurope( this.exchangeRateDataService, marketsAdvancedTotalInBaseCurrency, - marketsAdvanced.northAmerica.valueInBaseCurrency + marketsAdvanced.europe.valueInBaseCurrency ), - new RegionalMarketClusterRiskEurope( + new RegionalMarketClusterRiskNorthAmerica( this.exchangeRateDataService, marketsAdvancedTotalInBaseCurrency, - marketsAdvanced.europe.valueInBaseCurrency + marketsAdvanced.northAmerica.valueInBaseCurrency ) ], userSettings diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index 415cbc99d..44a29e737 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -13,6 +13,7 @@ import { EconomicMarketClusterRiskDevelopedMarkets } from '@ghostfolio/api/model import { EconomicMarketClusterRiskEmergingMarkets } from '@ghostfolio/api/models/rules/economic-market-cluster-risk/emerging-markets'; import { EmergencyFundSetup } from '@ghostfolio/api/models/rules/emergency-fund/emergency-fund-setup'; import { FeeRatioInitialInvestment } from '@ghostfolio/api/models/rules/fees/fee-ratio-initial-investment'; +import { RegionalMarketClusterRiskEurope } from '@ghostfolio/api/models/rules/regional-market-cluster-risk/europe'; import { RegionalMarketClusterRiskNorthAmerica } from '@ghostfolio/api/models/rules/regional-market-cluster-risk/north-america'; import { ConfigurationService } from '@ghostfolio/api/services/configuration/configuration.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; @@ -270,6 +271,11 @@ export class UserService { undefined, undefined ).getSettings(user.Settings.settings), + RegionalMarketClusterRiskEurope: new RegionalMarketClusterRiskEurope( + undefined, + undefined, + undefined + ).getSettings(user.Settings.settings), RegionalMarketClusterRiskNorthAmerica: new RegionalMarketClusterRiskNorthAmerica( undefined, diff --git a/apps/api/src/models/interfaces/rule-settings.interface.ts b/apps/api/src/models/interfaces/rule-settings.interface.ts index f4350e5ee..377bab52b 100644 --- a/apps/api/src/models/interfaces/rule-settings.interface.ts +++ b/apps/api/src/models/interfaces/rule-settings.interface.ts @@ -1,9 +1,3 @@ export interface RuleSettings { isActive: boolean; } - -export interface Settings extends RuleSettings { - baseCurrency: string; - thresholdMin: number; - thresholdMax: number; -} diff --git a/apps/api/src/models/rules/regional-market-cluster-risk/europe.ts b/apps/api/src/models/rules/regional-market-cluster-risk/europe.ts index 6484daf83..d33190ceb 100644 --- a/apps/api/src/models/rules/regional-market-cluster-risk/europe.ts +++ b/apps/api/src/models/rules/regional-market-cluster-risk/europe.ts @@ -1,8 +1,9 @@ -import { Settings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; import { Rule } from '@ghostfolio/api/models/rule'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { UserSettings } from '@ghostfolio/common/interfaces'; +import { Settings } from './interfaces/rule-settings.interface'; + export class RegionalMarketClusterRiskEurope extends Rule { private currentValueInBaseCurrency: number; private europeValueInBaseCurrency: number; @@ -10,7 +11,7 @@ export class RegionalMarketClusterRiskEurope extends Rule { public constructor( protected exchangeRateDataService: ExchangeRateDataService, currentValueInBaseCurrency: number, - valueInBaseCurrency: number + europeValueInBaseCurrency: number ) { super(exchangeRateDataService, { key: RegionalMarketClusterRiskEurope.name, @@ -18,7 +19,7 @@ export class RegionalMarketClusterRiskEurope extends Rule { }); this.currentValueInBaseCurrency = currentValueInBaseCurrency; - this.europeValueInBaseCurrency = valueInBaseCurrency; + this.europeValueInBaseCurrency = europeValueInBaseCurrency; } public evaluate(ruleSettings: Settings) { diff --git a/apps/api/src/models/rules/regional-market-cluster-risk/interfaces/rule-settings.interface.ts b/apps/api/src/models/rules/regional-market-cluster-risk/interfaces/rule-settings.interface.ts new file mode 100644 index 000000000..8b9fddf3a --- /dev/null +++ b/apps/api/src/models/rules/regional-market-cluster-risk/interfaces/rule-settings.interface.ts @@ -0,0 +1,7 @@ +import { RuleSettings } from '@ghostfolio/api/models/interfaces/rule-settings.interface'; + +export interface Settings extends RuleSettings { + baseCurrency: string; + thresholdMin: number; + thresholdMax: number; +} diff --git a/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts b/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts index 61f79d65f..f1ca5c683 100644 --- a/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts +++ b/libs/common/src/lib/interfaces/x-ray-rules-settings.interface.ts @@ -9,6 +9,7 @@ export interface XRayRulesSettings { EconomicMarketClusterRiskEmergingMarkets?: RuleSettings; EmergencyFundSetup?: RuleSettings; FeeRatioInitialInvestment?: RuleSettings; + RegionalMarketClusterRiskEurope?: RuleSettings; RegionalMarketClusterRiskNorthAmerica?: RuleSettings; }