| | |
| | | .ne(ContractOrder::getOrderNo, order.getOrderNo()) |
| | | ); |
| | | |
| | | // 提前计算 currentPrice 与 order.getTradeAvgPrice() 的差值,避免重复计算 |
| | | BigDecimal priceDifference = currentPrice.subtract(order.getTradeAvgPrice()); |
| | | |
| | | // 计算所有订单的收益 |
| | | // 计算所有订单的收益+保证金 |
| | | for (ContractOrder contractOrder : list) { |
| | | BigDecimal profit = priceDifference |
| | | .multiply(new BigDecimal("0.01")) |
| | | .multiply(contractOrder.getVolumeOpen()) |
| | | BigDecimal profit = contractOrder.getProfit().add(contractOrder.getDepositOpen()) |
| | | .setScale(4, RoundingMode.DOWN); |
| | | |
| | | earnings = earnings.add(profit); // 累加收益 |