|
|
@ -1049,28 +1049,26 @@ export class PortfolioCalculator { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Sort orders so that the start and end placeholder order are at the right
|
|
|
|
// Sort orders so that the start and end placeholder order are at the correct
|
|
|
|
// position
|
|
|
|
orders = sortBy(orders, (order) => { |
|
|
|
let sortIndex = new Date(order.date); |
|
|
|
orders = sortBy(orders, ({ date, itemType }) => { |
|
|
|
let sortIndex = new Date(date); |
|
|
|
|
|
|
|
if (order.itemType === 'start') { |
|
|
|
sortIndex = addMilliseconds(sortIndex, -1); |
|
|
|
} |
|
|
|
|
|
|
|
if (order.itemType === 'end') { |
|
|
|
if (itemType === 'end') { |
|
|
|
sortIndex = addMilliseconds(sortIndex, 1); |
|
|
|
} else if (itemType === 'start') { |
|
|
|
sortIndex = addMilliseconds(sortIndex, -1); |
|
|
|
} |
|
|
|
|
|
|
|
return sortIndex.getTime(); |
|
|
|
}); |
|
|
|
|
|
|
|
const indexOfStartOrder = orders.findIndex((order) => { |
|
|
|
return order.itemType === 'start'; |
|
|
|
const indexOfStartOrder = orders.findIndex(({ itemType }) => { |
|
|
|
return itemType === 'start'; |
|
|
|
}); |
|
|
|
|
|
|
|
const indexOfEndOrder = orders.findIndex((order) => { |
|
|
|
return order.itemType === 'end'; |
|
|
|
const indexOfEndOrder = orders.findIndex(({ itemType }) => { |
|
|
|
return itemType === 'end'; |
|
|
|
}); |
|
|
|
|
|
|
|
let totalInvestmentDays = 0; |
|
|
|