| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | */ |
| | | private boolean isLongEntryCondition(MACDResult macdResult, List<BigDecimal> closePrices, List<BigDecimal> close1DPrices) { |
| | | // 1. 计算200日EMA(趋势过滤) |
| | | List<BigDecimal> trendEma = EMACalculator.calculateEMA(close1DPrices, trendPeriod, true); |
| | | // 复制并反转日线数据,确保从旧到新计算EMA |
| | | List<BigDecimal> reversed1DPrices = new ArrayList<>(close1DPrices); |
| | | Collections.reverse(reversed1DPrices); |
| | | List<BigDecimal> trendEma = EMACalculator.calculateEMA(reversed1DPrices, trendPeriod, true); |
| | | BigDecimal latestTrendEma = trendEma.get(trendEma.size() - 1); |
| | | BigDecimal latestPrice = closePrices.get(0); |
| | | log.info( "200日EMA:{}, 最新价格:{}", latestTrendEma, latestPrice); |
| | |
| | | */ |
| | | private boolean isShortEntryCondition(MACDResult macdResult, List<BigDecimal> closePrices, List<BigDecimal> close1DPrices) { |
| | | // 1. 计算200日EMA(趋势过滤) |
| | | List<BigDecimal> trendEma = EMACalculator.calculateEMA(close1DPrices, trendPeriod, true); |
| | | // 复制并反转日线数据,确保从旧到新计算EMA |
| | | List<BigDecimal> reversed1DPrices = new ArrayList<>(close1DPrices); |
| | | Collections.reverse(reversed1DPrices); |
| | | List<BigDecimal> trendEma = EMACalculator.calculateEMA(reversed1DPrices, trendPeriod, true); |
| | | BigDecimal latestTrendEma = trendEma.get(trendEma.size() - 1); |
| | | BigDecimal latestPrice = closePrices.get(0); |
| | | |