From d2af798de3ac7e417cf3cc1ddf0094590a2a31c9 Mon Sep 17 00:00:00 2001 From: iMoHax Date: Thu, 17 Mar 2016 14:04:31 +0300 Subject: [PATCH] fix profit compute on add order to route --- .../src/main/java/ru/trader/analysis/RouteEntry.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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);