| | |
| | | import com.xcong.excoin.rabbit.pricequeue.WebsocketPriceService; |
| | | import com.xcong.excoin.rabbit.producer.OrderProducer; |
| | | import com.xcong.excoin.utils.CalculateUtil; |
| | | import com.xcong.excoin.utils.CoinTypeConvert; |
| | | import com.xcong.excoin.utils.RedisUtils; |
| | | import com.xcong.excoin.utils.ThreadPoolUtils; |
| | | import lombok.SneakyThrows; |
| | |
| | | |
| | | @Test |
| | | public void wholeForceNewTest() { |
| | | MemberEntity memberEntity = memberDao.selectById(15L); |
| | | ContractHoldOrderEntity holdOrder = contractHoldOrderDao.selectById(400L); |
| | | BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey("BTC/USDT"))); |
| | | |
| | | System.out.println(CalculateUtil.calForcePriceForWhole(memberEntity, holdOrder)); |
| | | MemberEntity memberEntity = memberDao.selectById(19L); |
| | | ContractHoldOrderEntity holdOrder = contractHoldOrderDao.selectById(932L); |
| | | |
| | | System.out.println(CalculateUtil.calWholePriceTwo(memberEntity, holdOrder, 2)); |
| | | } |
| | | |
| | | @Test |
| | | public void wholeForceNewTest2() { |
| | | BigDecimal holdBond = new BigDecimal("1161.8951"); |
| | | |
| | | BigDecimal sku = new BigDecimal("0.1"); |
| | | BigDecimal openPrice = new BigDecimal("58094.75"); |
| | | int cnt = 50; |
| | | BigDecimal total = new BigDecimal("9866.3820"); |
| | | // 成本 数量*面值*开仓价 |
| | | BigDecimal cost = sku.multiply(openPrice).multiply(new BigDecimal(cnt)); |
| | | // 费率 |
| | | BigDecimal ratio = openPrice.multiply(new BigDecimal("0.005")); |
| | | // 总账户 - 维持保证金 |
| | | BigDecimal orderProfitOrLoss = total.subtract(holdBond); |
| | | // 权益 |
| | | BigDecimal qy = BigDecimal.ZERO; |
| | | |
| | | BigDecimal prefix = cost.subtract(ratio); |
| | | BigDecimal divideChild; |
| | | // if (ContractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) { |
| | | divideChild = prefix.subtract(orderProfitOrLoss).subtract(qy); |
| | | // } else { |
| | | // divideChild = prefix.add(orderProfitOrLoss).add(qy); |
| | | // } |
| | | // BigDecimal divideChild = walletContract.getTotalBalance().add(totalProfitOrLoss).subtract(holdBond).subtract(cost).add(newPrice.multiply(new BigDecimal("0.005"))); |
| | | BigDecimal divideParent = sku.multiply(new BigDecimal(cnt)); |
| | | |
| | | System.out.println(divideChild.divide(divideParent, 8, BigDecimal.ROUND_DOWN)); |
| | | } |
| | | |
| | | } |