Browse Source

Improve market price on first buy date: market price or average price

pull/1956/head
Thomas 2 years ago
parent
commit
d8ee61d0f0
  1. 30
      apps/api/src/app/portfolio/portfolio.service.ts

30
apps/api/src/app/portfolio/portfolio.service.ts

@ -794,16 +794,6 @@ export class PortfolioService {
let maxPrice = Math.max(orders[0].unitPrice, marketPrice);
let minPrice = Math.min(orders[0].unitPrice, marketPrice);
if (!historicalData?.[aSymbol]?.[firstBuyDate]) {
// Add historical entry for buy date, if no historical data available
historicalDataArray.push({
averagePrice: orders[0].unitPrice,
date: firstBuyDate,
marketPrice: orders[0].unitPrice,
quantity: orders[0].quantity
});
}
if (historicalData[aSymbol]) {
let j = -1;
for (const [date, { marketPrice }] of Object.entries(
@ -815,11 +805,16 @@ export class PortfolioService {
) {
j++;
}
let currentAveragePrice = 0;
let currentQuantity = 0;
const currentSymbol = transactionPoints[j].items.find(
(item) => item.symbol === aSymbol
({ symbol }) => {
return symbol === aSymbol;
}
);
if (currentSymbol) {
currentAveragePrice = currentSymbol.quantity.eq(0)
? 0
@ -829,14 +824,25 @@ export class PortfolioService {
historicalDataArray.push({
date,
marketPrice,
averagePrice: currentAveragePrice,
marketPrice:
historicalDataArray.length > 0
? marketPrice
: currentAveragePrice,
quantity: currentQuantity
});
maxPrice = Math.max(marketPrice ?? 0, maxPrice);
minPrice = Math.min(marketPrice ?? Number.MAX_SAFE_INTEGER, minPrice);
}
} else {
// Add historical entry for buy date, if no historical data available
historicalDataArray.push({
averagePrice: orders[0].unitPrice,
date: firstBuyDate,
marketPrice: orders[0].unitPrice,
quantity: orders[0].quantity
});
}
return {

Loading…
Cancel
Save