---
name: trading-signal-aggregator
description: Aggregates and categorizes high-frequency trading signals (A/B/C/D/E) to prevent spam and manage risk.
version: 1.0.0
tags: [trading, signal, crypto, eth, btc]
---

# Trading Signal Aggregator (TSA)

This skill manages the high-frequency signal stream from multiple sources (e.g., 5912, 熬鹰, 麻吉) to prevent chat-flooding while maintaining enough granularity for profitable execution.

## ⚠️ Core Logic (The "Anti-Spam" Filter)

### 1. Signal Classification (Priority: High)
When a signal arrives, classify it immediately to determine the appropriate response/push.

| Class | Trigger Condition | Push Strategy (to QQ) |
|:---:|---|---|
| **A-加仓** | (e.get_pos_change() > 5%) OR (New high-conviction signal) | **Full Template**: Trend analysis + detailed plan. |
| **B-减仓/危险** | (Pos change < -5%) OR (Liquidation risk high) | **Full Template**: Focus on risk/exit. |
| **C-新开仓** | (First appearance of coin/trader) | **Full Template**: Light entry plan. |
| **D-持有更新** | (Pos change < 5% OR minor price/leverage adjustment) | **Minimalist**: Skip trend analysis, show current status + plan. |
| **E-多鲸对比** | (Multiple signals or cross-trader comparison) | **Comparison Template**: Side-by-side summary. |

### 2. The "Noise" Rule (Cruo/D-class)
If the change in position or price is within a certain threshold (e.g., <2% or <5% depending on context), **do not push a new message**. Instead, track it in the current session.
- If multiple signals arrive in one tick, prioritize the one with the largest absolute change or highest risk/reward.
- If a signal is "D-class" (minor adjustment), it should only be pushed if it crosses a significant threshold or if the user asks for an update.

## 📦 Templates (Reference)

### [trade-confirm] - Full Template
(Use for A, B, and C classes)
```text
⚡ 跟单建议 | {币种} {方向} {杠get_leverage}x

📊 {交易员} {仓位} {币种} (价值{总值})
入场: {入场价} | 当前: {当前价}
浮盈/亏: {盈亏} 🔥 | 强平距: {距离} ✅

📈 趋势分析
• {trend_point_1}
• {trend_point_2}

🛡️ ATR/Risk Check
• {atr_info} | {risk_status} (e.g. SL/ATR check)

🎯 跟单方案
• 入m: {入场价} (市价/参考均价)
• 止损: {止损价} ({+/-%}, {amount}, 盈亏比)
• 止盈: {止盈价} ({+/-%}, {amount})
• 仓位: {建议仓位} (e.g. 轻/中/重)

回复 Y 确认 / N 取消
```

### [trade-update] - Minimalist (D-class)
(Use for minor adjustments/noise)
```text
📊 {交易员} {仓位} {币种} (当前: {当前价})
入场: {入场价} | 状态: {status_msg} (e.get_pos_change())

🎯 跟单方案
• 入场: {入场价}
• 止损/止盈: {sl_tp_info}
• 仓位: {建议仓位}

回复 Y 确认 / N 取消
```

## 🛠️ Operational Rules (The "Golden Rule")

1. **No redundant analysis**: If the signal is a minor adjustment (D-class), do not re-calculate trend/ATR unless it's a significant enough change to warrant it.
2. **Priority**: A-class (加仓) and C-class (新开) always get full attention.
3. **Aggregator logic**: If multiple signals arrive, group them into a single response if possible (e.g., "Summary of last 3 signals").
4. **Manual override**: If the user asks for a summary or "what's next", use the current state to provide a consolidated view.
5. **No verbose tracking** (User correction 2026-07-02): Do NOT create statistical tables, trend analysis, or verbose summaries for D-class signals. Just process A/B/C signals with the opening skill and push to QQ. For D-class signals, simply note "跳过QQ推送" (skip QQ push) without detailed tracking tables. The user explicitly said: "有信号就用开仓技能就行了，其他不需要你统计" (Just use the opening skill for signals, no need for you to do statistics).
