From cf803a23312793f24833174ad12473f51c1cb998 Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sun, 23 Aug 2026 09:03:30 +0200 Subject: [PATCH] Fix market price carry forward on dates with activities --- .../calculator/roai/portfolio-calculator.ts | 36 +++++++++---------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts index 26deba0b4..e49b3fd25 100644 --- a/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/roai/portfolio-calculator.ts @@ -391,30 +391,26 @@ export class RoaiPortfolioCalculator extends PortfolioCalculator { break; } + const unitPrice = marketSymbolMap[dateString]?.[symbol] ?? lastUnitPrice; + if (ordersByDate[dateString]?.length > 0) { for (const order of ordersByDate[dateString]) { - order.unitPriceFromMarketData = - marketSymbolMap[dateString]?.[symbol] ?? lastUnitPrice; - } - } else { - const unitPrice = - marketSymbolMap[dateString]?.[symbol] ?? lastUnitPrice; - - if (dateString >= dateStringOfFirstActivity) { - orders.push({ - assetProfile, - unitPrice, - date: dateString, - fee: new Big(0), - feeInBaseCurrency: new Big(0), - quantity: new Big(0), - type: 'BUY', - unitPriceFromMarketData: unitPrice - }); + order.unitPriceFromMarketData = unitPrice; } - - lastUnitPrice = unitPrice; + } else if (dateString >= dateStringOfFirstActivity) { + orders.push({ + assetProfile, + unitPrice, + date: dateString, + fee: new Big(0), + feeInBaseCurrency: new Big(0), + quantity: new Big(0), + type: 'BUY', + unitPriceFromMarketData: unitPrice + }); } + + lastUnitPrice = unitPrice; } // Sort orders so that the start and end placeholder order are at the correct