From 14c1946eae86a86f8d1edee6cf3bdaf7572fc966 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 30 Oct 2025 19:44:38 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/etf/MarketService.java |   30 +++++++++++++++---------------
 1 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/etf/MarketService.java b/trading-order-service/src/main/java/com/yami/trading/service/etf/MarketService.java
index 35db422..2c83986 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/etf/MarketService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/etf/MarketService.java
@@ -90,10 +90,10 @@
         realtime.setName(symbol);
 
         realtime.setTs(kline.getTs() / 1000);
-        realtime.setOpen(kline.getOpen().setScale(decimal, RoundingMode.HALF_UP));
-        realtime.setClose(kline.getClose().setScale(decimal, RoundingMode.HALF_UP));
-        realtime.setHigh(kline.getHigh().setScale(decimal, RoundingMode.HALF_UP));
-        realtime.setLow(kline.getLow().setScale(decimal, RoundingMode.HALF_UP));
+        realtime.setOpen(kline.getOpen().setScale(decimal, RoundingMode.DOWN));
+        realtime.setClose(kline.getClose().setScale(decimal, RoundingMode.DOWN));
+        realtime.setHigh(kline.getHigh().setScale(decimal, RoundingMode.DOWN));
+        realtime.setLow(kline.getLow().setScale(decimal, RoundingMode.DOWN));
 //        realtime.setMarketCapital(realtimeJson.getLong("marketCapital"));
 //        realtime.setFloatMarketCapital(realtimeJson.getLong("floatMarketCapital"));
 //        realtime.setPeForecast(realtimeJson.getBigDecimal("peForecast"));
@@ -104,11 +104,11 @@
         BigDecimal lastAmount = (BigDecimal) Optional.ofNullable(redisTemplate.opsForHash().get(RedisKeys.SYMBOL_AMOUNT_VOLUME + symbol, "amount")).orElse(BigDecimal.ZERO);
         BigDecimal amount = Optional.of(kline.getAmount()).orElse(BigDecimal.ZERO);
 
-        realtime.setAmount(lastAmount.add(amount).setScale(decimal, RoundingMode.HALF_UP));
+        realtime.setAmount(lastAmount.add(amount).setScale(decimal, RoundingMode.DOWN));
         BigDecimal lastVolume = (BigDecimal) Optional.ofNullable(redisTemplate.opsForHash().get(RedisKeys.SYMBOL_AMOUNT_VOLUME + symbol, "volume")).orElse(BigDecimal.ZERO);
         BigDecimal volume = Optional.of(kline.getVolume()).orElse(BigDecimal.ZERO);
 
-        realtime.setVolume(lastVolume.add(volume).setScale(decimal, RoundingMode.HALF_UP));
+        realtime.setVolume(lastVolume.add(volume).setScale(decimal, RoundingMode.DOWN));
         realtime.setAsk(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(realtime.getLow(), realtime.getClose(), random)));
         realtime.setBid(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(realtime.getHigh(), realtime.getClose(), random)));
 
@@ -159,10 +159,10 @@
                 List<Realtime> realtimes = dataService.realtime(IXIC);
                 if (CollectionUtils.isNotEmpty(realtimes)) {
                     Realtime realtime = realtimes.get(0);
-                    BigDecimal ratio = realtime.getClose().divide(realtime.getOpen(), 10, RoundingMode.HALF_UP);
-                    BigDecimal close = ratio.multiply(kline.getClose()).setScale(2, RoundingMode.HALF_UP);
-                    BigDecimal low = ratio.multiply(kline.getLow()).setScale(2, RoundingMode.HALF_UP);
-                    BigDecimal high = ratio.multiply(kline.getHigh()).setScale(2, RoundingMode.HALF_UP);
+                    BigDecimal ratio = realtime.getClose().divide(realtime.getOpen(), 10, RoundingMode.DOWN);
+                    BigDecimal close = ratio.multiply(kline.getClose()).setScale(2, RoundingMode.DOWN);
+                    BigDecimal low = ratio.multiply(kline.getLow()).setScale(2, RoundingMode.DOWN);
+                    BigDecimal high = ratio.multiply(kline.getHigh()).setScale(2, RoundingMode.DOWN);
                     retKline.setClose(close);
                     retKline.setLow(low);
                     retKline.setHigh(high);
@@ -286,15 +286,15 @@
 
             buy = new DepthEntry();
             // 买
-            BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue();
-            buy.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue());
-            buy.setAmount(enlarge * volumeSplit.get(i).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue());
+            BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue();
+            buy.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getLow(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue());
+            buy.setAmount(enlarge * volumeSplit.get(i).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue());
 
             // 卖
             sell = new DepthEntry();
-            sell.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getHigh(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue());
+            sell.setPrice(BigDecimal.valueOf(KlineConfigService.randomBigDecimal(kline.getHigh(), kline.getClose(), random)).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue());
 
-            sell.setAmount(enlarge * volumeSplit.get(i + 5).setScale(item.getDecimals(), RoundingMode.HALF_UP).doubleValue());
+            sell.setAmount(enlarge * volumeSplit.get(i + 5).setScale(item.getDecimals(), RoundingMode.DOWN).doubleValue());
 
 
             depth.getAsks().add(sell);

--
Gitblit v1.9.3