| | |
| | | toDayProfitLoss = (marketValue - (openPrice * volume)); |
| | | profitLoss = marketValue - cost; |
| | | ExchangeSymbolDto exchangeSymbolDto = new ExchangeSymbolDto(); |
| | | exchangeSymbolDto.setVolume(new BigDecimal(volume).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setPositionVolume(new BigDecimal(volume).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setPrice(new BigDecimal(price).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setVolume(new BigDecimal(volume).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setPositionVolume(new BigDecimal(volume).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setPrice(new BigDecimal(price).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setName(name); |
| | | exchangeSymbolDto.setSymbol(key); |
| | | exchangeSymbolDto.setToDayProfitLoss(new BigDecimal(toDayProfitLoss).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setToDayProfitLoss(new BigDecimal(toDayProfitLoss).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setToDayProfitLossPercentage(calculateProfitPercentage(openPrice, currentPrice)); |
| | | exchangeSymbolDto.setCurrentPrice(new BigDecimal(currentPrice).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setOpenPrice(new BigDecimal(openPrice).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setMarketValue(new BigDecimal(marketValue).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setProfitLoss(new BigDecimal(profitLoss).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | exchangeSymbolDto.setCurrentPrice(new BigDecimal(currentPrice).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setOpenPrice(new BigDecimal(openPrice).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setMarketValue(new BigDecimal(marketValue).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setProfitLoss(new BigDecimal(profitLoss).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | exchangeSymbolDto.setProfitLossPercentage(calculateProfitPercentage(price, currentPrice)); |
| | | result.add(exchangeSymbolDto); |
| | | } |
| | |
| | | double profit = currentPrice - buyPrice; |
| | | double profitPercentage = (profit / buyPrice) * 100; |
| | | System.out.println(profitPercentage); |
| | | return new BigDecimal(profitPercentage).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | return new BigDecimal(profitPercentage).setScale(2, RoundingMode.DOWN).doubleValue(); |
| | | } |
| | | |
| | | public static void test() { |
| | |
| | | |
| | | } |
| | | SumEtfDto sumEtfDto = new SumEtfDto(); |
| | | sumEtfDto.setProfitLoss(new BigDecimal(profitLoss).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | sumEtfDto.setSumPrice(new BigDecimal(sumPrice).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | sumEtfDto.setToDayProfitLoss(new BigDecimal(toDayProfitLoss).setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | sumEtfDto.setProfitLoss(new BigDecimal(profitLoss).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | sumEtfDto.setSumPrice(new BigDecimal(sumPrice).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | sumEtfDto.setToDayProfitLoss(new BigDecimal(toDayProfitLoss).setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | // usdt余额 |
| | | Wallet wallet = new Wallet(); |
| | | if (!"".equals(userId) && userId != null) { |
| | | wallet = walletService.findByUserId(userId.toString()); |
| | | } |
| | | sumEtfDto.setSumVolume(wallet.getMoney().setScale(2, RoundingMode.HALF_UP).doubleValue()); |
| | | sumEtfDto.setSumVolume(wallet.getMoney().setScale(2, RoundingMode.DOWN).doubleValue()); |
| | | return sumEtfDto; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | map.put("create_time", DateUtil.formatDate(order.getCreateTime(), DateUtils.DF_yyyyMMddHHmmss)); |
| | | map.put("volume", new BigDecimal(order.getVolume()).setScale(6, RoundingMode.HALF_UP)); |
| | | map.put("volume", new BigDecimal(order.getVolume()).setScale(6, RoundingMode.DOWN)); |
| | | // 买的时候total 为volume,卖的时候total = volume*closeTime |
| | | if("open".equalsIgnoreCase(order.getOffset())){ |
| | | map.put("total", new BigDecimal(order.getVolume()).setScale(6, RoundingMode.HALF_UP)); |
| | | map.put("total", new BigDecimal(order.getVolume()).setScale(6, RoundingMode.DOWN)); |
| | | }else{ |
| | | map.put("total", new BigDecimal(order.getVolume()*order.getClosePrice()).setScale(2, RoundingMode.HALF_UP)); |
| | | map.put("total", new BigDecimal(order.getVolume()*order.getClosePrice()).setScale(2, RoundingMode.DOWN)); |
| | | } |
| | | map.put("offset", order.getOffset()); |
| | | map.put("price", order.getPrice()); |