|
|
@ -121,6 +121,9 @@ export class PortfolioCalculator {
|
|
|
|
currency: item.currency,
|
|
|
|
currency: item.currency,
|
|
|
|
userCurrency: this.currency
|
|
|
|
userCurrency: this.currency
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
const grossPerformance = new Big(marketValue.marketPrice)
|
|
|
|
|
|
|
|
.mul(item.quantity)
|
|
|
|
|
|
|
|
.minus(item.investment);
|
|
|
|
result[item.symbol] = {
|
|
|
|
result[item.symbol] = {
|
|
|
|
averagePrice: item.investment.div(item.quantity),
|
|
|
|
averagePrice: item.investment.div(item.quantity),
|
|
|
|
firstBuyDate: item.firstBuyDate,
|
|
|
|
firstBuyDate: item.firstBuyDate,
|
|
|
@ -128,7 +131,9 @@ export class PortfolioCalculator {
|
|
|
|
symbol: item.symbol,
|
|
|
|
symbol: item.symbol,
|
|
|
|
investment: item.investment,
|
|
|
|
investment: item.investment,
|
|
|
|
marketPrice: marketValue.marketPrice,
|
|
|
|
marketPrice: marketValue.marketPrice,
|
|
|
|
transactionCount: item.transactionCount
|
|
|
|
transactionCount: item.transactionCount,
|
|
|
|
|
|
|
|
grossPerformance,
|
|
|
|
|
|
|
|
grossPerformancePercentage: grossPerformance.div(item.investment)
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -290,6 +295,8 @@ interface TimelinePosition {
|
|
|
|
quantity: Big;
|
|
|
|
quantity: Big;
|
|
|
|
symbol: string;
|
|
|
|
symbol: string;
|
|
|
|
investment: Big;
|
|
|
|
investment: Big;
|
|
|
|
|
|
|
|
grossPerformancePercentage: Big;
|
|
|
|
|
|
|
|
grossPerformance: Big;
|
|
|
|
marketPrice: number;
|
|
|
|
marketPrice: number;
|
|
|
|
transactionCount: number;
|
|
|
|
transactionCount: number;
|
|
|
|
}
|
|
|
|
}
|
|
|
|