From f6a912c1a6a26c809568f964941fb4ad4483274e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 31 May 2021 11:19:40 +0800
Subject: [PATCH] modify
---
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