Administrator
7 days ago 084bb8457b44f765b32365cb09f613ea871634dc
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;
    }
    /**