diff --git a/backend/app/crypto_agent/market_signal_analyzer.py b/backend/app/crypto_agent/market_signal_analyzer.py index 8df2389..978b68f 100644 --- a/backend/app/crypto_agent/market_signal_analyzer.py +++ b/backend/app/crypto_agent/market_signal_analyzer.py @@ -154,29 +154,29 @@ class MarketSignalAnalyzer: ## 二、日内交易实战策略 -### 🎯 三种日内入场方式(优化版) +### 🎯 三种日内入场方式(稳健版 - 防止持续止损) -#### 策略1:突破追入(适合强势行情) -**什么时候追?** -- 30m 和 15m EMA 同向,趋势明确 -- 放量突破关键位(阻力/支撑) -- 15m 或 5m 级别正在加速 -- RSI 50-70(多)或 30-50(空)- 不过热 +#### 策略1:突破确认(谨慎使用) +**❌ 防止追涨杀跌 - 以下情况严禁追入**: +- 5m 连续 2 根以上大阳/阴线 → 趋势晚期,不追 +- 价格偏离 EMA5 > 1.5% → 过度延伸,不追 +- RSI > 65(多)或 < 35(空)→ 超买超卖,不追 +- 15m K线加速移动 → 正在追涨/杀跌,观望 -**追入必须满足**: -- ✅ 盈亏比 ≥ 1:1.2 -- ✅ 止损:1-2% -- ✅ 目标:2-3% -- ✅ 仓位:light 或 micro -- ✅ entry_type: **market**(立即入场) +**✅ 真正可以入场的突破信号(非常严格)**: +- 30m + 15m EMA 同向,趋势明确 +- 突破关键位后**回踩确认**(不是立即追) +- 5m 出现回调后反转信号 +- RSI 45-60(多)或 40-55(空)- 安全区 +- **entry_type: limit**(等待回调,不要市价追) -**❌ 追入的危险区(绝对不追)**: -- 15m RSI > 70(多)或 < 30(空) -- 价格偏离 EMA5 > 3% -- 连续 3 根以上大阳/大阴 -- 量比 < 1.0(无放量配合) +**突破确认的入场时机**: +``` +错误做法:突破阻力位 $68,000 → 立即市价追多 +正确做法:突破阻力位 $68,000 → 等待回踩 $67,800-$67,900 → limit 挂单做多 +``` -#### 策略2:回调/反弹入场(稳健策略 - 推荐) +#### 策略2:回调/反弹入场(稳健策略 - 大部分情况用这个) **回调做多**(30m 上升,15m 回调): - 回调到 30m EMA20 或支撑位 - RSI 回落到 40-50(不超卖) @@ -213,6 +213,18 @@ class MarketSignalAnalyzer: - 目标 1.5-2% - 盈亏比 ≥ 1:1.2 +### 🚨 禁止追涨杀跌铁律 + +**以下情况严禁入场(返回观望)**: +1. ❌ 5m 连续 2 根以上大阳/阴线 +2. ❌ 15m RSI > 65(多)或 < 35(空) +3. ❌ 价格偏离 EMA5 > 1.5% +4. ❌ 价格正在快速加速移动(15m 连续3根同向K线) +5. ❌ 量比 < 1.0(无放量配合) +6. ❌ 盈亏比 < 1:1.5 + +**记住:宁可错过,不做错!追涨杀跌是亏损的最主要原因!** + ### 🚨 盈亏比检查清单(必须执行!) **在输出任何交易信号前,必须计算盈亏比**: @@ -406,62 +418,51 @@ class MarketSignalAnalyzer: - **突破交易**:多周期同时突破关键位 + 放量,信号最强 - **回调交易**:30m 趋势向上,15m 回调到 EMA20,5m 反弹确认 -## 八、入场方式(日内优化) -根据市场分析综合判断入场方式: +## 八、入场方式(稳健版 - 防止持续止损) -### market(现价立即入场)- 两种场景 +### 核心原则:挂单优先,市价慎用 -#### 场景1:强趋势突破(稳健型) -使用场景: -- ✅ 强共振信号(A级,confidence ≥ 85) -- ✅ 放量突破关键位,趋势明确 -- ✅ 多周期同时突破,等待可能错过机会 -- ✅ 市场波动大,价格变化快 -- ✅ 15m RSI 50-70(多)或 30-50(空)- 不极端 -- **止损设置**:正常止损(1-1.5%),正常仓位 -- **盈亏比要求**:≥ 1:1.5 +**🎯 入场方式优先级**: +1. **limit 挂单(首选)**:等待回调/反弹到关键位 +2. **观望(次选)**:价格不合适时耐心等待 +3. **market 市价(慎用)**:仅在极少数情况下使用 -#### 场景2:快速突破博弈(激进型,新增!) -使用场景: -- ✅ **价格正在快速移动**(5m K线连续2-3根同向大阳/阴线) -- ✅ **放量突破关键阻力/支撑**(量比 > 1.5) -- ✅ **价格偏离 EMA5/EMA15 > 0.5%**,趋势加速中 -- ✅ **突破后回调可能性小**(强势突破不回头) -- ⚠️ **可以用更小止损**(0.8-1%),更快止盈(1.5-2%) -- ⚠️ **仓位减半**(micro 仓位),降低单笔风险 -- ⚠️ **盈亏比要求**:≥ 1:1.5(虽然止损小,但目标也近) +### limit(挂单等待入场)- 默认首选 +使用场景(90%的情况用 limit): +- ✅ **所有回调/反弹入场**(策略2的主要方式) +- ✅ **信号强度中等**(B/C 级) +- ✅ **市场横盘整理**,价格在区间内波动 +- ✅ **等待回调到支撑位**(EMA20、前期低点) +- ✅ **等待反弹到压力位**(EMA20、前期高点) +- ✅ **希望获得更优成交价格** +- ✅ **当前价格距离关键位 > 0.5%** -**快速博弈示例**: -``` -BTC 当前价格 $68,000,突然放量突破 $68,200 阻力位 -→ 5m 连续3根阳线,价格从 $67,800 涨到 $68,300 -→ 量比 2.0,价格偏离 EMA5 约 0.8% -→ 决策:market 现价做多 @ $68,300 -→ 止损:$67,700(-0.88%,小止损快速离场) -→ 止盈:$69,200(+1.32%,快速获利) -→ 盈亏比:1.5 ✅ -→ 仓位:micro(1%),降低风险 -``` +**挂单是稳健交易的基础,可以避免追涨杀跌!** -**为什么快速突破用小止损?** -- 突破后如果立即回调,说明是假突破,快速止损 -- 真突破会继续走,小止损不会被扫 -- 用小止损换取更多交易机会 +### market(现价立即入场)- 极少使用 +**⚠️ market 入场的严格限制**: -### limit(挂单等待入场) -使用场景: -- ✅ 信号强度中等(B/C 级) -- ✅ 市场横盘整理,价格在区间内波动 -- ✅ 等待回调到支撑位(EMA20、前期低点) -- ✅ 等待反弹到压力位(EMA20、前期高点) -- ✅ 希望获得更优成交价格 -- ✅ 当前价格距离关键位 > 0.5% -- ❌ **价格正在快速移动时不要用 limit** +仅在以下**极少数**情况使用 market: +- ✅ 强共振信号(A级,confidence ≥ 90) +- ✅ 放量突破**后回踩确认**,不是突破时追 +- ✅ 多周期同时确认,回调明确 +- ✅ 15m RSI 45-60(多)或 40-55(空)- 安全区域 +- ✅ 盈亏比要求:≥ 1:1.5 +- ✅ **止损设置**:正常止损(1-1.5%),正常仓位 + +**❌ 以下情况绝对不用 market**: +- ❌ 价格正在快速加速移动 +- ❌ 5m 连续 2 根以上大阳/阴线 +- ❌ 价格偏离 EMA5 > 1.5% +- ❌ 15m RSI > 65(多)或 < 35(空) +- ❌ 量比 < 1.0(无放量配合) +- ❌ 盈亏比 < 1:1.5 **重要**: - 必须同时输出 `entry_price`(建议入场价)和 `entry_type`(入场方式) -- 入场方式由你的市场分析判断,不是简单的价格距离计算 -- **优先选择 market 入场**,只有明确回调/反弹机会时才用 limit +- **90% 的情况应该使用 limit 挂单** +- **market 是最后选择,不是首选** +- 宁可错过机会,也不要追涨杀跌 ## 输出格式 请严格按照以下 JSON 格式输出: @@ -502,46 +503,35 @@ BTC 当前价格 $68,000,突然放量突破 $68,200 阻力位 - `entry_price`、`stop_loss`、`take_profit` 必须是数字类型,不要是字符串 - `key_levels` 中的支撑位和阻力位也必须是数字数组 -## 信号等级与置信度(日内优化版) +## 信号等级与置信度(稳健版) ### 按信号质量分类 - **A级**(85-100): - - 强共振:多周期同向 + 多指标共振 + 放量突破 - - 快速突破:5m 连续大阳/阴线 + 量比 > 1.5 + 加速移动 + - 强共振:多周期同向 + 多指标共振 + 回调确认 - 盈亏比 ≥ 1:1.5 - - **建议**:market 入场,可考虑 medium 仓位 + - **建议**:limit 挂单为主(等待回调),light 仓位 - **B级**(70-84): - 量价配合 + 主要指标确认 - - 突破但量能不足,或回调/反弹机会明确 - - 盈亏比 ≥ 1:1.2 - - **建议**:根据价格移动速度选择 market/limit,light 仓位 + - 回调/反弹机会明确 + - 盈亏比 ≥ 1:1.5 + - **建议**:limit 挂单,light 仓位 - **C级**(55-69): - 有机会但量价不够理想 - 震荡市区间交易 - - 盈亏比 ≥ 1:1.2 - - **建议**:limit 挂单为主,micro/light 仓位 + - 盈亏比 ≥ 1:1.5 + - **建议**:limit 挂单为主,micro 仓位 - **D级**(<55): - 量价背离或信号矛盾或盈亏比不足 - **不建议交易** -### 快速突破特别评级(加分项) -当出现以下情况时,可以提升评级: -1. ⭐⭐⭐ 5m 连续3根以上大阳/阴线 → +10 分 -2. ⭐⭐⭐ 量比 > 2.0(巨量突破) → +8 分 -3. ⭐⭐ 价格偏离 EMA5 > 1%(强势加速) → +5 分 -4. ⭐⭐ 多周期同时突破(5m+15m+30m) → +5 分 -5. ⭐ RSI 快速穿过 50(趋势确认) → +3 分 - -**示例**:基础 B 级(75分)+ 5m 连续3根阳线(+10)+ 量比2.5(+8)= 93 分(A级) - -## 注意事项(日内交易重点) -1. **优先使用 market 入场**: - - 日内交易最重要的是**抓住机会**,而不是等最完美的价格 - - 价格快速移动时,用 market 入场,用小止损控制风险 - - 只有在明确回调/反弹机会时才用 limit 挂单 +## 注意事项(稳健交易重点) +1. **挂单优先(90%用limit)**: + - 日内交易最重要的是**耐心等待好的入场价格** + - 价格快速移动时,**绝对不要追**,等待回调 + - 只有在极少数确认情况才用 market(<10%) 2. **只在有明确的做多或做空机会时才输出信号**(action 为 buy 或 sell) 3. 如果市场不明朗,没有明确交易机会,**不要输出任何信号**(signals 为空数组 []) 4. 信号强度(confidence)要合理,不要随意给高分: @@ -549,38 +539,23 @@ BTC 当前价格 $68,000,突然放量突破 $68,200 阻力位 - 75-84分:较强信号,可正常仓位(light 仓位) - 85-100分:强信号,可考虑 medium 仓位 5. **不要输出 action 为 "wait" 的信号**,如果没有交易机会就不输出 -6. **每次检查盈亏比**:盈亏比 < 1:1.2 的信号不要输出 +6. **每次检查盈亏比**:盈亏比 < 1:1.5 的信号不要输出 7. **避免过度交易**:趋势延续时不重复输出相同方向信号 8. **关注时效性**:日内信号有效期通常 2-4 小时,超过时间需重新评估 +9. **⚠️ 防止持续止损**: + - 价格加速移动时(连续大阳/阴线)强制 HOLD + - RSI 极端区间(>65 或 <35)强制 HOLD + - 价格偏离 EMA5 > 1.5% 强制 HOLD + - 宁可错过,也不要追涨杀跌! -## 快速突破的识别标准(market 入场信号) -当出现以下情况时,**强烈建议使用 market 入场**: -1. ✅ 5m 连续 2-3 根大阳线/阴线(实体 > 0.3%) -2. ✅ 价格突破关键阻力/支撑后加速(偏离突破位 > 0.5%) -3. ✅ 量比 > 1.5,放量确认突破有效 -4. ✅ 价格偏离 EMA5 > 0.5%,趋势加速中 -5. ✅ RSI 快速上升/下降(5m 内变化 > 10) - -**快速突破时的止损策略**: -- 止损可以设置得更窄(0.8-1%),因为: - - 真突破会继续走,不会被小止损扫掉 - - 假突破立即止损,损失小 - - 用更多小止损博弈换取大盈利 - -## 日内交易特殊注意事项 -1. **不持仓过夜**:收盘前 30 分钟逐步平仓 -2. **快进快出**:达到目标(2-3%)立即平仓,不贪心 -3. **严格止损**:触及止损立即离场,不要幻想 -4. **避免追涨杀跌**:价格过度延伸时(偏离 EMA5 > 3%)不追 -5. **关注量能**:无量配合的突破不追,容易是假突破 -6. **多周期确认**:5m/15m/30m 同向才入场,提高胜率 - -## 🎯 日内交易成功关键 +## 🎯 稳健交易成功关键 1. **盈亏比第一**:宁可错过,不做错 -2. **顺势而为**:趋势方向正确,成功率才能高 -3. **快速止损**:日内交易,止损就是止错 -4. **不贪不急**:达到目标就走,达不到就止损 -5. **保持冷静**:不被情绪左右,按规则交易 +2. **挂单优先**:等待回调,不要追涨 +3. **耐心等待**:好的入场点需要等待 +4. **严控止损**:触及止损立即离场 +5. **不贪不急**:达到目标就走,达不到就止损 +6. **保持冷静**:不被情绪左右,按规则交易 +7. **防止持续止损**:价格加速时强制观望 ## 历史信号参考(非常重要!) **如果提供了上一轮的分析信号,必须仔细参考它:** @@ -887,67 +862,68 @@ BTC 当前价格 $68,000,突然放量突破 $68,200 阻力位 ) if intraday_trend == "上升": - # 快速突破检测(优先使用market入场) + # 价格加速检查 - 强制观望,防止追涨 if is_rapid_moving and volume_ratio > 1.5 and deviation_ema5_15m > 0.5: - analysis.append(f"🚀 15m: 快速突破!连续{big_moves}根大阳线,平均涨幅{avg_move:.2f}%") + analysis.append(f"⚠️ 15m: 价格正在快速上涨!连续{big_moves}根大阳线,平均涨幅{avg_move:.2f}%") analysis.append(f" → 量比 {volume_ratio:.1f},偏离 EMA5 {deviation_ema5_15m:.1f}%") - analysis.append(f" → ⚡ **强烈建议 market 现价做多**,不要等回调") - analysis.append(f" → 止损0.8-1%(小止损快速离场),目标1.5-2%(快速获利)") - analysis.append(f" → 盈亏比要求 >= 1:1.5") - analysis.append(f" → 仓位:micro(1%),用小止损博弈快速行情") - elif is_accelerating and volume_ratio > 1.3 and not is_overextended: - analysis.append(f"15m: 正在加速上涨,放量突破") - analysis.append(f" → 建议 market 入场做多") - analysis.append(f" → 止损1-1.5%,目标2-3%,盈亏比 >= 1:1.5") - elif distance_to_ema20 < 1 and deviation_ema5_15m > 1.5: - analysis.append(f"15m: 回调到 EMA20 支撑位") - analysis.append(f" → 支撑位做多反弹(EMA20: ${ema20_15m:.0f})") - analysis.append(f" → 止损1%,目标2-3%,盈亏比 >= 1:1.5") + analysis.append(f" → 🚨 **严禁追涨!强制 HOLD 观望**,等待回调后再考虑") + analysis.append(f" → 如果要入场,等待回调到 EMA20 支撑位用 limit 挂单") + analysis.append(f" → 追涨是持续止损的主要原因!") elif is_overextended: analysis.append(f"⚠️ 15m 过度延伸: RSI {rsi_15m:.0f},偏离 EMA5 {deviation_ema5_15m:.1f}%") analysis.append(f" → 不要追多,等待回调") - else: - analysis.append(f"15m: 上涨中,可以轻仓做多") + elif is_accelerating and not is_overextended: + analysis.append(f"15m: 正在上涨中,建议等待回调") + analysis.append(f" → 等待回调到 EMA20 支撑位用 limit 挂单做多") analysis.append(f" → RSI {rsi_15m:.0f},偏离 EMA5 {deviation_ema5_15m:.1f}%") + elif distance_to_ema20 < 1: + analysis.append(f"15m: 回调到 EMA20 支撑位附近") + analysis.append(f" → 支撑位做多反弹(EMA20: ${ema20_15m:.0f})") + analysis.append(f" → 用 limit 挂单入场,止损1%,目标2-3%,盈亏比 >= 1:1.5") + else: + analysis.append(f"15m: 上涨中,耐心等待回调机会") + analysis.append(f" → RSI {rsi_15m:.0f},偏离 EMA5 {deviation_ema5_15m:.1f}%") + analysis.append(f" → 不要追多,等待回调到支撑位") elif intraday_trend == "下跌": - # 快速突破检测(优先使用market入场) + # 价格加速检查 - 强制观望,防止杀跌 if is_rapid_moving and volume_ratio > 1.5 and deviation_ema5_15m > 0.5: - analysis.append(f"🚀 15m: 快速突破!连续{big_moves}根大阴线,平均跌幅{avg_move:.2f}%") + analysis.append(f"⚠️ 15m: 价格正在快速下跌!连续{big_moves}根大阴线,平均跌幅{avg_move:.2f}%") analysis.append(f" → 量比 {volume_ratio:.1f},偏离 EMA5 {deviation_ema5_15m:.1f}%") - analysis.append(f" → ⚡ **强烈建议 market 现价做空**,不要等反弹") - analysis.append(f" → 止损0.8-1%(小止损快速离场),目标1.5-2%(快速获利)") - analysis.append(f" → 盈亏比要求 >= 1:1.5") - analysis.append(f" → 仓位:micro(1%),用小止损博弈快速行情") - elif is_accelerating and volume_ratio > 1.3 and not is_overextended: - analysis.append(f"15m: 正在加速下跌,放量跌破") - analysis.append(f" → 建议 market 入场做空") - analysis.append(f" → 止损1-1.5%,目标2-3%,盈亏比 >= 1:1.5") - elif distance_to_ema20 < 1 and deviation_ema5_15m > 1.5: - analysis.append(f"15m: 反弹到 EMA20 压力位") - analysis.append(f" → 压力位做空回调(EMA20: ${ema20_15m:.0f})") - analysis.append(f" → 止损1%,目标2-3%,盈亏比 >= 1:1.5") + analysis.append(f" → 🚨 **严禁杀跌!强制 HOLD 观望**,等待反弹后再考虑") + analysis.append(f" → 如果要入场,等待反弹到 EMA20 压力位用 limit 挂单") + analysis.append(f" → 杀跌是持续止损的主要原因!") elif is_overextended: analysis.append(f"⚠️ 15m 过度延伸: RSI {rsi_15m:.0f},偏离 EMA5 {deviation_ema5_15m:.1f}%") analysis.append(f" → 不要追空,等待反弹") - else: - analysis.append(f"15m: 下跌中,可以轻仓做空") + elif is_accelerating and not is_overextended: + analysis.append(f"15m: 正在下跌中,建议等待反弹") + analysis.append(f" → 等待反弹到 EMA20 压力位用 limit 挂单做空") analysis.append(f" → RSI {rsi_15m:.0f},偏离 EMA5 {deviation_ema5_15m:.1f}%") + elif distance_to_ema20 < 1: + analysis.append(f"15m: 反弹到 EMA20 压力位附近") + analysis.append(f" → 压力位做空回调(EMA20: ${ema20_15m:.0f})") + analysis.append(f" → 用 limit 挂单入场,止损1%,目标2-3%,盈亏比 >= 1:1.5") + else: + analysis.append(f"15m: 下跌中,耐心等待反弹机会") + analysis.append(f" → RSI {rsi_15m:.0f},偏离 EMA5 {deviation_ema5_15m:.1f}%") + analysis.append(f" → 不要追空,等待反弹到压力位") else: analysis.append(f"15m: 震荡,观望或双向轻仓") analysis.append(f" → 支撑位多,压力位空,盈亏比 >= 1:1.5") # 日内交易要点 - analysis.append(f"\n💡 日内交易要点:") - analysis.append(f"- **优先使用 market 入场**:抓住机会 > 等待完美价格") - analysis.append(f"- 快速移动时用小止损(0.8-1%)+ 小仓位(micro)博弈") - analysis.append(f"- 只有明确回调/反弹机会才用 limit 挂单") - analysis.append(f"- 使用 EMA(指数移动平均)反应更快") - analysis.append(f"- 盈亏比第一: 必须 >= 1:1.5") - analysis.append(f"- 快进快出: 持仓不超过4小时") - analysis.append(f"- 严格止损: 1-1.5%(快速突破时0.8-1%)") - analysis.append(f"- 目标盈利: 1.5-3%(根据止损调整)") + analysis.append(f"\n💡 稳健交易要点:") + analysis.append(f"- **90%用limit挂单,10%用market**:耐心等待回调,不要追涨杀跌") + analysis.append(f"- **价格加速时强制HOLD**:连续大阳/阴线时观望,等回调/反弹") + analysis.append(f"- **RSI极端区强制HOLD**:>65(多)或 <35(空)时不入场") + analysis.append(f"- **偏离EMA5>1.5%强制HOLD**:价格过度延伸,等待回归") + analysis.append(f"- **盈亏比第一**: 必须 >= 1:1.5,否则不开仓") + analysis.append(f"- **快进快出**: 持仓不超过4小时") + analysis.append(f"- **严格止损**: 1-1.5%(不使用小止损博弈)") + analysis.append(f"- **目标盈利**: 2-3%") + analysis.append(f"- **宁可错过,不做错**: 追涨杀跌是持续止损的主要原因") return "\n".join(analysis) if analysis else "" diff --git a/backend/app/crypto_agent/trading_decision_maker.py b/backend/app/crypto_agent/trading_decision_maker.py index 3a9c701..44a64a4 100644 --- a/backend/app/crypto_agent/trading_decision_maker.py +++ b/backend/app/crypto_agent/trading_decision_maker.py @@ -129,35 +129,34 @@ class TradingDecisionMaker: 3. **HOLD(观望)** - 如果反转信号不强 #### 情况C:无持仓 + 有同向挂单 -**默认选择:HOLD(等待挂单成交)** +**优先选择:HOLD(等待挂单成交)** -**只有在信号非常强烈时才考虑以下操作:** +**❌ 严禁取消挂单追涨**: +- 即使有新信号,也不要取消挂单去市价追涨 +- 挂单价格通常更优,耐心等待 +- 价格快速移动时更应该观望,而不是追涨 -**1. CANCEL_PENDING + 重新挂单** - 必须同时满足: -- ✅ 新信号是 **A级**(confidence >= 90) -- ✅ 新价格明显更优(距离 >= 2%) -- ✅ 可以显著改善风险收益比 - -**2. 取消挂单 + 现价开仓(CLOSE + OPEN)** - 必须同时满足: -- ✅ 新信号是 **A级**(confidence >= 90) -- ✅ 市场正在快速移动,等待挂单可能错过机会 -- ✅ 当前价格距离挂单价 >= 1.5% +**只有以下极端情况才考虑调整**: +- ✅ 趋势明确反转(如从涨转跌) +- ✅ 新价格更优且距离 >= 3%(仍用 limit,不用 market) +- ✅ 挂单已无意义(如突破后回踩确认) **示例**: ``` 当前:BTC 做多挂单 @ $94,000(未成交) -新信号:BTC 做多 @ $96,500(A级,90%置信度,突破关键阻力) +新信号:BTC 做多 @ $96,500(B级,75%置信度) 分析: -- 新价格更高,但突破有效,趋势加速 -- 决策:CANCEL_PENDING + 现价开仓 -- 理由:A级突破信号,等待挂单可能错过机会 +- 新价格更高,但挂单价格更优 +- 价格正在快速移动($94,000 → $96,500) +- 决策:HOLD(继续等待挂单成交) +- 理由:挂单价格更优,不要追涨,耐心等待 ``` **❌ 严禁**: -- 信号不是A级时取消挂单 -- 价格距离 < 2% 时重新挂单 -- 频繁调整挂单价格 +- 取消挂单后市价追涨/杀跌 +- 价格距离 < 3% 时调整挂单 +- 价格快速移动时任何操作 #### 情况D:无持仓 + 有反向挂单 **优先选择**: @@ -193,8 +192,21 @@ class TradingDecisionMaker: ### 3. 取消挂单规则 - **只能取消反向挂单**:buy信号取消sell挂单,sell信号取消buy挂单 - **绝不取消同向挂单**:buy信号不应取消buy挂单 +- **绝不取消挂单去市价追涨**:这是持续止损的主要原因 - **只能取消当前交易对的挂单**:不要取消其他交易对的订单 +### 4. 价格加速检测规则(防止追涨杀跌) +**以下情况强制 HOLD,禁止任何操作**: +- ❌ 信号入场价距离当前价格 >= 2%(价格正在快速移动) +- ❌ 15m RSI > 65(多)或 < 35(空)(极端区间) +- ❌ 价格偏离 EMA5 > 1.5%(过度延伸) +- ❌ 5m 连续2根以上大阳/阴线(加速中) + +**价格加速时的操作原则**: +- ✅ 有持仓:继续持有,考虑止盈 +- ✅ 有挂单:等待成交,不要调整 +- ❌ 无持仓无挂单:强制 HOLD,不要追涨杀跌 + ## 仓位大小规则(日内交易保守策略) ### 信号等级决定仓位上限 @@ -303,21 +315,21 @@ class TradingDecisionMaker: 分析: - 挂单价格更优($94,500 < $96,000) - 信号不是A级 +- 价格正在快速移动 - 决策:HOLD(等待挂单成交) -- 理由:已有更优价格的挂单,无需重复操作 +- 理由:挂单价格更优,不要追涨 ``` -### 示例6:有挂单 + 同向信号 - A级信号现价入场 +### 示例6:有挂单 + 同向信号 - 不要追涨 ``` 当前状态:BTC 做多挂单 @ $94,000(未成交) -新信号:BTC 做多 @ $97,000(confidence 92%,A级,突破关键阻力) +新信号:BTC 做多 @ $97,000(confidence 85%,B级,突破) 分析: -- A级突破信号,市场正在快速移动 -- 等待挂单可能错过机会 -- 当前价格距离挂单价 = (97000-94000)/94000 = 3.19% >= 1.5% -- 决策:CANCEL_PENDING + OPEN(现价开仓) -- 理由:A级突破信号,等待挂单可能错过机会 +- 新价格更高,但挂单价格更优 +- 价格快速移动($94,000 → $97,000) +- 决策:HOLD(等待挂单成交或等待回调) +- 理由:不要追涨,挂单价格更优 ``` ### 示例7:完全无持仓无挂单 @@ -714,13 +726,23 @@ class TradingDecisionMaker: prompt_parts.append(f"- 低于此距离不开新仓,避免风险过度集中") prompt_parts.append(f"- 此规则**没有例外**,无论信号等级多高都必须遵守") - # 计算并显示当前价格距离 - current_price = context.get('current_price') - signals = context.get('signals', []) - positions = context.get('positions', []) - pending_orders = context.get('pending_orders', []) + # 价格加速检测规则(新增 - 防止追涨杀跌) + prompt_parts.append(f"\n## 🚨 价格加速检测(防止追涨杀跌)") + prompt_parts.append(f"**以下情况强制 HOLD,禁止任何新开仓操作**:") + prompt_parts.append(f"1. 信号入场价距离当前价格 >= 2% → 价格正在快速移动,不要追") + prompt_parts.append(f"2. 15m RSI > 65(多)或 < 35(空)→ 极端区间,不要追") + prompt_parts.append(f"3. 价格偏离 EMA5 > 1.5% → 过度延伸,不要追") + prompt_parts.append(f"4. 5m 连续2根以上大阳/阴线 → 加速中,不要追") + prompt_parts.append(f"") + prompt_parts.append(f"**记住:追涨杀跌是持续止损的主要原因!宁可错过,不做错!**") - if signals and current_price: + # 计算并显示当前价格距离 + current_price = context.get('current_price') + signals = context.get('signals', []) + positions = context.get('positions', []) + pending_orders = context.get('pending_orders', []) + + if signals and current_price: for sig in signals: sig_action = sig.get('action') sig_entry = sig.get('entry_price')