| | |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; |
| | | import com.xcong.excoin.rabbit.pricequeue.OrderModel; |
| | | import com.xcong.excoin.rabbit.pricequeue.OrderOperatePriceService; |
| | | 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 forceSetPriceTest() { |
| | | MemberEntity memberEntity = memberDao.selectById(21L); |
| | | CalculateUtil.getForceSetPriceForWhole("BTC/USDT", memberEntity); |
| | | MemberEntity memberEntity = memberDao.selectById(15L); |
| | | System.out.println(CalculateUtil.getForceSetPriceForWhole("BTC/USDT", memberEntity)); |
| | | } |
| | | |
| | | @Test |
| | | public void profitOrLessTest() { |
| | | MemberEntity memberEntity = memberDao.selectById(15L); |
| | | ContractHoldOrderEntity contractHoldOrderEntity = contractHoldOrderDao.selectById(144L); |
| | | System.out.println(CalculateUtil.calProfitOrLoss(contractHoldOrderEntity, memberEntity)); |
| | | } |
| | | |
| | | @Resource |
| | |
| | | |
| | | @Test |
| | | public void mapTest() { |
| | | websocketPriceService.wholeBomb(); |
| | | // websocketPriceService.wholeBomb(); |
| | | OrderOperatePriceService.wholePriceDataOperation(63L); |
| | | } |
| | | |
| | | |
| | | @Test |
| | | public void wholeForceTest() { |
| | | // 8301.38608660 |
| | | // System.out.println(new BigDecimal("9925.29996175").subtract(new BigDecimal("1623.91387515"))); |
| | | |
| | | BigDecimal aa = new BigDecimal("9925.29996175").subtract(new BigDecimal("8301.38608660").negate()).subtract(new BigDecimal("1623.91387515")).subtract(new BigDecimal("0.1").multiply(new BigDecimal(50)).multiply(new BigDecimal("32478.27750300"))); |
| | | BigDecimal bb = new BigDecimal(50).multiply(new BigDecimal("0.1")); |
| | | BigDecimal divide = aa.divide(bb, 8, BigDecimal.ROUND_DOWN); |
| | | System.out.println(divide); |
| | | // -(账户权益-委托保证金-全仓维持保证金-全仓未实现盈利-数量*面值*开仓价格)/(数量*面值) |
| | | // 30818.00028568 -- |
| | | // 29157.72306836 -- |
| | | } |
| | | |
| | | @Test |
| | | public void wholeForceNewTest() { |
| | | BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey("BTC/USDT"))); |
| | | |
| | | 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)); |
| | | } |
| | | |
| | | } |