Bugfix/fix calculation of allocation cluster risk x ray rules (#3988)

* Fix calculation of allocation cluster risk X-ray rules

* Update changelog
pull/3981/head
Thomas Kaul 4 days ago committed by GitHub
parent 405ec0d2b2
commit fccac5640d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -17,6 +17,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed an issue with the X-axis scale of the dividend timeline on the analysis page - Fixed an issue with the X-axis scale of the dividend timeline on the analysis page
- Fixed an issue with the X-axis scale of the investment timeline on the analysis page - Fixed an issue with the X-axis scale of the investment timeline on the analysis page
- Fixed an issue with the X-axis scale of the portfolio evolution chart on the analysis page - Fixed an issue with the X-axis scale of the portfolio evolution chart on the analysis page
- Fixed an issue in the calculation of the static portfolio analysis rule: Allocation Cluster Risk (Developed Markets)
- Fixed an issue in the calculation of the static portfolio analysis rule: Allocation Cluster Risk (Emerging Markets)
## 2.118.0 - 2024-10-23 ## 2.118.0 - 2024-10-23

@ -1169,6 +1169,12 @@ export class PortfolioService {
withSummary: true withSummary: true
}); });
const marketsTotalInBaseCurrency = getSum(
Object.values(markets).map(({ valueInBaseCurrency }) => {
return new Big(valueInBaseCurrency);
})
).toNumber();
return { return {
rules: { rules: {
accountClusterRisk: accountClusterRisk:
@ -1193,12 +1199,12 @@ export class PortfolioService {
[ [
new AllocationClusterRiskDevelopedMarkets( new AllocationClusterRiskDevelopedMarkets(
this.exchangeRateDataService, this.exchangeRateDataService,
summary.currentValueInBaseCurrency, marketsTotalInBaseCurrency,
markets.developedMarkets.valueInBaseCurrency markets.developedMarkets.valueInBaseCurrency
), ),
new AllocationClusterRiskEmergingMarkets( new AllocationClusterRiskEmergingMarkets(
this.exchangeRateDataService, this.exchangeRateDataService,
summary.currentValueInBaseCurrency, marketsTotalInBaseCurrency,
markets.emergingMarkets.valueInBaseCurrency markets.emergingMarkets.valueInBaseCurrency
) )
], ],
@ -1358,20 +1364,20 @@ export class PortfolioService {
} }
} }
const marketsTotal = const marketsTotalInBaseCurrency = getSum(
markets.developedMarkets.valueInBaseCurrency + Object.values(markets).map(({ valueInBaseCurrency }) => {
markets.emergingMarkets.valueInBaseCurrency + return new Big(valueInBaseCurrency);
markets.otherMarkets.valueInBaseCurrency + })
markets[UNKNOWN_KEY].valueInBaseCurrency; ).toNumber();
markets.developedMarkets.valueInPercentage = markets.developedMarkets.valueInPercentage =
markets.developedMarkets.valueInBaseCurrency / marketsTotal; markets.developedMarkets.valueInBaseCurrency / marketsTotalInBaseCurrency;
markets.emergingMarkets.valueInPercentage = markets.emergingMarkets.valueInPercentage =
markets.emergingMarkets.valueInBaseCurrency / marketsTotal; markets.emergingMarkets.valueInBaseCurrency / marketsTotalInBaseCurrency;
markets.otherMarkets.valueInPercentage = markets.otherMarkets.valueInPercentage =
markets.otherMarkets.valueInBaseCurrency / marketsTotal; markets.otherMarkets.valueInBaseCurrency / marketsTotalInBaseCurrency;
markets[UNKNOWN_KEY].valueInPercentage = markets[UNKNOWN_KEY].valueInPercentage =
markets[UNKNOWN_KEY].valueInBaseCurrency / marketsTotal; markets[UNKNOWN_KEY].valueInBaseCurrency / marketsTotalInBaseCurrency;
const marketsAdvancedTotal = const marketsAdvancedTotal =
marketsAdvanced.asiaPacific.valueInBaseCurrency + marketsAdvanced.asiaPacific.valueInBaseCurrency +

Loading…
Cancel
Save