# sanguo_portfolio 实盘启动手册 (AllWeather 全天候轮动) **状态**:代码就绪,等交易日首跑(周六休市)。回测验证结论见 `portfolio_backtest_result.md`(T9 完成后补)。 ## 前置确认(VPS 49.232.102.198) - [ ] miniQMT 客户端运行中(userdata_mini = `C:\国金QMT交易端模拟\userdata_mini`),交易账号已登录 - [ ] bullet-trade 0.9.2 已装(VPS),`jqdatasdk` 未装(走 env 路径) - [ ] sanguo_portfolio/ 已同步到 VPS(T9 agent 同步过,若 runner_live.py 有更新重新 scp) - [ ] xtquant 可用(miniQMT 提供) ## 启动(VPS Windows cmd) ```bat cd C:\sanguo_vnpy_v2 (或 VPS 项目根) set DEFAULT_DATA_PROVIDER=miniqmt set MINIQMT_MARKET=SH set SANGUO_QMT_ACCOUNT=66639661 set SANGUO_QMT_PATH=C:\国金QMT交易端模拟\userdata_mini python -m sanguo_portfolio.runner_live ``` - `DEFAULT_DATA_PROVIDER=miniqmt` 必设(避免 bullet-trade 模块加载强制 import jqdatasdk) - `SANGUO_QMT_ACCOUNT` 必设(runner_live 缺它拒绝启动,防误下单) - 初始资金 1,000,000(小仓位起步,runner_live 硬编码,首跑后按需调) ## 触发时点(BulletTrade scheduler 驱动) | 时间 | 函数 | 动作 | |---|---|---| | 09:05 | prepare_stock_list | 记昨日涨停股、刷新持仓列表 | | 月初第1交易日 09:30 | monthly_adjustment | 大小盘轮动择时 + 4 选股函数选 3-9 只 + ETF 兜底 + 调仓 | | 14:00 | stop_loss | 昨日涨停今日打开卖 / 亏损 8% 止损 / 补跌加仓 | ## 观察点(首跑重点盯) 1. **QmtBroker connect**:日志 `QmtBroker 装配 account=...` 后应见连接成功;若 LiveEngine 未自动 connect,首跑需在 run_live 显式 `broker.connect()`(已知风险点,首跑验证) 2. **字段名**:provider 取 PershareIndex/Balance 实际字段名(T9 回测校准过 alias,若 VPS 实盘仍报 KeyError,对照 portfolio_backtest_result.md 字段校准表) 3. **首笔调仓**:月初 monthly_adjustment 触发,看 target_list 是否合理(3-9 只 + 可能 ETF),order_target_value 下单手数对不对(A股×100) 4. **涨跌停过滤**:涨停买不进/跌停卖不出是否正确跳过 ## 风控 - 小仓位 1e6 起步(全天候策略最多持 9 只股票 + ETF) - 涨停止损 + 8% 止损内置(stop_loss) - T+1 自动扣减(BulletTrade A股适配) - **首跑建议**:非月初启动,先观察 prepare/stop_loss 触发不调仓;月初再验证 monthly_adjustment ## 等交易日 今天(2026-07-18 周六)休市,真实成交做不了。代码已就绪,**周一(7/20)开盘后首跑**。首跑先小仓位 + 非月初观察 scheduler,确认连通后再等月初验证完整调仓。 ## 回测验证结论 (T9 agent 完成后,从 portfolio_backtest_result.md 摘要:策略是否跑通、选股名单合理性、字段校准结果、聚宽数值对账缺基准标注) ## 已知限制 - PE/PB/PS/PCF 单期×4 近似 TTM(对账聚宽有偏差,精确 TTM 留 v2) - ROIC 用单期 oper_profit(vs 聚宽 roic_ttm) - jq query ORM 仅支持 ==/>/