From 4c70b99382c01d707b41060c3c3b81d538f1c1db Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 26 Dec 2025 15:53:39 +0800
Subject: [PATCH] fix(indicator): 修复MACD指标计算和策略逻辑错误

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

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MACDCalculator.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MACDCalculator.java
index 429cc6e..a82bf44 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MACDCalculator.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MACDCalculator.java
@@ -75,9 +75,9 @@
             // 创建价格数据对象
             PriceData data = new PriceData(closePrices.get(closeIdx));
 
-            // 设置EMA(注意索引偏移计算)
-            data.setEmaShort(emaShort.get(i + shortPeriod - 1));
-            data.setEmaLong(emaLong.get(i + longPeriod - 1));
+            // 设置EMA(修复索引计算,使用正确的偏移位置)
+            data.setEmaShort(emaShort.get(closeIdx - shortPeriod + 1));
+            data.setEmaLong(emaLong.get(closeIdx - longPeriod + 1));
 
             // 设置DIF、DEA和MACD柱状图
             data.setDif(difValues.get(i));
@@ -103,3 +103,4 @@
         return calculateMACD(closePrices, 12, 26, 9);
     }
 }
+

--
Gitblit v1.9.1