|
@ -59,20 +59,11 @@ export class RoiPortfolioCalculatorSymbolMetricsHelper { |
|
|
new Big(0)) |
|
|
new Big(0)) |
|
|
) ?? new Big(0); |
|
|
) ?? new Big(0); |
|
|
|
|
|
|
|
|
let investmentBasis = |
|
|
const investmentBasis = this.calculateInvestmentBasis( |
|
|
symbolMetricsHelper.symbolMetrics.currentValuesWithCurrencyEffect[ |
|
|
symbolMetricsHelper, |
|
|
rangeStartDateString |
|
|
rangeStartDateString, |
|
|
]; |
|
|
rangeEndDateString |
|
|
|
|
|
); |
|
|
if ( |
|
|
|
|
|
!symbolMetricsHelper.symbolMetrics.currentValuesWithCurrencyEffect[ |
|
|
|
|
|
rangeStartDateString |
|
|
|
|
|
]?.gt(0) |
|
|
|
|
|
) { |
|
|
|
|
|
investmentBasis = |
|
|
|
|
|
symbolMetricsHelper.symbolMetrics |
|
|
|
|
|
.timeWeightedInvestmentValuesWithCurrencyEffect[rangeEndDateString]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
symbolMetricsHelper.symbolMetrics.netPerformancePercentageWithCurrencyEffectMap[ |
|
|
symbolMetricsHelper.symbolMetrics.netPerformancePercentageWithCurrencyEffectMap[ |
|
|
dateRange |
|
|
dateRange |
|
@ -865,4 +856,39 @@ export class RoiPortfolioCalculatorSymbolMetricsHelper { |
|
|
symbolMetricsHelper.exchangeRateAtOrderDate |
|
|
symbolMetricsHelper.exchangeRateAtOrderDate |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private calculateInvestmentBasis( |
|
|
|
|
|
symbolMetricsHelper: PortfolioCalculatorSymbolMetricsHelperObject, |
|
|
|
|
|
rangeStartDateString: string, |
|
|
|
|
|
rangeEndDateString: string |
|
|
|
|
|
) { |
|
|
|
|
|
let investmentBasis = this.getValueOrZero( |
|
|
|
|
|
symbolMetricsHelper.symbolMetrics.currentValuesWithCurrencyEffect[ |
|
|
|
|
|
rangeStartDateString |
|
|
|
|
|
] |
|
|
|
|
|
).plus( |
|
|
|
|
|
this.getValueOrZero( |
|
|
|
|
|
symbolMetricsHelper.symbolMetrics |
|
|
|
|
|
.timeWeightedInvestmentValuesWithCurrencyEffect[rangeEndDateString] |
|
|
|
|
|
)?.minus( |
|
|
|
|
|
this.getValueOrZero( |
|
|
|
|
|
symbolMetricsHelper.symbolMetrics |
|
|
|
|
|
.timeWeightedInvestmentValuesWithCurrencyEffect[ |
|
|
|
|
|
rangeStartDateString |
|
|
|
|
|
] |
|
|
|
|
|
) |
|
|
|
|
|
) |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
if (!investmentBasis.gt(0)) { |
|
|
|
|
|
investmentBasis = |
|
|
|
|
|
symbolMetricsHelper.symbolMetrics |
|
|
|
|
|
.timeWeightedInvestmentValuesWithCurrencyEffect[rangeEndDateString]; |
|
|
|
|
|
} |
|
|
|
|
|
return investmentBasis; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private getValueOrZero(value: Big | undefined) { |
|
|
|
|
|
return value ?? new Big(0); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|