新版仿ok交易所-后端
zyy
2025-10-10 45e55401d2298a9689295b75d544cc5fa2cef787
调整值优化
2 files modified
19 ■■■■■ changed files
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/AdjustmentValueCache.java 5 ●●●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java 14 ●●●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/AdjustmentValueCache.java
@@ -16,6 +16,8 @@
     */
    private static volatile Map<String, AdjustmentValue> delayValue = new ConcurrentHashMap();
    private static volatile Map<String, BigDecimal> lastValue = new ConcurrentHashMap();
    public static Map<String, BigDecimal> getCurrentValue() {
        return currentValue;
    }
@@ -24,4 +26,7 @@
        return delayValue;
    }
    public static Map<String, BigDecimal> getLastValue() {
        return lastValue;
    }
}
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java
@@ -188,6 +188,20 @@
                kline.setLow(kline.getLow().add(currentValue));
                kline.setHigh(kline.getHigh().add(currentValue));
                kline.setAdjusted(true);
                BigDecimal last = AdjustmentValueCache.getLastValue().get(symbol);
                if (last != null && last.compareTo(BigDecimal.ZERO) > 0) {
                    BigDecimal adj = currentValue.subtract(last);
                    if (adj.compareTo(BigDecimal.ZERO) > 0) { //递增
                        kline.setOpen(kline.getOpen().subtract(adj));
                        kline.setLow(kline.getLow().subtract(adj));
                    } else if(adj.compareTo(BigDecimal.ZERO) < 0){ //递减
                        kline.setOpen(kline.getOpen().subtract(adj));
                        kline.setHigh(kline.getHigh().subtract(adj));
                    }
                } else {
                    AdjustmentValueCache.getLastValue().put(symbol, currentValue);
                }
            }
        }
        klineDBService.save(kline);