From 40cb1017c99fca2809fc1aaea4361b2bf0c6e4a2 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 26 Dec 2025 15:54:24 +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