update
This commit is contained in:
parent
93d158addf
commit
dd104a9c90
@ -483,6 +483,27 @@ class CryptoAgent:
|
|||||||
# 获取上一轮的信号(用于上下文)
|
# 获取上一轮的信号(用于上下文)
|
||||||
previous_signal = self.last_signals.get(symbol)
|
previous_signal = self.last_signals.get(symbol)
|
||||||
|
|
||||||
|
# 显示上一轮信号(如果有)
|
||||||
|
if previous_signal:
|
||||||
|
prev_time = previous_signal.get('timestamp', 'Unknown')
|
||||||
|
prev_trend = previous_signal.get('trend', 'Unknown')
|
||||||
|
prev_signals = previous_signal.get('signals', [])
|
||||||
|
logger.info(f"📋 上一轮分析时间: {prev_time}")
|
||||||
|
logger.info(f"📋 上一轮趋势: {prev_trend}")
|
||||||
|
|
||||||
|
if prev_signals:
|
||||||
|
for sig in prev_signals:
|
||||||
|
action = sig.get('action', 'N/A')
|
||||||
|
confidence = sig.get('confidence', 0)
|
||||||
|
timeframe = sig.get('timeframe', 'unknown')
|
||||||
|
type_map = {'short_term': '短线', 'medium_term': '中线', 'long_term': '长线'}
|
||||||
|
type_text = type_map.get(timeframe, timeframe)
|
||||||
|
logger.info(f"📋 上一轮信号: {type_text} | {action} | {confidence}%")
|
||||||
|
else:
|
||||||
|
logger.info(f"📋 上一轮信号: 无交易信号(观望)")
|
||||||
|
else:
|
||||||
|
logger.info(f"📋 上一轮信号: 无历史记录(首次分析)")
|
||||||
|
|
||||||
market_signal = await self.market_analyzer.analyze(
|
market_signal = await self.market_analyzer.analyze(
|
||||||
symbol, data,
|
symbol, data,
|
||||||
symbols=self.symbols,
|
symbols=self.symbols,
|
||||||
|
|||||||
@ -35,6 +35,11 @@ class MarketSignalAnalyzer:
|
|||||||
2. **顺势交易为主** - 上涨趋势只做多或观望,下跌趋势只做空或观望
|
2. **顺势交易为主** - 上涨趋势只做多或观望,下跌趋势只做空或观望
|
||||||
3. **逆势交易极其谨慎** - 必须有多重反转信号才能考虑逆势
|
3. **逆势交易极其谨慎** - 必须有多重反转信号才能考虑逆势
|
||||||
4. **单边行情不逆势** - 强趋势中(连续3根以上同向K线)严禁逆势开仓
|
4. **单边行情不逆势** - 强趋势中(连续3根以上同向K线)严禁逆势开仓
|
||||||
|
5. **严禁重复信号** - 如果上一轮已经给出了相同方向的交易信号,绝对不要重复输出!只有在以下情况才能给出新信号:
|
||||||
|
- 趋势发生了**明确的反转**(从多头转为空头,或反之)
|
||||||
|
- 上一轮是观望,现在出现了**新的明确交易机会**
|
||||||
|
- 上一轮信号已失效(价格已触及止损或止盈)
|
||||||
|
- 如果只是趋势延续、价格在合理波动范围内,**不要重复给出相同方向的信号**
|
||||||
|
|
||||||
### 交易目标
|
### 交易目标
|
||||||
- **稳健为主**:宁可错过,不做错
|
- **稳健为主**:宁可错过,不做错
|
||||||
@ -266,17 +271,39 @@ class MarketSignalAnalyzer:
|
|||||||
6. 90+分:强信号,但也要控制风险
|
6. 90+分:强信号,但也要控制风险
|
||||||
7. 不要输出 action 为 "wait" 的信号,如果没有交易机会就不输出
|
7. 不要输出 action 为 "wait" 的信号,如果没有交易机会就不输出
|
||||||
|
|
||||||
## 历史信号参考
|
## 历史信号参考(非常重要!)
|
||||||
**如果提供了上一轮的分析信号,请参考它来调整你的判断:**
|
**如果提供了上一轮的分析信号,必须仔细参考它:**
|
||||||
|
|
||||||
1. **避免重复信号**:如果上一轮已经给出了买入/卖出信号,不要在没有明显变化的情况下重复给出相同方向的信号
|
### 🚫 严禁重复信号
|
||||||
2. **信号调整建议**:
|
**如果上一轮已经给出了买入/卖出信号,不要在没有明显变化的情况下重复给出相同方向的信号!**
|
||||||
- 上一轮买入 → 当前看涨 → 可以考虑"继续持有"或"加仓"(如果有新进展)
|
|
||||||
- 上一轮买入 → 当前转跌 → 应该建议"减仓"或"止损"
|
以下情况**不要**输出新的交易信号:
|
||||||
- 上一轮观望 → 当前出现机会 → 可以给出新的交易信号
|
- ✗ 上一轮做空,现在仍然是空头排列,价格继续下跌 → **不要重复做空信号**
|
||||||
- 上一轮做空 → 当前转涨 → 应该建议"平仓"或"反转"
|
- ✗ 上一轮买入,现在仍然是多头排列,价格继续上涨 → **不要重复买入信号**
|
||||||
3. **趋势延续性**:如果上一轮判断的趋势方向仍然有效,不要轻易改变方向判断,除非有明确的反转信号
|
- ✗ 仅仅因为趋势延续就重复信号 → **绝对禁止!**
|
||||||
4. **时间间隔考虑**:如果距离上一轮分析只有很短时间(5-15分钟),避免频繁改变信号方向
|
|
||||||
|
### ✅ 允许输出新信号的情况
|
||||||
|
只有在以下情况之一时,才输出新的交易信号:
|
||||||
|
1. **趋势反转**:上一轮判断的趋势发生了明确反转
|
||||||
|
- 例如:上一轮看多(MA多头排列),现在转为空头排列
|
||||||
|
2. **从观望到机会**:上一轮是观望(无信号),现在出现了明确的交易机会
|
||||||
|
3. **上一轮信号已失效**:
|
||||||
|
- 价格已触及上一轮的止损或止盈价位
|
||||||
|
- 距离上一轮信号已过去较长时间(>2小时)
|
||||||
|
4. **新的关键点位**:价格触及了重要的支撑/阻力位,且有明显反转信号
|
||||||
|
|
||||||
|
### 📋 信号调整建议
|
||||||
|
当需要调整时,请在 reasoning 中说明:
|
||||||
|
- 上一轮买入 → 当前转跌 → reasoning 中说明"趋势转弱,建议减仓或止损"
|
||||||
|
- 上一轮做空 → 当前转涨 → reasoning 中说明"趋势反转,建议平仓"
|
||||||
|
- 上一轮观望 → 当前出现机会 → 说明新机会是什么
|
||||||
|
|
||||||
|
### ⏰ 时间间隔考虑
|
||||||
|
- 5分钟级别:如果上一轮是15分钟内,除非有重大变化,否则不重复信号
|
||||||
|
- 短线信号:同一方向信号间隔至少1小时
|
||||||
|
- 波段信号:同一方向信号间隔至少4小时
|
||||||
|
|
||||||
|
**记住:宁可错过,不要噪音。重复信号只会导致过度交易!**
|
||||||
|
|
||||||
记住:你只负责分析市场,输出客观的交易信号,不需要考虑仓位管理和风险控制!
|
记住:你只负责分析市场,输出客观的交易信号,不需要考虑仓位管理和风险控制!
|
||||||
"""
|
"""
|
||||||
@ -452,7 +479,9 @@ class MarketSignalAnalyzer:
|
|||||||
prev_trend = previous_signal.get('trend', 'Unknown')
|
prev_trend = previous_signal.get('trend', 'Unknown')
|
||||||
prev_signals = previous_signal.get('signals', [])
|
prev_signals = previous_signal.get('signals', [])
|
||||||
|
|
||||||
prompt_parts.append("\n## 上一轮分析信号")
|
prompt_parts.append("\n" + "="*60)
|
||||||
|
prompt_parts.append("## 上一轮分析信号(必须参考!)")
|
||||||
|
prompt_parts.append("="*60)
|
||||||
prompt_parts.append(f"分析时间: {prev_time}")
|
prompt_parts.append(f"分析时间: {prev_time}")
|
||||||
prompt_parts.append(f"趋势判断: {prev_trend}")
|
prompt_parts.append(f"趋势判断: {prev_trend}")
|
||||||
|
|
||||||
@ -477,14 +506,29 @@ class MarketSignalAnalyzer:
|
|||||||
f" 止盈: ${tp}\n"
|
f" 止盈: ${tp}\n"
|
||||||
f" 理由: {reasoning}"
|
f" 理由: {reasoning}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 重点警告
|
||||||
|
prompt_parts.append("\n" + "!"*60)
|
||||||
|
prompt_parts.append("🚨 严禁重复信号!")
|
||||||
|
prompt_parts.append("!"*60)
|
||||||
|
prompt_parts.append("如果上一轮已经给出了相同方向的信号(做空/做多),")
|
||||||
|
prompt_parts.append("且趋势没有发生明确反转,")
|
||||||
|
prompt_parts.append("绝对不要重复给出相同方向的信号!")
|
||||||
|
prompt_parts.append("")
|
||||||
|
prompt_parts.append("只有在以下情况才输出新信号:")
|
||||||
|
prompt_parts.append(" ✓ 趋势发生了明确的反转")
|
||||||
|
prompt_parts.append(" ✓ 上一轮是观望,现在出现了新的明确机会")
|
||||||
|
prompt_parts.append(" ✓ 价格已触及上一轮的止损/止盈价位")
|
||||||
|
prompt_parts.append("")
|
||||||
|
prompt_parts.append("以下情况不要输出信号:")
|
||||||
|
prompt_parts.append(" ✗ 趋势延续,只是价格继续向同一方向移动")
|
||||||
|
prompt_parts.append(" ✗ 仅仅因为均线排列仍然有效")
|
||||||
|
prompt_parts.append(" ✗ 没有明显的市场变化")
|
||||||
else:
|
else:
|
||||||
prompt_parts.append("\n上一轮没有给出交易信号(市场观望建议)")
|
prompt_parts.append("\n上一轮没有给出交易信号(市场观望建议)")
|
||||||
|
prompt_parts.append("\n你可以基于当前市场情况给出新的信号。")
|
||||||
|
|
||||||
prompt_parts.append("\n**重要**: 请参考上一轮的信号判断:")
|
prompt_parts.append("\n" + "="*60)
|
||||||
prompt_parts.append("- 如果上一轮给出了买入信号,现在是否需要加仓、减仓、还是继续持有?")
|
|
||||||
prompt_parts.append("- 如果上一轮给出了做空信号,现在是否需要平仓、减仓、还是继续持有?")
|
|
||||||
prompt_parts.append("- 如果上一轮是观望,现在市场是否出现了新的机会?")
|
|
||||||
prompt_parts.append("- 避免在没有明显变化的情况下重复给出相同的信号")
|
|
||||||
|
|
||||||
prompt_parts.append("\n请根据以上数据,给出你的市场判断和交易信号。")
|
prompt_parts.append("\n请根据以上数据,给出你的市场判断和交易信号。")
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user