Document per-module order logic, risk rules, and WeChat message templates with a central INDEX for navigation. Co-authored-by: Cursor <cursoragent@cursor.com>
7.5 KiB
企业微信推送
配置:系统设置 → 企业微信 Webhook(wechat_webhook)。
发送函数:app.send_wechat_msg() — 所有推送正文前自动加前缀:
【国内期货】
{正文}
未配置 Webhook 时静默跳过,不报错。
推送类型索引
| # | 类型 | 触发场景 | 模板章节 |
|---|---|---|---|
| 1 | 手动开仓成功(结构化) | 下单监控成交且填写止损 | §1 |
| 2 | 手动开仓(简版) | 成交但未填止损 | §2 |
| 3 | 挂单提交 | 限价单未立即成交 | §3 |
| 4 | 平仓完成(结构化) | trade_logs 写入平仓记录 | §4 |
| 5 | SL/TP 触发(简版) | 本地止盈止损市价平仓委托已提交 | §5 |
| 6 | 关键位自动单结果 | 箱体/收敛突破尝试下单 | §6 |
| 7 | 关键位开仓成功(结构化) | 自动单成交 | §7 |
| 8 | 关键支阻区提醒 | 5m 收盘突破区间 | §8 |
| 9 | 开单计划触发 | 现价进入决策区间 | §9 |
| 10 | 开单计划止盈/止损 | 激活后价格触及 TP/SL | §10 |
| 11 | 策略趋势回调 | 首仓/止盈/补仓 | §11 |
| 12 | AI 分析 | 开仓/平仓/日终报告 | §12 |
实现文件:wechat_notify.py、trade_notify.py、key_monitor_lib.py、app.py、install_trading.py、ai_worker.py。
结构化推送
以下模板由 wechat_notify.py 生成,字段随实际成交数据填充。
1. 手动开仓成功
函数:format_open_success() · 来源:trade_notify.notify_manual_open_filled()
触发:下单监控开仓 成交 且填写了 止损价。
模板:
📈 {品种名} 开仓成功
💼 账户:{模拟盘/实盘}
🧾 订单基础信息
📌 来源:期货下单
🔖 委托号:{order_id}
📈 方向:多头(long)/ 空头(short)
⚠ 单笔风控:{risk_percent}%≈{risk_amount}元
📊 仓位配置
账户权益:{capital} 元
开仓手数:{lots} 手
占用保证金:{margin} 元
仓位占比:{margin_pct}%
🎯 价位 & 盈亏比
开仓价:{entry}
止损价:{stop_loss}
止盈价:{take_profit}
计划盈亏比:RR {rr} : 1
移动保本:1.0R → {be_px}(缓冲 {be_tick_buffer} 跳) ← 仅开启移动保本时
📌 状态
✅ 已进入下单监控,本地 SL/TP 守护
示例:
📈 螺纹钢 开仓成功
💼 账户:SimNow 模拟
🧾 订单基础信息
📌 来源:期货下单
📈 方向:多头(long)
⚠ 单笔风控:1%≈1000.00元
📊 仓位配置
账户权益:100000.00 元
开仓手数:2 手
占用保证金:8500.00 元
仓位占比:8.50%
🎯 价位 & 盈亏比
开仓价:3200
止损价:3180
止盈价:3240
计划盈亏比:RR 2 : 1
📌 状态
✅ 已进入下单监控,本地 SL/TP 守护
4. 平仓完成
函数:format_close_done() · 来源:trade_notify.notify_trade_log_close()
触发:trade_logs 新增平仓记录(SL/TP 守护、CTP 同步、手动平仓等)。
模板:
📈/📉 {品种名} 平仓完成
💼 账户:{mode_label}
🧾 平仓概要
📌 方向:多头(long)/ 空头(short)
📌 平仓结果:{止盈|止损|保本止盈|移动止盈|手动平仓}
💰 本单净盈亏:+/-{pnl_net} 元
⏱ 持仓时长:{N分钟|N小时N分钟|N天…}
💵 账户权益:{equity_after} 元
🎯 价位(计划)
开仓价:{entry}
平仓价:{close_price}
止盈价:{take_profit}
止损价:{stop_loss}
📎 备注
成交价不在计划止盈/止损带内(可能为手动或其他类型平仓) ← 可选
7. 关键位开仓成功
函数:format_key_open_success() — 在 §1 基础上追加:
📎 关键位触发
类型:{箱体突破|收敛突破}
模式:{顺势|反转} · {向上突破|向下突破}
5m 收盘:{bar_time}
来源字段:{monitor_type}·{trade_mode}(如「箱体突破·顺势」)。
8. 关键支阻区提醒
函数:format_zone_alert() · 最多 3 次,间隔约 5 分钟。
模板:
📌 {品种名} 关键位突破提醒({1|2|3}/3)
🧾 突破概要
📌 类型:关键支阻区
⏱ 触发时间:{bar_time}
📊 上沿:{upper}|下沿:{lower}
💹 触发收盘:{close_price}
🎯 {向上突破/向下突破}({多头/空头})
📍 突破价位:{boundary}
📎 说明
· 人工盯盘,共推送 3 次(间隔约 5 分钟)
· 推送完毕后本条监控自动结案
· 不参与自动开仓
简版与业务推送
2. 简版开仓
触发:成交但未填止损。
{模拟盘/实盘} 开仓 {symbol} {direction} {lots}手 @{price}
3. 挂单提交
触发:限价开仓委托已提交、尚未成交。
委托已提交 · {symbol} {direction} {lots}手挂单中({N} 分钟未成交自动撤单)
5. 本地止盈止损触发
触发:sl_tp_guard 本地检测到 TP/SL,已提交市价平仓委托(结构化平仓推送在成交写入 trade_logs 后另行发送)。
{止盈|止损} {symbol} {direction} {lots}手 @{mark},平仓委托已提交
6. 关键位自动单
函数:format_auto_breakout_msg() · 成败均推送。
模板:
✅/❌ {品种名} {箱体突破|收敛突破}自动单
⏱ 5m 收盘:{bar_time}
🎯 {向上突破|向下突破} · {顺势|反转} · {做多|做空}
💹 入场:{entry} 止损:{sl} 止盈:{tp}(盈亏比 {rr})
📦 手数:{lots}
🛡 已开启移动保本(达目标盈亏比自动止盈) ← 可选
{detail} ← 失败原因等
9. 开单计划
触发:planned → 现价进入 [zone_lower, zone_upper]。
【开单计划触发】{name} ({symbol})
方向:做多/做空
决策区间:{zone_lower} ~ {zone_upper}
决策理由:{reason}
当前价:{p}
止损:{stop_loss} 止盈:{take_profit}
10. 开单计划结果
触发:active 状态下触及止盈或止损。
[做多/做空] {name} 已{止盈|止损}
决策区间:{zone_lower} ~ {zone_upper}
止损:{stop_loss} 止盈:{take_profit}
当前价:{p}
开单计划 不自动下单,仅微信提醒并写入
trade_records。
11. 策略趋势回调
| 事件 | 模板 |
|---|---|
| 首仓成交 | 趋势回调首仓 {sym} {first_lots}手 |
| 止盈平仓 | 趋势回调止盈 {sym} |
| 补仓成交 | 趋势回调补仓 {sym} +{add_lots}手 @档位{done+1} |
12. AI 分析
详见 AI.md#微信推送。
事件分析(开仓/平仓后,AI 成功时):
🤖 AI 分析 · {title}
{content 前 1800 字}
日终报告:
🤖 {YYYY-MM-DD} 日终持仓与交易报告
{content 前 1800 字}
推送与板块对照
| 板块 | 推送类型 |
|---|---|
| 下单监控 | §1 §2 §3 §4 §5 §12 |
| 关键位监控 | §6 §7 §8 |
| 开单计划 | §9 §10 |
| 策略交易 | §11 §4 |
| AI 分析 | §12 |
注意事项
- 所有消息经
【国内期货】前缀发送,企业微信群机器人msgtype=text。 - 结构化开仓/平仓需 填写止损 才会发送完整模板;否则为简版。
- AI 推送仅在 AI 调用 成功 时发送;失败内容只写入
/ai页面。 - 关键支阻区第 3 次推送后监控自动归档,不再推送。