PMS 持仓管理系统

v{{ health.version || '-' }} · {{ health.now || '' }} 交易日 非交易日
买入 {{ ov.buy_halt ? '已暂停':'正常' }} 执行 {{ ov.exec_halt ? '已暂停':'正常' }} 自主档位 {{ ov.autonomy || '-' }} 下发 {{ dm.mode || '-' }} 计划 {{ planStatus.ok===false ? '不可用' : (planStatus.date || '-') }} 上游计划 日报 运维 刷新
总规模
{{ money(ov.scale) }}
组合市值
{{ money(ov.portfolio_mv) }}
总仓位
{{ pct(ov.portfolio_pct) }} / {{ pct(ov.portfolio_cap) }}
可用额度
{{ money(ov.cap_room) }}
账户可用 (估算)
{{ money(ov.cash_source==='ws' ? ov.cash_avail : ov.cash_est) }}
持仓数
{{ ov.names_count }} / {{ ov.max_names }}
浮动盈亏
{{ money(ov.float_pnl) }}
厚垫 / 负垫
{{ ov.solid_names }} / {{ ov.neg_names }}
页面改动持久化到 pms_runtime_param, 优先于 settings.py 初值; 基础设施连接串只在 .env 维护。
保存修改 ({{ dirtyCount }}) 放弃修改

下达命令

{{ c.label }} {{ c.cls==='param'?'参数':'任务' }} {{ curSpec.cls==='param' ? '参数命令 (立即生效)' : '任务命令 (生成方案)' }} 高危
{{ curSpec.note }}
{{ fieldLabel(name) }}
下达
任务命令下达后立即生成方案并落 pms_plan; 指令下发由择时执行器负责 (下一批交付)。

在途命令与进度

持仓总览 ({{ positions.length }} 只)

在途指令

{{ dm.hint }} 展开可看每日子单与择时依据; 成交量以下游回放为准, 不拿下发量当成交量。

评审账本 (规则闸 / 研判闸 / 人工裁决全量留痕)

待确认队列 (自主档位 {{ ov.autonomy }})

propose_only 档位下, 增持类自主动作全部在此等待裁决; 减持方向不设确认门槛。 采纳后先落指令表 (先记账后动作), 由择时执行器分日出手。
进程 {{ wsc.process_alive ? '在线':'不在线' }} {{ wsc.conn_state || '-' }} 心跳 {{ wsc.heartbeat_age_sec==null ? '从未' : wsc.heartbeat_age_sec+'s 前' }}
每 3 秒自动刷新 刷新
seq 已落库
{{ wsc.last_seq }}
seq 已确认
{{ wsc.acked_seq }}
待入账上行
{{ wsc.inbox_pending }}
收 / 发
{{ wst.rx||0 }} / {{ wst.tx||0 }}
成交 / 拒绝
{{ wst.trades||0 }} / {{ wst.rejects||0 }}
重连
{{ wst.reconnects||0 }}
对端时钟偏差
{{ wst.peer_skew_ms==null ? '—' : (wst.peer_skew_ms>0?'+':'') + wst.peer_skew_ms + 'ms' }}

通道明细

下发模式 {{ wsMode || '-' }} 上次连上 {{ wsc.connected_at || '—' }} 出口队列 {{ JSON.stringify(wsc.queue||{}) }}
最后错误: {{ wsc.last_error }}
最后一条拒绝: {{ wst.last_reject }}
最后断开原因: {{ wst.last_close }}

出口委托 (pms_qmt_order)

上行消息 (pms_qmt_inbox) · 新→旧

隐藏 pong pong 每 5 秒一条且按协议 §5 带 seq, 不隐藏会把成交冲没
调度器 (--profile sched) 会自动按调度总表执行; 此处按钮用于未接调度或临时验证时手动触发。
推进待规划命令 方案转指令 出手试算 (不下发) 出手一跳 窗口收口
提议扫描试算 (不落表) 提议扫描
成交回放 账本对账 盘前准备 日终结算 生成日报 导出下游表结构
当前下发通道: {{ dm.mode }} —— {{ dm.hint }} (通道在「参数设置 → PMS_DISPATCH_MODE」切换)
{{ opsResult }}
强刷 + 灌行业映射 只重读 计划不带价格与金额 —— 买多少/什么价一律 PMS 自己算; 行情取不到价的票会被剔除。
计划日 {{ planStatus.date }} (日龄 {{ planStatus.age_tdays }} 交易日) · 热度日 {{ planStatus.heat_date || '-' }} · 快照 {{ (planStatus.market_snapshot_days||[]).join(',') }} · 上游主题上限 {{ planStatus.theme_cap }} · 上游全量 {{ JSON.stringify(planStatus.counts||{}) }} · 本次应答 {{ JSON.stringify(planStatus.returned||{}) }} · theme 灌映射 {{ JSON.stringify(planStatus.theme_sync||{}) }}
按当前参数筛选: 排序池 {{ planCand.considered }} → 合格 {{ planCand.eligible }} → 取 {{ (planCand.items||[]).length }} 只 · 丢弃 {{ JSON.stringify(planCand.dropped||{}) }} {{ (planCand.items||[]).map(x=>x.ts_code).join(' ') }}
「预期空间」= 券商目标价相对现价的空间 (上游 upside 字段, 2.12 → +212%)。噪音大, 所以永不参与排序 —— 排序始终按 score; 只在 PMS_PLAN_MIN_UPSIDE 上做下限过滤。 筛选参数在「参数设置」里: PMS_PLAN_TOP_N / PMS_PLAN_TIERS / PMS_PLAN_INCLUDE_OBSERVE / PMS_PLAN_MIN_SCORE / PMS_PLAN_MIN_SOURCES / PMS_PLAN_MIN_UPSIDE / PMS_PLAN_STALE_TDAYS。
{{ planResult }}

关注区

{{ JSON.stringify(report.report||{}, null, 2) }}