169136dd4a
Document per-module order logic, risk rules, and WeChat message templates with a central INDEX for navigation. Co-authored-by: Cursor <cursoragent@cursor.com>
4.6 KiB
4.6 KiB
下单监控
页面路径:/positions(默认首页)
相关文件:install_trading.py、sl_tp_guard.py、pending_order_worker.py、product_recommend.py
功能结构
| 区域 | 说明 |
|---|---|
| 顶栏 | 模拟/实盘、CTP 状态、风险状态、权益、连接按钮 |
| 期货下单 | 手动开仓/平仓表单 |
| 当前持仓 | pending 挂单 + active 持仓卡片 |
| 可开仓品种 | 按权益与保证金筛选的推荐表 |
下单逻辑
手动开仓
- 选择品种、方向、限价/市价(FAK)、手数或计仓模式。
- 前置校验(全部通过才报单):
- CTP 已连接且不在连接中
- 处于 交易时段
assert_can_open()— 见 RISK.mdassert_product_allowed_for_capital()— 小账户四品种限制- 固定金额模式须填 止损价
- 开启 移动保本 须填止损(不可只填止盈)
- 保证金占用 ≤
max_margin_pct - 单笔手数 ≤ 50
- 计仓:
- 固定手数 → 使用
fixed_lots - 固定金额 →
calc_lots_by_amount()按止损距离算手数
- 固定手数 → 使用
- 报单:
execute_order()→ CTP。 - 成交后:
- 写入
trade_order_monitors(status=active 或 pending) - 注册本地 SL/TP 守护(
sl_tp_guard) - 微信:结构化开仓推送(有止损)或简版
- AI:后台开仓分析(有止损时)
- 写入
挂单(限价未立即成交)
- status=
pending,显示「挂单中」。 - 超时撤单:
pending_order_worker每 10 秒 reconcile(有 pending 时);默认超时见系统设置pending_order_timeout_sec。 - 微信:
委托已提交 · … 挂单中(N 分钟未成交自动撤单)
手动平仓
- 市价平仓当前品种方向持仓。
- 关闭对应 monitor,写入
trade_logs。 - 若当日手动平仓次数超限 → 触发冷静期(RISK.md)。
- 微信:结构化平仓推送(成交同步后)。
止盈止损守护
后台 sl_tp_guard 线程 + tick 事件:
| 条件 | 动作 |
|---|---|
| 价格触及 止盈价 | 市价平仓,结果=止盈 |
| 价格触及 止损价 | 市价平仓,结果=止损 |
| 开启 移动保本 | 见下节 |
触发时先推简版「平仓委托已提交」,成交写入 trade_logs 后推 结构化平仓。
移动保本
开启条件:下单表单勾选「移动保本」,必须填写止损,不设固定止盈。
逻辑(sl_tp_guard._update_trailing_stop_loss):
| 浮盈 R 倍数 | 止损移动至 |
|---|---|
| ≥ 1R | 开仓价 ± trailing_be_tick_buffer 跳(保本) |
| ≥ 2R | 开仓价 ± 1R |
| ≥ nR | 开仓价 ± (n−1)R |
平仓结果标签:
- 1R 锁定后止损出场 → 保本止盈
- 2R 及以上锁定后止损出场 → 移动止盈
关键位自动单若开启移动保本且设目标盈亏比(默认 3R),达 TP 仍按 止盈 平仓;移动止损与显式 TP 可同时生效。
风控规则
本板块执行 RISK.md 全部规则,另加:
| 规则 | 说明 |
|---|---|
| 非交易时段 | 禁止开仓 |
| 移动保本 | 必须填止损 |
| 固定金额 | 必须填止损才能算手数 |
| 保证金 | 新开仓前校验总占用 |
| 单笔 50 手 | 超限拒绝 |
顶栏 风险状态 实时反映:正常 / 冷静期 / 日冻结 / 仓位上限。
可开仓品种表
- 按当前权益、
max_margin_pct、合约保证金计算可开手数。 - 权益 ≤20 万或 CTP 未连接:仅四品种;未连接按 10 万权益估算。
- 夜盘时段过滤无夜盘品种。
- 每日后台刷新
product_recommend_cache。
详见 TRADING.md。
微信推送
| 事件 | 模板 |
|---|---|
| 开仓成交(有止损) | WECHAT §1 |
| 开仓成交(无止损) | WECHAT §2 |
| 挂单提交 | WECHAT §3 |
| 平仓完成 | WECHAT §4 |
| SL/TP 触发 | WECHAT §5 |
| AI 分析 | AI.md(仅页面,默认不推微信) |
数据流
用户下单 → API /api/trade/order
→ CTP 报单
→ trade_order_monitors
→ sl_tp_guard 监控
→ 平仓 → trade_logs → 微信 + AI
SSE:/api/trading/stream 推送持仓快照,无需整页刷新。