# Trend Analysis for Position Decisions Use EMA12/EMA26 slope on 4H candles to determine if position direction is correct. ## Algorithm ```python def calc_ema(closes, period): if len(closes) < period: return closes[-1] multiplier = 2 / (period + 1) ema = closes[0] for price in closes[1:]: ema = (price - ema) * multiplier + ema return ema def analyze_trend(inst_id): # Get 4H candles candles = get_candles(inst_id, "4H", 30) closes = [c.close for c in candles] ema12 = calc_ema(closes[-12:], 12) ema26 = calc_ema(closes[-26:], 26) slope = (ema12 - ema26) / ema26 * 100 if slope > 0.5: return 'strong_up' if slope < -0.5: return 'strong_down' if abs(slope) < 0.1: return 'ranging' return 'weak_trend' ``` ## Position Decision Rules | 趋势 | 做多持仓 | 做空持仓 | |------|----------|----------| | strong_up | ✅ 持有 | ❌ 平仓 | | weak_up | ✅ 持有 | ⚠️ 观察 | | ranging | ⚠️ 观察 | ⚠️ 观察 | | weak_down | ⚠️ 观察 | ✅ 持有 | | strong_down | ❌ 平仓 | ✅ 持有 | ## Decision Flow ``` 信号/定期检查 ↓ 分析趋势 (EMA12 vs EMA26) ↓ ├─ 趋势正确 + 保证金充足 → 加仓 ├─ 趋势正确 + 保证金不足 → 持有 ├─ 趋势错误 → 平仓 └─ 无趋势 → 观察或平仓 ``` ## Real Example (2026-07-02) | 币种 | 方向 | EMA12 | EMA26 | 斜率 | 趋势 | 决定 | |------|------|-------|-------|------|------|------| | ETH | 🟩多 | 1646.37 | 1616.26 | +1.86% | strong_up | ✅ 持有 | | BTC | 🟥空 | 60567 | 60090 | +0.79% | strong_up | ❌ 平仓 | | SNDK | 🟩多 | 1961.92 | 2029.02 | -3.31% | strong_down | ❌ 平仓 | | SKHYNIX | 🟩多 | 1513.35 | 1605.48 | -5.74% | strong_down | ❌ 平仓 | | MU | 🟩多 | 1032.60 | 1075.03 | -3.95% | strong_down | ❌ 平仓 | | HYPE | 🟥空 | 64.90 | 64.29 | +0.96% | strong_up | ❌ 平仓 | | SOL | 🟥空 | 78.81 | 76.28 | +3.31% | strong_up | ❌ 平仓 | Result: Closed 6 incorrect positions, kept ETH (trend correct).