From 829f629756e5402bcd3e9f6ef1f9c6dbffbabb11 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 17 Apr 2024 14:46:29 +0800 Subject: [PATCH] 55测试环境 --- src/main/java/com/xcong/excoin/utils/CalculateUtil.java | 20 ++++++++++++-------- 1 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java index 45b88c9..6ce033e 100644 --- a/src/main/java/com/xcong/excoin/utils/CalculateUtil.java +++ b/src/main/java/com/xcong/excoin/utils/CalculateUtil.java @@ -205,7 +205,10 @@ } /** - * 权益-维持保证金+开仓价*张数*规格-开仓价*费率-(总账户-维持保证金) / 规格*张数 + * 多: + * (开仓价*数量*规格 - 其他币种保证金 - (总账户金额-维持保证金) - (权益 - 维持保证金)) / 数量*规格 + * 空: + * (开仓价*数量*规格 - 其他币种保证金 + (总账户金额-维持保证金) + (权益 - 维持保证金)) / 数量*规格 * * @param memberEntity * @param contractHoldOrderEntity @@ -232,7 +235,7 @@ } - BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol()))); + BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()))); if (type == 2) { log.info("newPrice : {}", newPrice); } @@ -241,11 +244,11 @@ // 开多 if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) { // (最新价-开仓价)*规格*张数 - rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(contractHoldOrderEntity.getSymbolSku()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())); + rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(holdOrderEntity.getSymbolSku()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())); // 开空 } else { // (开仓价-最新价)*规格*张数 - rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(contractHoldOrderEntity.getSymbolSku()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())); + rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(holdOrderEntity.getSymbolSku()).multiply(new BigDecimal(holdOrderEntity.getSymbolCntSale())); } if (memberEntity.getIsProfit() == MemberEntity.IS_PROFIT_Y) { @@ -266,13 +269,14 @@ BigDecimal ratio = contractHoldOrderEntity.getOpeningPrice().multiply(new BigDecimal("0.005")); // 总账户 - 维持保证金 BigDecimal orderProfitOrLoss = walletContract.getTotalBalance().subtract(holdBond); - // 权益 - BigDecimal qy = walletContract.getTotalBalance().add(totalProfitOrLoss); + // 权益 - 维持保证金 + BigDecimal qy = walletContract.getTotalBalance().add(totalProfitOrLoss).subtract(holdBond); +// BigDecimal qy = BigDecimal.ZERO; - BigDecimal prefix = cost.subtract(ratio); + BigDecimal prefix = cost.subtract(totalBondAmount); BigDecimal divideChild; if (ContractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) { - divideChild = cost.subtract(orderProfitOrLoss).subtract(qy); + divideChild = prefix.subtract(orderProfitOrLoss).subtract(qy); } else { divideChild = prefix.add(orderProfitOrLoss).add(qy); } -- Gitblit v1.9.1