diff --git a/core/src/main/java/ru/trader/analysis/RouteEntry.java b/core/src/main/java/ru/trader/analysis/RouteEntry.java index 2e87ce7..3601fca 100644 --- a/core/src/main/java/ru/trader/analysis/RouteEntry.java +++ b/core/src/main/java/ru/trader/analysis/RouteEntry.java @@ -92,14 +92,20 @@ public class RouteEntry { void add(Order order){ orders.add(fixedWrap(order)); + profit += order.getProfit(); } void remove(Order order){ - orders.removeIf(o -> o.fixed && o.equals(order)); + if (orders.removeIf(o -> o.fixed && o.equals(order))){ + profit -= order.getProfit(); + } } void clear(){ - orders.removeIf(o -> o.fixed); + double p = orders.stream().filter(o -> o.fixed).mapToDouble(Order::getProfit).sum(); + if (orders.removeIf(o -> o.fixed)){ + profit -= p; + } } void addAll(Collection orders){ @@ -111,7 +117,7 @@ public class RouteEntry { } void removeOrder(Order order){ - if (order instanceof OrderWrapper) { + if (order instanceof OrderWrapper) { orders.remove(order); } else { orders.removeIf(order::equals);