From a9402bbb84f6a521822fc8beb32056d0b2d4201f Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 26 Dec 2025 18:08:07 +0800
Subject: [PATCH] refactor(indicator): 重构MACD策略实现并优化交易逻辑

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/Volatility.java |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/Volatility.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/Volatility.java
index 74041a1..f4d1543 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/Volatility.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/Volatility.java
@@ -138,6 +138,10 @@
         do {
             prev = x;
             // 牛顿迭代公式:x(n+1) = (x(n) + value/x(n))/2
+            // 添加零检查,防止除以零异常
+            if (x.compareTo(BigDecimal.ZERO) == 0) {
+                x = new BigDecimal(1); // 设置一个合理的初始值
+            }
             x = x.add(value.divide(x, scale, RoundingMode.HALF_UP)).divide(new BigDecimal(2), scale, RoundingMode.HALF_UP);
         } while (x.subtract(prev).abs().compareTo(BigDecimal.ONE.movePointLeft(scale)) > 0); // 直到满足精度要求
 

--
Gitblit v1.9.1