Helius
2021-04-06 e8ea01198a3edd5ce214896d6a1143d5a8116eb1
modify
1 files modified
13 ■■■■■ changed files
src/main/java/com/xcong/excoin/utils/CalculateUtil.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/utils/CalculateUtil.java
@@ -227,8 +227,19 @@
            }
            BigDecimal holdBond = contractHoldOrderEntity.getHoldBond();
            // 成本 数量*面值*开仓价
            BigDecimal cost = contractHoldOrderEntity.getSymbolSku().multiply(contractHoldOrderEntity.getOpeningPrice()).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCntSale()));
            BigDecimal divideChild = walletContract.getTotalBalance().subtract(holdBond).subtract(cost).add(newPrice.multiply(new BigDecimal("0.005")));
            // 费率
            BigDecimal ratio = newPrice.multiply(new BigDecimal("0.005"));
            // 权益
            BigDecimal qy = walletContract.getTotalBalance().add(totalProfitOrLoss);
            BigDecimal divideChild;
            if (ContractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) {
                divideChild = holdBond.negate().subtract(cost).add(ratio).add(qy);
            } else {
                divideChild = holdBond.negate().subtract(cost).add(ratio).subtract(qy);
            }
//            BigDecimal divideChild = walletContract.getTotalBalance().add(totalProfitOrLoss).subtract(holdBond).subtract(cost).add(newPrice.multiply(new BigDecimal("0.005")));
            BigDecimal divideParent = contractHoldOrderEntity.getSymbolSku().multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCntSale()));
            forcePrice = divideChild.divide(divideParent, 8, BigDecimal.ROUND_DOWN).negate();