Files
crypto_monitor/关键位止盈止损与移动保本更新说明.md
T
2026-05-21 06:26:07 +08:00

6.1 KiB
Raw Blame History

关键位止盈止损方案 & 移动保本开关 — 更新说明

版本日期: 2026-05-21
影响实例: crypto_monitor_binance(币安)、crypto_monitor_gateGate)、crypto_monitor_okxOKX
共用库: 仓库根目录 key_sl_tp_lib.py(计算逻辑)、fib_key_monitor_lib.py(斐波 SL/TP 不变)


1. 变更摘要

变更前 变更后
箱体/收敛 SL/TP 仅一种(标准突破) 添加时可三选一
移动保本(关键位) 自动单写死开启 添加时可勾选,默认关闭
斐波 SL/TP H/L 限价方案 不变;仅增加移动保本开关
历史 key_monitors 无新字段 缺字段视为 标准方案 + 保本关

2. 数据库(key_monitors 新增列)

启动时自动 ALTER TABLE(已有库兼容):

字段 类型 默认 说明
sl_tp_mode TEXT standard standard / box_1p5 / trend_manual
manual_take_profit REAL NULL trend_manual 使用
breakeven_enabled INTEGER 0 0=关,1=开

旧记录无上述列时,读取逻辑按 standard + 保本关 处理。


3. 三种止盈止损方案(仅箱体突破 / 收敛突破)

计划价 E = 确认 K(倒数第 1 根已闭合 5m)收盘价;H = |上沿 下沿|。
自动开仓(币安/Gate)前仍须:计划 RR(按 E> KEY_AUTO_MIN_PLANNED_RR(默认 1.5)。

3.1 标准突破 standard(原逻辑)

方向 止损 SL 止盈 TP
突破 K 最低价 × (1 KEY_STOP_OUTSIDE_BREAKOUT_PCT/100) E + 1×H
突破 K 最高价 × (1 + 外侧%) E 1×H

默认外侧:0.5%KEY_STOP_OUTSIDE_BREAKOUT_PCT)。

3.2 箱体 1R / 止盈 1.5H box_1p5

E 为当前价,风险距离 = 1×H,止盈距离 = 1.5×H,计划 RR 固定约 1.5:1

方向 止损 SL 止盈 TP
E H E + 1.5×H
E + H E 1.5×H

3.3 趋势单 + 自填止盈 trend_manual

方向 止损 SL 止盈 TP
突破 K 最低价 × (1 KEY_TREND_STOP_OUTSIDE_PCT/100) 添加时录入的 manual_take_profit
突破 K 最高价 × (1 + 外侧%) 同上
  • 环境变量 KEY_TREND_STOP_OUTSIDE_PCT,默认 1(即 1%)。
  • 添加时校验:做多止盈 > 上沿;做空止盈 < 下沿。

4. 斐波回调 0.618 / 0.786

  • SL/TP:仍为 calc_fib_plan(多:SL=L、TP=H;空:SL=H、TP=L),三方案下拉。
  • 移动保本:添加时可勾选;成交写入 order_monitors 时带入该勾选状态(默认关)。

5. 移动保本

场景 行为
关键位添加 复选框「移动保本」,默认不勾选
箱体/收敛自动开仓成功 order_monitors.breakeven_enabled = 添加时的选择
斐波限价成交后 同上
人工「实盘下单」 不变:仍为表单勾选,默认仍可按原页面逻辑

触发参数仍用全局 .envBREAKEVEN_RR_TRIGGERBREAKEVEN_STEP_RBREAKEVEN_OFFSET_PCT


6. 前端(关键位添加表单)

在「上沿 / 下沿」后增加:

  1. 止盈止损方案(仅类型为箱体突破、收敛突破时显示)
  2. 趋势单止盈价(仅选「趋势单·自填止盈」时显示且必填)
  3. 移动保本(箱体/收敛/斐波显示;默认不勾)

活跃列表卡片展示:方案保本:开/关


7. 环境变量

# 标准方案:突破 K 极值外侧 %
KEY_STOP_OUTSIDE_BREAKOUT_PCT=0.5

# 趋势单方案:突破 K 极值外侧 %
KEY_TREND_STOP_OUTSIDE_PCT=1

已写入各实例 .env.exampleBinance / Gate / OKX)。


8. 交易所差异

实例 箱体/收敛触发后
Binance / Gate 门控通过 → 按方案算 SL/TP → 市价开仓 → 挂交易所 TP/SL → 写入下单监控
OKX 门控通过 → 企业微信提醒(推送中含录入方案的计划 SL/TP/RR),不自动市价开仓

OKX 用户按推送中的计划价自行下单;斐波仍为限价 + 成交后挂 TP/SL(与原先一致)。


9. 涉及文件清单

路径 说明
key_sl_tp_lib.py 新建,三方案计算与文案
crypto_monitor_binance/app.py 门控触发、开仓、斐波、add_key
crypto_monitor_binance/templates/index.html 表单 + JS + 列表展示
crypto_monitor_binance/.env.example KEY_TREND_STOP_OUTSIDE_PCT
crypto_monitor_gate/app.py 同 Binance
crypto_monitor_gate/templates/index.html 同 Binance
crypto_monitor_gate/.env.example 同上
crypto_monitor_okx/app.py add_key、提醒文案、斐波保本
crypto_monitor_okx/templates/index.html 表单 + JS
crypto_monitor_okx/.env.example 注释项

10. 部署与验证建议

  1. git pull 后重启三个实例的 Flask 进程(会自动迁移 key_monitors 列)。
  2. .env 中按需设置 KEY_TREND_STOP_OUTSIDE_PCT(不配则用默认 1)。
  3. 验证 Binance/Gate
    • 添加箱体突破,选「箱体1R·止盈1.5H」,不勾保本 → 触发后微信应显示方案名、保本关、SL/TP 符合 E±H / E±1.5H。
    • 添加趋势单,填止盈,勾保本 → 成交后持仓卡片「移动保本:开」。
  4. 验证 OKX:门控通过时微信应含「录入方案」与计划 SL/TP,并注明提醒模式不自动开仓。
  5. 旧关键位条目:列表应显示「方案:标准突破」「保本:关」(除非库中已有新字段值)。

11. 代码入口(便于二次开发)

功能 符号
计划 SL/TP plan_key_sl_tp() in key_sl_tp_lib.py
按监控行计算 _key_plan_sl_tp_for_row() in各 app.py
添加关键位 add_key()
箱体/收敛轮询 check_key_monitors()OKX 仅提醒)
斐波添加 _add_fib_key_monitor(..., breakeven_enabled=)
自动开仓写监控 _market_open_for_key_monitor(..., breakeven_enabled=)