3.5 KiB
3.5 KiB
开发节点记录(三系统量化交易)
这份文件的用途只有一个:让下一次交接不必重新查一遍。 每个重要节点写一条,写完就补,不攒到最后。一条节点包含五样东西: 做了什么、动了哪些文件、部署方式、真机判收结果、还欠着什么。
三个系统的部署方式(改错等于白改):
- tradingSystem(PMS) 跑在
factor@factorevaluation,源码打进镜像, 改码必须make deploy,跑完make test见 ALL SUITES PASS,盯盘make watch。 容器时钟是北京时间。- bionic_trader(决策系统) 跑在
192.168.16.188:38000,挂载卷,git pull后docker compose restart backend-api worker-brain即生效; 新增 env 必须docker compose up -d --force-recreate,restart 不重读 env。 容器时钟是 UTC,看时间戳先加八小时。- akg-factor-bridge(因子桥) 在
factorevaluation,容器名akg_factor_bridge, API 在 8300,常驻 API 改码要 compose restart。容器时钟是 UTC。记录纪律:判收状态只写「真机见过」或「未判收」两种,不写「应该没问题」。 时间一律写北京时间,引用桥或决策系统的日志时间时先加八小时并标注已换算。
2026-08-06 · 新建仓动作:方案已出,待拍板
做了什么 读完 PMS 的动作引擎主链代码,出了《给动作引擎加「新建仓」动作》的方案,等待拍板。 一行代码都还没改。
读代码得到的、与既有文档不一致的事实(以代码为准)
OPEN这个动作名在 PMS 里已经存在,而且从方案到下单的整条管道是通的:planner.py:31定义A_OPEN、executor.py:41的BUY_ACTIONS已含OPEN、command_service.py:647已经在用action="OPEN"写评审账本。 缺的只有自主提议这一段:action_engine.py:27的动作词表没有 OPEN,action_engine.scan()的输入是持仓列表,结构上不可能引入新标的。caps_ctx(view, ts_code=...)对从未持仓过的票不会带出行业名, 不显式传sector的话,行业集中度那道硬拦截会整段静默跳过。- 从未持仓过的票在
pms_position里没有行,update_position会影响 0 行。 建行要显式调ensure_position,它只写ts_code / status='PLANNED' / updated_at。 command_spec.py里那个"planner": "..."字段全代码库没有任何一处读它, 真正的分派是command_service._dispatch_planner里一串硬编码的if cmd_type ==。- 参考位取数(
ledger_service盘前那一跳)只对only_open=True的持仓取, 候选票没有支撑压力。这对择时实现 A 无影响(它用决策系统自己库里的结论), 但实现 B 的「回踩带」判据对新票是空的。
动了哪些文件
无。方案文件 NEW_POSITION_ACTION_PLAN.md 已放进 tradingSystem 项目目录。
部署方式 不涉及。
真机判收 未判收(尚未动码)。
还欠着什么 方案第十节的四件待拍板:新建仓的档位怎么给、每天最多新开几只、研判闸这一轮做不做、 盘中参考位漂移要不要加防护。拍板之后才动手。