From 9ff43c07c9ce3fe76ba4a21e28885097b2b721e3 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 05 Jan 2026 14:08:47 +0800
Subject: [PATCH] feat(trading): 优化MACD策略算法适配欧意平台

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java
index c17fce5..bb31a95 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/utils/WsMapBuild.java
@@ -3,9 +3,11 @@
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.xcong.excoin.modules.okxNewPrice.okxWs.enums.CoinEnums;
 import lombok.extern.slf4j.Slf4j;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Map;
 
 /**
@@ -14,21 +16,26 @@
 @Slf4j
 public class WsMapBuild {
 
-    public static void saveBigDecimalToMap(Map<String,BigDecimal> accountMap, String key, BigDecimal value) {
+    public static boolean saveBigDecimalToMap(Map<String,BigDecimal> accountMap, String key, BigDecimal value) {
         try {
             accountMap.put(key, value);
+            return true;
         } catch (Exception e) {
             log.error("保存账户数据到MAP 失败", e);
+            return false;
         }
     }
 
-    public static void saveStringToMap(Map<String,String> accountMap, String key, String value) {
+    public static boolean saveStringToMap(Map<String,String> accountMap, String key, String value) {
         try {
             accountMap.put(key, value);
+            return true;
         } catch (Exception e) {
             log.error("保存账户数据到MAP 失败", e);
+            return false;
         }
     }
+
 
     /**
      * 安全地将字符串解析为 BigDecimal 类型
@@ -40,6 +47,19 @@
         if (value == null || value.isEmpty()) {
             return new BigDecimal(0);
         }
-        return new BigDecimal(value);
+        return new BigDecimal(value).setScale(Integer.parseInt(CoinEnums.TICKSZ.getCode()), RoundingMode.DOWN);
+    }
+
+    /**
+     * 安全地将字符串解析为 BigDecimal 类型
+     *
+     * @param value 字符串数值
+     * @return 解析后的 BigDecimal 对象,若解析失败则返回 null
+     */
+    public static String parseStringSafe(String value) {
+        if (value == null || value.isEmpty()) {
+            return "0";
+        }
+        return value;
     }
 }

--
Gitblit v1.9.1