From 88a70555610ed60bf087dfefe755782f78fbb818 Mon Sep 17 00:00:00 2001 From: ZhouYongyou <128128010+zhouyongyou@users.noreply.github.com> Date: Sun, 2 Nov 2025 00:02:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=8A=80=E6=9C=AF?= =?UTF-8?q?=E4=BD=8D=E4=BC=98=E5=85=88=E6=AD=A2=E7=9B=88=20+=20=E8=BF=BD?= =?UTF-8?q?=E8=B8=AA=E6=AD=A2=E6=8D=9F=EF=BC=88=E9=98=B6=E6=AE=B51?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 解决问题: - 固定百分比止盈经常在技术位前回撤 - 浮盈没有保护机制,从 +1.5% 回撤到止损 核心改进: 1. 技术位优先止盈: - 震荡策略:技术位 < 2% → 止盈设在技术位前 0.1% - 趋势策略:技术位 < 5% → 止盈设在技术位前 0.2% - 技术位识别:EMA20、最近高低点、整数关口 2. 追踪止损机制: - 震荡:浮盈 0.8% → 止损移到成本价,浮盈 1.2% → 止损移到 +0.5% - 趋势:浮盈 2% → 止损移到成本价,浮盈 5% → 止损移到 +2.5% - 价格接近技术位 → 主动平仓避免回撤 3. 分批止盈预留: - 趋势策略:技术位在 5-10% → 分两批止盈 - 为阶段2分批止盈做准备 预期效果: - 减少"快到止盈就回撤"的情况 - 锁定浮盈,避免全部回撤 - 提高实际盈亏比 实施方式:纯提示词改进,基于已有数据(EMA20、K线高低点) 🤖 Generated with Claude Code --- decision/engine.go | 57 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/decision/engine.go b/decision/engine.go index 8f3190f4..db002371 100644 --- a/decision/engine.go +++ b/decision/engine.go @@ -299,10 +299,26 @@ func buildSystemPrompt(accountEquity float64, btcEthLeverage, altcoinLeverage in sb.WriteString("- 区间下沿(RSI<35 或接近支撑) → 做多\n") sb.WriteString("- 区间上沿(RSI>65 或接近压力) → 做空\n") sb.WriteString("- 趋势行情(多时间框架共振,放量突破) → 立即止损\n\n") - sb.WriteString("止盈止损设置(震荡策略):\n") - sb.WriteString("- 止盈:1-2%(快速获利)\n") - sb.WriteString("- 止损:0.8-1%(紧密止损)\n") - sb.WriteString("- 盈亏比:1:1.5 - 1:2\n\n") + sb.WriteString("止盈止损设置(震荡策略 - 技术位优先):\n\n") + sb.WriteString("核心原则:技术位 > 固定百分比(避免价格到技术位就回撤)\n\n") + sb.WriteString("1. 入场前分析技术位:\n") + sb.WriteString("- 做多:检查上方最近压力位(15m/1h EMA20、最近10根K线高点、整数关口)\n") + sb.WriteString("- 做空:检查下方最近支撑位(15m/1h EMA20、最近10根K线低点、整数关口)\n\n") + sb.WriteString("2. 止盈设置逻辑:\n") + sb.WriteString("- 如果技术位距离 < 2% → 止盈设在技术位前 0.1%(例:压力 101,200,止盈 101,100)\n") + sb.WriteString("- 如果技术位距离 > 2% → 使用固定 2% 止盈\n") + sb.WriteString("- 理由:价格很可能在技术位遇阻,提前止盈避免回撤\n\n") + sb.WriteString("3. 止损设置:\n") + sb.WriteString("- 固定 0.8-1%(紧密止损)\n\n") + sb.WriteString("4. 追踪止损(持仓中动态调整):\n") + sb.WriteString("- 浮盈达到 0.8% → 止损移到成本价(保证不亏)\n") + sb.WriteString("- 浮盈达到 1.2% → 止损移到 +0.5%(锁定一半利润)\n") + sb.WriteString("- 价格距离技术位 < 0.3% → 立即主动平仓(避免回撤)\n\n") + sb.WriteString("5. 示例(做多):\n") + sb.WriteString("- 入场:100,000,15m EMA20: 101,200(+1.2%)\n") + sb.WriteString("- 决策:止盈 101,100(技术位前 0.1%),而非 102,000\n") + sb.WriteString("- 持仓:价格到 101,000(+1.0%)→ 止损移到 100,000\n") + sb.WriteString("- 持仓:价格到 101,100(距离 EMA20 仅 0.1%)→ 立即平仓\n\n") sb.WriteString("退出信号:\n") sb.WriteString("- 多时间框架开始共振 → 市场转为趋势,立即止损\n\n") @@ -318,10 +334,27 @@ func buildSystemPrompt(accountEquity float64, btcEthLeverage, altcoinLeverage in sb.WriteString("- 突破后回踩入场(避免追高)\n") sb.WriteString("- 顺势交易(多头趋势做多,空头趋势做空)\n") sb.WriteString("- 持仓时间更长(至少 1-2 小时)\n\n") - sb.WriteString("止盈止损设置(趋势策略):\n") - sb.WriteString("- 止盈:5-10%(让利润奔跑)\n") - sb.WriteString("- 止损:1.5-2%(给足震荡空间)\n") - sb.WriteString("- 盈亏比:1:3 - 1:5\n\n") + sb.WriteString("止盈止损设置(趋势策略 - 技术位优先):\n\n") + sb.WriteString("核心原则:技术位 > 固定百分比,但给予更大空间\n\n") + sb.WriteString("1. 入场前分析技术位:\n") + sb.WriteString("- 做多:检查上方关键压力位(1h/4h EMA20、前高、整数关口)\n") + sb.WriteString("- 做空:检查下方关键支撑位(1h/4h EMA20、前低、整数关口)\n\n") + sb.WriteString("2. 止盈设置逻辑:\n") + sb.WriteString("- 如果技术位距离 < 5% → 止盈设在技术位前 0.2%\n") + sb.WriteString("- 如果技术位在 5-10% → 分两批止盈(第一批技术位,第二批 10%)\n") + sb.WriteString("- 如果技术位距离 > 10% → 使用追踪止损,让利润奔跑\n\n") + sb.WriteString("3. 止损设置:\n") + sb.WriteString("- 固定 1.5-2%(给足震荡空间)\n\n") + sb.WriteString("4. 追踪止损(持仓中动态调整):\n") + sb.WriteString("- 浮盈达到 2% → 止损移到成本价(保证不亏)\n") + sb.WriteString("- 浮盈达到 3% → 止损移到 +1%(锁定部分利润)\n") + sb.WriteString("- 浮盈达到 5% → 止损移到 +2.5%(让利润奔跑,但保护已有收益)\n") + sb.WriteString("- 价格距离技术位 < 0.5% → 考虑主动平仓或分批平仓\n\n") + sb.WriteString("5. 示例(做多):\n") + sb.WriteString("- 入场:100,000,4h EMA20: 104,500(+4.5%)\n") + sb.WriteString("- 决策:第一目标 104,300(技术位前),第二目标 110,000(+10%)\n") + sb.WriteString("- 持仓:价格到 102,000(+2%)→ 止损移到 100,000\n") + sb.WriteString("- 持仓:价格到 104,300(接近技术位)→ 主动平仓或分批平仓 50%\n\n") sb.WriteString("退出信号:\n") sb.WriteString("- 多时间框架方向开始矛盾 → 趋势减弱,获利离场\n") sb.WriteString("- 成交量萎缩 + MACD 背离 → 趋势可能反转\n\n") @@ -331,7 +364,13 @@ func buildSystemPrompt(accountEquity float64, btcEthLeverage, altcoinLeverage in sb.WriteString("必须在思维链中明确说明:\n") sb.WriteString("1. 市场状态判断: "当前市场状态:震荡/趋势(理由:...)"\n") sb.WriteString("2. 策略选择: "选择策略 A/B(理由:...)"\n") - sb.WriteString("3. 止盈止损: "震荡策略:止盈 1.2%, 止损 0.8%" 或 "趋势策略:止盈 5%, 止损 1.5%"\n\n") + sb.WriteString("3. 技术位分析: "上方压力位:101,200(15m EMA20),下方支撑位:99,500(最近低点)"\n") + sb.WriteString("4. 止盈止损: "止盈 101,100(技术位前 0.1%),止损 99,200(-0.8%)"\n") + sb.WriteString("5. 追踪止损计划: "浮盈 0.8% 时移动止损到成本价"\n\n") + sb.WriteString("重要提醒:\n") + sb.WriteString("- 价格很可能在技术位(EMA20、前高前低、整数关口)遇阻或反弹\n") + sb.WriteString("- 宁可少赚 0.5%,也不要从 +1.5% 回撤到止损\n") + sb.WriteString("- 持仓中主动调整止损,锁定利润\n\n") // === 交易频率认知 === sb.WriteString("# ⏱️ 交易频率认知\n\n")