From eaa37652d5f03e4b36cb53d9d3e2e13312af3d78 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Wed, 24 Dec 2025 16:36:18 +0800
Subject: [PATCH] refactor(trading): 优化震荡市场判断条件以减少信号频率

---
 src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/KDJ.java |   35 ++++++++++++++++++++++++++++++-----
 1 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/KDJ.java b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/KDJ.java
index 6651871..7148f4e 100644
--- a/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/KDJ.java
+++ b/src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/KDJ.java
@@ -15,6 +15,31 @@
  * 2. K = 2/3 * 前一日K值 + 1/3 * 当日RSV
  * 3. D = 2/3 * 前一日D值 + 1/3 * 当日K值
  * 4. J = 3*K - 2*D
+ * 
+ * 作用:
+ * 1. 衡量价格的超买超卖状态(K值>80超买,K值<20超卖)
+ * 2. K线上穿D线形成金叉,提示买入信号
+ * 3. K线下穿D线形成死叉,提示卖出信号
+ * 4. J值反映市场的极端状态,J值>100或J值<0为极端行情
+ * 
+ * 价格参数类型:
+ * - 参数名称:prices
+ * - 参数类型:List<BigDecimal>
+ * - 参数说明:需要至少9个(默认周期)价格数据点用于计算
+ * 
+ * 推荐时间粒度及优缺点:
+ * 1. 1分钟(1m):
+ *    - 优点:反应迅速,适合超短线交易
+ *    - 缺点:K值波动剧烈,信号频繁且可靠性低
+ * 2. 5分钟(5m):
+ *    - 优点:K值波动相对稳定,适合短线交易
+ *    - 缺点:仍有一定虚假信号
+ * 3. 15分钟(15m):
+ *    - 优点:信号较为可靠,适合日内交易
+ *    - 缺点:反应速度较慢
+ * 4. 1小时(1h)及以上:
+ *    - 优点:超买超卖信号明确,适合中期交易
+ *    - 缺点:反应滞后,不适合短线交易
  */
 @Slf4j
 @Getter
@@ -83,23 +108,23 @@
                 .subtract(d.multiply(new BigDecimal(2)))
                 .setScale(8, RoundingMode.HALF_UP);
         
-        log.debug("KDJ计算结果 - K: {}, D: {}, J: {}", k, d, j);
+        log.info("KDJ计算结果 - K: {}, D: {}, J: {}", k, d, j);
     }
 
     /**
-     * 判断超买(K > 80)
+     * 判断超买(J > 85)
      * @return 是否超买
      */
     public boolean isOverbought() {
-        return k.compareTo(new BigDecimal(80)) > 0;
+        return j.compareTo(new BigDecimal(85)) > 0;
     }
 
     /**
-     * 判断超卖(K < 20)
+     * 判断超卖(J < 15)
      * @return 是否超卖
      */
     public boolean isOversold() {
-        return k.compareTo(new BigDecimal(20)) < 0;
+        return j.compareTo(new BigDecimal(15)) < 0;
     }
 
     /**

--
Gitblit v1.9.1