Add /archive page, hub_symbol_archive.db, trade overlay, 4h background sync, and instance /api/hub/trades/archive. Document in hub-symbol-archive-kline.md with cross-links. Co-authored-by: Cursor <cursoragent@cursor.com>
9.1 KiB
策略交易说明
本文档说明仓库根目录 共用策略逻辑 与四个 crypto_monitor_* 实例中的 策略交易 入口(顶栏「策略交易」,页内子 Tab:趋势回调 / 顺势加仓)。
一、架构(精简共用)
strategy_trend_lib.py # 趋势回调:网格价、补仓拆分、边界校验(纯计算)
strategy_roll_lib.py # 顺势加仓:总风险反推、斐波限价、最多 3 腿(纯计算)
strategy_db.py # roll_groups / roll_legs 表结构
strategy_config.py # 各所 app → 统一回调配置(交易所 API)
strategy_register.py # Flask POST:/strategy/roll/preview、/strategy/roll/execute
strategy_ui.py # 主站 index 页数据(滚仓组、持仓列表等)
strategy_exchange_*.py # 适配器说明(实际下单仍走各所 app 的 ccxt)
strategy_templates/ # strategy_trading_page.html(双栏)、trend/roll 面板、records 页
strategy_snapshot_lib.py # 结束快照表 strategy_trade_snapshots(最近 100 条)
strategy_records_register.py # /strategy/records 路由与列表数据
| 层级 | 职责 |
|---|---|
| lib | 不算 ccxt、不写库 |
| config | 把 place_exchange_order、replace_active_monitor_tpsl_on_exchange 等接到统一 cfg |
| 各所 app | .env、DB、init_db、PM2、微信、监控轮询 |
部署时各实例 PYTHONPATH 需包含仓库根目录(ecosystem.config.cjs 中 PYTHONPATH=..)。
二、导航与页面
顶栏:策略交易 → /strategy(趋势回调 | 顺势加仓 左右并列);策略交易记录 → /strategy/records(已结束快照)。旧链接 /strategy/trend、/strategy/roll 会跳转到 /strategy。
| 区域 | 说明 |
|---|---|
| 左栏 · 趋势回调 | 四所均可(预览、执行、自动补仓、程序止盈);运行中计划卡含 补仓计划明细 表 |
| 右栏 · 顺势加仓 | 须已有同向持仓;滚仓组/历史表在右栏内滚动 |
| 策略交易记录 | 趋势回调 / 顺势加仓 分两栏;每条约一行摘要,点击展开详情;库内保留最近 100 条 |
/trade |
实盘下单 |
各所 app.py 注册 @app.route("/strategy/trend|roll") → render_main_page(...);install_strategy_trading 仅注册滚仓 POST API。
三、趋势回调(延续 Gate 趋势机器人逻辑)
- 位置:各所顶栏 策略交易 → 趋势回调(共用
strategy_trend_register.py+ 各所交易所 API)。 - 行为:与《crypto_monitor_gate_bot/趋势回调策略说明.md》一致——预览 → 确认执行 → 首仓 50% + 交易所止损 + 多档 自动 市价补仓 + 程序监控止盈。
- 共用代码:
parse_and_compute_trend_pullback_plan中网格/拆档已改为调用strategy_trend_lib。 - 互斥:与「机器人下单监控」持仓上限、运行中趋势计划互斥(逻辑未改)。
逻辑与 gate_bot 一致;各所使用自己的 API 密钥与 crypto.db,互不影响。
四、顺势加仓(滚仓,仅人工)
4.1 原则
- 禁止自动加仓;仅页面按钮「执行滚仓」或挂限价单(无价格穿越自动下单)。
- 全币种(与各所合约列表一致)。
- 止盈:全程使用 首仓
order_monitors.take_profit,滚仓不改止盈。 - 止损:每次人工填写 新统一止损;成交后调用各所 先撤后挂 TP/SL(止盈仍为首仓)。
- 总风险%:按「合并持仓 + 新止损」反推本次加仓张数,使触及新止损时亏损约 账户基数 × 风险%(默认 2%,可在表单修改)。
- 做多最多滚仓 3 次(首仓不计入,仅计
roll_legs已成交次数);做空默认同样 3 次(见strategy_roll_lib.ROLL_MAX_LEGS_SHORT)。
4.2 斐波限价
- 填写 上沿 H、下沿 L(H > L),仅用于计算限价加仓价(与
fib_key_monitor_lib.calc_fib_plan的 entry 一致)。 - 做多:下沿 = 结构止损侧;做空:上沿 = 结构止损侧。
- 可选 0.618 或 0.786;与关键位自动单的 TP(H/L 对侧)不同,滚仓 TP 锁定首仓。
4.3 前置条件
- 在 实盘下单 已有同 symbol、同方向 active
order_monitors。 - 交易所有同向持仓(读
get_live_position_contracts)。 - 无 active
trend_pullback_plans(与趋势回调互斥)。
4.4 数据表(各所 crypto.db)
roll_groups:绑定order_monitor_id、首仓 TP/SL、当前 SL、已滚仓次数。roll_legs:每腿方式(市价 / 斐波0.618 / 斐波0.786)、张数、新 SL、状态(filled/pending)。
init_db() 时自动 CREATE TABLE IF NOT EXISTS(strategy_db.init_strategy_tables)。
4.5 操作步骤
- 打开顶栏 策略交易
/strategy,在 右栏·顺势加仓 操作。 - 选择持仓币种、方向、加仓方式,填写 H/L(斐波时)、新统一止损、总风险%。
- 点击 执行滚仓(市价立即加仓并更新止损;限价则挂委托,成交后需再处理止损——当前版本限价 pending 后提示手动同步)。
- 查看页底 滚仓腿历史。
可选:对表单字段 POST /strategy/roll/preview(JSON)查看 strategy_roll_lib.preview_roll 结果。
五、策略交易记录(四所统一)
- 入口:顶栏 策略交易记录 →
/strategy/records(strategy_records_register.register_strategy_records)。 - 写入时机:趋势计划结束(止盈 / 止损 / 手动结束)、保本移交、顺势加仓组结案时,写入表
strategy_trade_snapshots(strategy_snapshot_lib)。 - 与交易记录区别:策略记录写
strategy_trade_snapshots;顶栏 交易记录与复盘 写trade_records。中控手动结束计划时 两者都应写入(详见 docs/trend-hub-close-and-trade-records.md)。 - 保留条数:每次写入后自动修剪,仅保留按
closed_at倒序 的最近 100 条。 - 页面布局:
- 左栏卡片:趋势回调记录;右栏卡片:顺势加仓记录。
- 每条默认 一行简略(品种、方向、结果、盈亏、补仓进度、结束时间);点击行展开均价/止损/止盈/补仓档位表或滚仓腿表。
- 筛选:币种、时间排序(最新/最早)、芯片 盈利 / 亏损 / 未补仓 / 补仓(前端过滤,数据来自服务端 enrich 字段
filter_pnl、dca_tag、dca_done)。
- 共用模板:
strategy_templates/strategy_records_page.html(四所index.htmlinclude)。
六、中控全屏 · 趋势回调展示
各所 Flask 经 hub_bridge + enrich_trend_plan_for_hub 向中控提供 active 计划(含 dca_levels)。在 manual_trading_hub 全屏 趋势回调 区,单所通常仅 一仓,计划卡为 横向两列(与实例字段一致,操作在实例完成):
| 区域 | 内容 |
|---|---|
| 顶栏 | #ID 品种、方向徽章、结束计划(SSO 打开实例并确认) |
| 左列 | 来源/风险/补仓边界/已补仓;均价、止损、止盈、盈亏比、标记价、浮盈亏(% 按 计划保证金) |
| 右列 | 补仓计划明细 表(首仓 + 各档;未成交显示 待补仓) |
| 底栏 | 保本移交(偏移%、跳转实例策略页)、快照可用 / 计划保证金 / 杠杆 |
静态资源版本见 manual_trading_hub/static/index.html 中 app.js / app.css 的 ?v= 参数;改 UI 后请 强刷 中控页。
七、升级与重启
cd /opt/crypto_monitor
git pull
pm2 restart crypto-monitor-binance crypto-monitor-okx crypto-monitor-gate crypto-monitor-gate-bot manual-trading-hub
pm2 save
部署约定:Ubuntu + root + /opt/crypto_monitor + PM2 → docs/ubuntu-server.md。
八、相关文档
| 文档 | 内容 |
|---|---|
| crypto_monitor_gate_bot/趋势回调策略说明.md | 趋势回调细则(与四所共用逻辑一致) |
| AI复盘与模型配置说明.md | 复盘页 AI(与策略无关) |
| manual_trading_hub/使用说明.md | 中控监控、全屏趋势卡两列布局 |
| docs/trend-hub-close-and-trade-records.md | 中控平仓、交易记录写入、补仓展示统一、漏记补录 |
| docs/hub-symbol-archive-kline.md | 币种档案、永久 5m K 线、建档与 4h 增量同步 |
| docs/ubuntu-server.md | Ubuntu / root /opt / PM2 部署 |
| fib_key_monitor_lib.py | 斐波公式共用 |
九、后续可增强(未实现)
- 滚仓页内嵌预览按钮、限价成交后一键同步止损。
- 策略交易记录按 UTC 时间窗与顶栏「列表筛选」联动。