From 97b7f914d060b2a052299416384fc80e061f4b1d Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 06 Jan 2026 13:49:58 +0800
Subject: [PATCH] refactor(MacdEmaStrategy): 调整多头和空头开仓条件的逻辑顺序

---
 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