Administrator
8 days ago 3e09eb864f92c821b8d69c5110175d7c2382e4df
src/main/java/com/xcong/excoin/modules/okxNewPrice/indicator/macdAndMatrategy/MacdMaStrategy.java
@@ -93,6 +93,8 @@
        // 1. 计算MACD指标
        MACDResult macdResult = MACDCalculator.calculateMACD(
                closePrices, shortPeriod, longPeriod, signalPeriod);
         log.info( "MACD计算结果:{}", macdResult.getMacdData().get( macdResult.getMacdData().size() -1));
        // 2. 计算波动率
        Volatility volatility = new Volatility(volatilityPeriod);
@@ -242,14 +244,12 @@
        
        // 5. 底背离检查(增强多头信号可靠性)
        boolean isBottomDivergence = MACDCalculator.isBottomDivergence(closePrices, macdResult);
        log.info("多头信号形成, MACD有利状态: {}, 柱状线为正: {}, 波动率过滤: {}, 底背离: {}",
                isMacdFavorable, macdPositive, volatilityFilter, isBottomDivergence);
        
        // 所有条件必须同时满足
        boolean result = macdPositive && volatilityFilter && (isMacdFavorable || isBottomDivergence);
        if (result) {
            log.info("多头信号形成, MACD有利状态: {}, 柱状线为正: {}, 波动率过滤: {}, 底背离: {}",
                    isMacdFavorable, macdPositive, volatilityFilter, isBottomDivergence);
        }
        
        return result;
    }
@@ -274,14 +274,11 @@
        
        // 5. 顶背离检查(增强空头信号可靠性)
        boolean isTopDivergence = MACDCalculator.isTopDivergence(closePrices, macdResult);
        log.info("空头信号形成, MACD有利状态: {}, 柱状线为负: {}, 波动率过滤: {}, 顶背离: {}",
                isMacdFavorable, macdNegative, volatilityFilter, isTopDivergence);
        // 所有条件必须同时满足
        boolean result = macdNegative && volatilityFilter && (isMacdFavorable || isTopDivergence);
        if (result) {
            log.info("空头信号形成, MACD有利状态: {}, 柱状线为负: {}, 波动率过滤: {}, 顶背离: {}",
                    isMacdFavorable, macdNegative, volatilityFilter, isTopDivergence);
        }
        
        return result;
    }