| | |
| | | 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; |
| | | import org.junit.jupiter.api.Test; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | |
| | | /** |
| | | * @author wzy |
| | |
| | | */ |
| | | @Test |
| | | public void forceSetPriceTest() { |
| | | MemberEntity memberEntity = memberDao.selectById(5L); |
| | | CalculateUtil.getForceSetPriceForWhole("BTC/USDT", memberEntity); |
| | | MemberEntity memberEntity = memberDao.selectById(15L); |
| | | System.out.println(CalculateUtil.getForceSetPriceForWhole("BTC/USDT", memberEntity)); |
| | | } |
| | | |
| | | @Test |
| | | public void initOrderTest() { |
| | | List<HashMap<String, Object>> wholeHoldOrders = contractHoldOrderDao.selectAllWholeOrderMemberIdAndSymbol(); |
| | | if (CollUtil.isNotEmpty(wholeHoldOrders)) { |
| | | MemberEntity memberEntity = null; |
| | | for (HashMap<String, Object> wholeHoldOrder : wholeHoldOrders) { |
| | | Long memberId = (Long) wholeHoldOrder.get("member_id"); |
| | | String symbol = (String) wholeHoldOrder.get("symbol"); |
| | | if (memberEntity == null || !memberId.equals(memberEntity.getId())) { |
| | | memberEntity = memberDao.selectById(memberId); |
| | | } |
| | | System.out.println(memberId + "-----" + symbol); |
| | | } |
| | | } |
| | | public void profitOrLessTest() { |
| | | MemberEntity memberEntity = memberDao.selectById(15L); |
| | | ContractHoldOrderEntity contractHoldOrderEntity = contractHoldOrderDao.selectById(144L); |
| | | System.out.println(CalculateUtil.calProfitOrLoss(contractHoldOrderEntity, memberEntity)); |
| | | } |
| | | |
| | | @Resource |
| | |
| | | } |
| | | } |
| | | |
| | | @Resource |
| | | private WebsocketPriceService websocketPriceService; |
| | | |
| | | @Test |
| | | public void wholeBombTest() { |
| | | websocketPriceService.wholeBomb("BTC/USDT", "9000"); |
| | | } |
| | | |
| | | @Test |
| | | public void forceTest() { |
| | | MemberEntity memberEntity = memberDao.selectById(5L); |
| | | CalculateUtil.getForceSetPriceForWhole(null, memberEntity); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | Map<String, String> map = new ConcurrentHashMap<>(); |
| | | map.put("1", "1"); |
| | | map.put("2", "2"); |
| | | map.put("3", "3"); |
| | | map.put("4", "4"); |
| | | map.put("5", "5"); |
| | | |
| | | new Thread(new Runnable() { |
| | | @SneakyThrows |
| | | @Override |
| | | public void run() { |
| | | for (Map.Entry<String, String> entry : map.entrySet()) { |
| | | System.out.println(entry.getKey() + " - " + entry.getValue()); |
| | | if (entry.getKey().equals("3")) { |
| | | System.out.println(11); |
| | | map.remove("3"); |
| | | } |
| | | Thread.sleep(1000); |
| | | } |
| | | |
| | | System.out.println(map.get("3")); |
| | | } |
| | | }).start(); |
| | | |
| | | } |
| | | |
| | | @Test |
| | | public void mapTest() { |
| | | // 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)); |
| | | } |
| | | |
| | | } |