Refresh DEPLOY, TRADING, STRATEGY, CTP_LIVE, FEATURES, INDEX, and README to document qihuo-ctp architecture, dual PM2 restarts, and休盘突破加仓. Co-authored-by: Cursor <cursoragent@cursor.com>
6.2 KiB
下单监控与策略交易
默认首页
登录或访问 / 后进入 下单监控(/positions)。页面包含:
| 区域 | 说明 |
|---|---|
| 顶栏 | 交易模式、CTP 状态、权益/可用、连接 CTP |
| 期货下单 | 限价/市价报单、止盈/止损、移动保本、以损定仓/固定手数 |
| 当前持仓 | CTP 持仓卡片、挂单中、撤单、平仓 |
| 可开仓品种 | 按权益与保证金上限筛选、行业分类、走势/跳空/成交量排序 |
/trade、/recommend 均重定向到 /positions(可开仓品种锚点 #recommend)。
两种交易通道
| 设置 | 实际连接 | 资金 |
|---|---|---|
| 模拟盘 | SimNow(vnpy → CTP 仿真前置) | SimNow 账户权益 |
| 实盘 | 期货公司 CTP(.env 中 CTP_LIVE_*) |
柜台权益 |
模拟盘与实盘均走 vnpy_ctp,无本地假撮合。
实盘接入与开平仓对比 → CTP_LIVE.md · SimNow → SIMNOW.md
CTP 双进程与连接行为
| 项目 | 说明 |
|---|---|
| Web | PM2 qihuo,端口 6600 |
| CTP Worker | PM2 qihuo-ctp,端口 6601(本机) |
| 连接/重连 | 在 Worker 内执行;小节休息、午间休盘 仍保持连接(便于读缓存权益/持仓) |
| 页面行为 | 各页 仅轮询 CTP 状态,不会在打开页面时自动发起连接 |
| 权益缓存 | CTP 短暂断开时,看板/持仓可回退读最近快照 |
手动 连接 CTP 仍通过 下单监控 页按钮或 API;成功后顶栏显示「CTP 已连接」。
下单与持仓
- 限价开仓:先显示「挂单中」,柜台成交后进入持仓监控;超时未成交自动撤单(时长见系统设置)
- 撤单:交易时段内可手动撤单;非交易时段按钮不可用
- 平仓:程序平仓写入
trade_logs(来源「本地」) - 持仓数据:SSE
/api/trading/stream推送,约 1 秒刷新
可开仓品种
- 用于开仓纪律与仓位限制:按保证金上限计算最大手数,仅展示当前权益下可开的品种
- 每日后台刷新列表(
/api/recommend/stream) - 最大手数 = floor(权益 × 保证金上限 ÷ 1 手保证金)
- 1 手保证金:CTP 已连接 时优先读取柜台合约的
long_margin_ratio/short_margin_ratio与乘数计算(表格标注「柜台」);未连接或合约信息暂不可用时,才用本地参考保证金率估算 - 开仓前校验、固定金额计仓、保证金占用比例检查均与上述规则一致,避免交易所上调保证金后仍按旧比例显示可开手数
- 展示近一周日线走势、跳空、昨日成交量(手)、成交额
- 可按 行业 筛选,支持多字段排序
- 夜盘时段:品种下拉与可开仓表仅显示有夜盘交易的品种,并带「夜盘」标记
小账户品种范围(≤20 万)
权益 不超过 20 万元 时,系统限制可浏览、可搜索、可报单的品种为以下 4 个:
| 品种 | 代码 |
|---|---|
| 玉米 | c |
| 豆粕 | m |
| 甲醇 | MA |
| 螺纹钢 | rb |
适用范围:
- 可开仓品种表
- 期货下单品种联想 / 下拉
- 开仓报单校验(含趋势策略首仓)
SimNow 与实盘规则一致:CTP 未连接 时,可开仓表 当前权益固定按 10 万 估算最大手数,并 仅展示四品种(玉米、豆粕、甲醇、螺纹钢);与系统设置中的参考资金无关。连接 CTP 后改用柜台权益;若柜台权益 ≤20 万,同样仅上述四品种。
页面会提示:「未连接 CTP,按 10 万权益估算最大手数,仅显示并可交易 …」。
期货下单 · 止盈止损与移动保本
本地止盈止损由程序监控持仓,触发后市价平仓(与 CTP 柜台委托/持仓数据独立)。
默认模式(移动保本关闭)
- 可同时填写 止盈、止损
- 填写入场价与止损/止盈后,表单下方显示 盈亏比、止损金额、止盈金额(如有)
- 本地监控:价格触及止盈或止损即平仓
移动保本(可选,默认关闭)
勾选 移动保本 后:
| 表单项 | 行为 |
|---|---|
| 止盈 | 隐藏,不提交止盈价 |
| 盈亏比 / 止盈金额 | 不显示 |
| 止损 | 必填,仅保留止损输入 |
平仓逻辑:
- 不再 按固定止盈价监控
- 程序按 移动止损 管理出场:浮盈达 1R 后止损移至开仓价 ± N 跳(保本);达 2R 移至 1R,依次类推(N 见系统设置「移动保本缓冲」)
- 开启移动保本 必须填写止损价,否则无法开仓
持仓卡片在开启移动保本时同样 不展示盈亏比、盈利金额、止盈状态,仅保留止损与移动保本进度(如已锁 N R)。
策略交易
| 页面 | 路径 |
|---|---|
| 策略交易 | /strategy |
| 策略记录 | /strategy/records |
趋势回调、顺势加仓等策略需先在下单监控完成开仓,再在策略页配置。
参考资金
系统设置中的「参考资金」在 CTP 未连接 时用于以损定仓估算;连接后自动改用柜台权益。
可开仓品种与品种白名单:未连接 CTP 时 可开仓表按 10 万权益 估算最大手数,且仅四品种;连接后若柜台权益 ≤20 万,同样仅上述四品种。
首次使用 SimNow
完整步骤见 SimNow 注册与接入说明。
简要:注册 SimNow → 填写 .env → 安装 vnpy_ctp → 登录系统 → 下单监控 → 连接 CTP。
主要 API
| 接口 | 说明 |
|---|---|
POST /api/ctp/connect |
连接 SimNow 或实盘 CTP |
GET /api/ctp/status |
连接状态 |
POST /api/trade/order |
报单(需已连接 CTP) |
POST /api/trading/order/cancel |
撤单(交易时段) |
POST /api/trading/close |
平仓 |
GET /api/trading/stream |
持仓 SSE |
GET /api/recommend/list |
可开仓品种 JSON |
GET /api/recommend/stream |
可开仓品种 SSE |
POST /api/strategy/trend/execute |
执行趋势策略 |
详见 DEPLOY.md 中 CTP 故障排查。