| | |
| | | }
|
| | |
|
| | | // log.info("{}, {}, {}, {}, {}, {}", totalBondAmount, symbolBondAmount, symbolFeeAmount, openPrice, profitOrLoss, leverRatio);
|
| | | BigDecimal sub = walletContract.getTotalBalance().add(profitOrLoss).subtract(symbolFeeAmount).subtract(totalBondAmount);
|
| | | BigDecimal equity = walletContract.getTotalBalance().add(profitOrLoss);
|
| | | BigDecimal sub = equity.subtract(symbolFeeAmount).subtract(totalBondAmount);
|
| | | // log.info("sub -- {}", sub);
|
| | | BigDecimal divide = sub.abs().divide(symbolBondAmount, 8, BigDecimal.ROUND_DOWN);
|
| | | if (sub.compareTo(symbolBondAmount) <= 0) {
|
| | | BigDecimal multi = BigDecimal.valueOf(10);
|
| | | BigDecimal divide = equity.divide(equity.add(multi), 8, BigDecimal.ROUND_DOWN);
|
| | | sub = symbolBondAmount.multiply(divide);
|
| | | }
|
| | |
|
| | | BigDecimal divide = sub.divide(symbolBondAmount, 8, BigDecimal.ROUND_DOWN);
|
| | | // log.info("divide -- {}", divide);
|
| | | BigDecimal divide2 = openPrice.divide(BigDecimal.valueOf(leverRatio), 8, BigDecimal.ROUND_DOWN);
|
| | | // log.info("divide2 -- {}", divide2);
|
| | |
| | | } else {
|
| | | forcePrice = openPrice.subtract(divide.multiply(divide2));
|
| | | }
|
| | | // log.info("forcePrice -- {}", forcePrice);
|
| | | log.info("forcePrice -- {}, {}", forcePrice, symbol);
|
| | | if (StrUtil.isBlank(currentSymbol)) {
|
| | | holdOrderDao.updateForcePriceBySymbolAndMemberId(forcePrice, memberId, symbol);
|
| | | // holdOrderDao.updateForcePriceBySymbolAndMemberId(forcePrice, memberId, symbol);
|
| | | }
|
| | |
|
| | | if (symbol.equalsIgnoreCase(currentSymbol)) {
|