bfbd6879d6
Proactive monitoring for manual/hub closes and new opens prevents overtrading via in-app alerts, configurable WeChat links, and supervisor chat. Co-authored-by: Cursor <cursoragent@cursor.com>
3.7 KiB
3.7 KiB
交易监管(AI 教练)
中控 交易监管 用于防止过度交易与频繁手动操作:在 手动/中控开平仓 与 新开仓 时自动推送至 今日监管长会话,并可选 企业微信 提醒;程序止盈/止损按「正常执行」鼓励,不计入频繁交易统计。
入口:AI 教练(/ai)→ Tab 交易监管,或微信链接(在系统设置中配置)。
监管范围
| 类型 | 识别 | 页内推送 | 微信(P0) | 频率统计 |
|---|---|---|---|---|
| 实例手动平仓 | result = 手动平仓 |
✓ | ✓ | ✓ |
| 中控平仓 | result = 强制清仓 等 |
✓ | ✓ | ✓ |
| 新开仓 | 监控板持仓 diff(0→有仓 / 新合约) | ✓ | ✓ | ✓ |
| 程序止盈 | 止盈 / 保本止盈 / 移动止盈 | ✓ | 可选 | ✗ |
| 程序止损 | 止损 | ✓ | 可选 | ✗ |
| 外部平仓 | 外部平仓、时间平仓 | ✗ | ✗ | ✗ |
频率规则(间隔过短、30 分钟笔数、日笔数、连亏、平后快开)只对手动/中控开平 叠加 [监管·频率] 警告。
会话
- 每个交易日 一条长会话(
bot_mode: supervisor,标题今日监管 YYYY-MM-DD)。 - 系统消息(
role: system)+ AI 短评(assistant)+ 用户回复(user)同线程。 - 与 交易教练 / 普通聊天 分离;监管会话不支持「新开对话」。
系统设置
路径:系统设置 → 交易监管 · 企业微信(写入 hub_settings.json → supervisor)。
| 字段 | 说明 |
|---|---|
enabled |
总开关 |
wechat_webhook |
监管专用 企业微信机器人(与四所实例 .env 的 WECHAT_WEBHOOK 独立) |
wechat_link_base |
微信消息末尾跳转链接(可单独修改,如 https://域名/ai?mode=supervisor) |
wechat_prefix |
消息前缀,默认 【交易监管】 |
wechat_on_program_tp_sl |
程序止盈/止损是否也发微信 |
manual_close_daily_warn |
日手动平警告阈值(默认 2) |
interval_warn_minutes |
两笔手动/中控平最短间隔(默认 15 分钟) |
freq_30m_count |
30 分钟内笔数阈值(默认 2) |
reopen_after_close_minutes |
手动平后再开仓警告间隔(默认 30 分钟) |
.env 兜底(设置页保存优先):
SUPERVISOR_WECHAT_WEBHOOK=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=...
SUPERVISOR_WECHAT_LINK=https://你的域名/ai?mode=supervisor
SUPERVISOR_POLL_INTERVAL_SEC=30
API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/ai/supervisor/session |
今日监管会话 |
| GET | /api/ai/supervisor/stream |
SSE 版本推送 |
| POST | /api/ai/supervisor/chat/send |
用户回聊(JSON { "message": "..." }) |
| GET | /api/ai/supervisor/rules |
当前阈值 |
| POST | /api/ai/supervisor/refresh |
立即扫描 |
存储
| 文件 | 内容 |
|---|---|
hub_supervisor_state.json |
已处理事件、持仓快照、频率统计 |
hub_ai_chat.json |
监管会话(bot_mode: supervisor) |
hub_settings.json |
supervisor 配置节 |
首次启用 会对当前交易日已有平仓做 种子同步(不补发历史推送),避免部署瞬间刷屏。
与实例风控
实例 account_risk_lib(冷静期 / 日冻结)为 硬拦截;监管为 软提醒 + 陪聊,不绕过实例开仓限制。
代码位置
| 模块 | 路径 |
|---|---|
| 规则与推送 | hub_supervisor_lib.py |
| 后台扫描 | hub_supervisor_cache.py |
| 会话 | hub_ai/supervisor_store.py |
| AI 评语/回聊 | hub_ai/supervisor.py |
| 提示词 | hub_ai/prompts.py → SUPERVISOR_SYSTEM |
部署后重启中控:pm2 restart manual-trading-hub(或你的 hub 进程名)。