| | |
| | | }
|
| | |
|
| | | /**
|
| | | * 权益-维持保证金+开仓价*张数*规格-开仓价*费率-(总账户-维持保证金) / 规格*张数
|
| | | * 多:
|
| | | * (开仓价*数量*规格 - 其他币种保证金 - (总账户金额-维持保证金) - (权益 - 维持保证金)) / 数量*规格
|
| | | * 空:
|
| | | * (开仓价*数量*规格 - 其他币种保证金 + (总账户金额-维持保证金) + (权益 - 维持保证金)) / 数量*规格
|
| | | *
|
| | | * @param memberEntity
|
| | | * @param contractHoldOrderEntity
|
| | |
| | | }
|
| | |
|
| | |
|
| | | 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);
|
| | | }
|
| | |
| | | // 开多
|
| | | 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) {
|
| | |
| | | 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);
|
| | | }
|