From 8fdcc2ac1663c591ebc9b89dd4773b2ede10e12f Mon Sep 17 00:00:00 2001 From: zlt Date: Fri, 11 Sep 2026 16:52:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E6=BA=90=E5=90=88=E8=AE=AE=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E5=8C=85=E4=B8=89(=E4=B8=80)=EF=BC=9A=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E9=9D=A2=E8=BD=AC=E7=A9=BA=E8=87=AA=E5=8A=A8=E7=A6=BB?= =?UTF-8?q?=E5=9C=BA=EF=BC=88part=201+2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 动作引擎加转空离场评估器 eval_tech_exit:相位转空且翻空≤2 交易日才评, 确认转空清仓全部可卖量、未确认减三分之一;默认自动执行(与保垫减仓同档), 档位 PMS_TECH_EXIT_AUTONOMY 三档 off/propose_only/full;同一翻空只处理一次 (PMS_TECH_EXIT_DONE 去重,SAR 翻多即清,不动表结构)。 - EVALUATORS 加一条改七条(TRIM、TRIM、EXIT、EXIT、ADD、FILL、DCA) - 卖出优先级改来源分档:目标价<研究走弱<技术面转空<保垫减仓(既有相对次序不变) - 策略票判据改按函数判:策略票只评到价清仓、不评转空离场(SAR 归策略层) 台账 010;第三十批 18 例;开发机全量 ALL SUITES PASS。 策略层两部分(盘中 SAR 止损线、弱基本面试探仓紧止盈)留下一增量。 Co-Authored-By: Claude Opus 4.8 --- DEVLOG.md | 30 +++++ app/core/action_engine.py | 85 +++++++++++- app/services/param_store.py | 5 + app/services/proposal_service.py | 62 +++++++++ docs/复盘决定台账.md | 18 +++ scripts/run_tests.py | 9 +- scripts/test_batch12_units.py | 9 +- scripts/test_batch30_units.py | 218 +++++++++++++++++++++++++++++++ 8 files changed, 424 insertions(+), 12 deletions(-) create mode 100644 scripts/test_batch30_units.py diff --git a/DEVLOG.md b/DEVLOG.md index 43b73d0..2ffa1c7 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -1403,6 +1403,36 @@ app/core/action_engine.py(合议分流五处:开关、跳过观察分流、a 一,工作包三离场纪律未做:eval_tech_exit 转空离场、盘中 SAR 止损线、弱基本面试探仓的紧止盈自动挂载。二,工作包四选股打分在另一仓库,单独审批后再动。三,工作包五其余文档:README 调度总表补到十三位、BIONIC_PMS_INTERFACE 技术面只读接口一节。四,页面管理视图持仓总览「证据列印两遍」的显示错误与研究面列,本轮未碰。五,提议卡合议行与增持门实际拦截,等有新提议、有持仓触发增持时在 155 补看。 +--- + +## 2026-09-11 · 工作包三离场纪律(part 1+2):技术面转空自动离场 + +**做了什么** + +把技术面从「只管入场投票」推进到「也管离场纪律」。这次做工作包三的前两部分,即动作引擎里的转空离场评估器,策略层的两部分(盘中 SAR 止损线、弱基本面试探仓紧止盈自动挂载)留到下一增量。 + +一,新评估器 eval_tech_exit。持仓票的技术面相位是「转空」且 SAR 翻空不超过两个交易日时评。确认转空清仓全部可卖量,未确认减三分之一。入场靠投票、离场靠纪律:转空像保垫减仓一样按规则自动执行,不进合议投票。档位 PMS_TECH_EXIT_AUTONOMY 三档,off 不评、propose_only 交人、full 自动执行,默认 full。同一次翻空只处理一次,用运行参数 PMS_TECH_EXIT_DONE 承载去重,SAR 翻多即清除,不动表结构。 + +二,卖出优先级改成来源分档。同一轮多条减持留一条,次序是目标价到价、研究证据走弱、技术面转空、保垫减仓。既有三类的相对先后一字不动,转空插在研究走弱与保垫减仓之间。 + +三,策略票判据改按函数判。到价清仓与转空离场都是 EXIT 动作,但策略票的 SAR 该由策略层的盘中止损线管,所以策略票只评到价清仓、不评转空离场。原先按动作名判会把转空离场对策略票误放行。 + +**动了哪些文件** + +app/core/action_engine.py(eval_tech_exit、SRC_TECH_EXIT、EVALUATORS 加一条改成七条、_sell_priority 来源分档、策略票判据按函数判);app/services/proposal_service.py(扫描参数加离场档位、持仓挂技术面状态、去重集加载与写回两个辅助函数);app/services/param_store.py(登记 PMS_TECH_EXIT_AUTONOMY、PMS_TECH_EXIT_TRIM_RATIO、PMS_TECH_EXIT_DONE,减持比例加校验范围);scripts/test_batch30_units.py(新增十八例);scripts/test_batch12_units.py(EVALUATORS 次序哨兵改成七条);scripts/run_tests.py(登记第三十批、总数 805);docs/复盘决定台账.md(台账 010)。 + +**部署方式** + +改了 Python,make deploy 重建镜像加 force-recreate。收盘后 155,本次与工作包二接入同批已授权直接部署。 + +**真机判收** + +待部署后补。开发机全量 ALL SUITES PASS(第三十批十八例,含开关关掉逐字回旧)。这一增量对策略票不回退:接入前策略票也没有 SAR 离场,本次只是给常规持仓加了转空自动离场,策略票的 SAR 线是下一部分。 + +**还欠着什么** + +工作包三剩两部分:跟踪止盈策略加盘中 SAR 止损线(09:45 后现价低于昨日 SAR 千分之三即卖、当日一次,每天 09:40 把映射里的 SAR 刷进自动挂载的跟踪止盈);弱基本面加技术面看多的试探仓次日 09:40 自动挂回撤 3%、硬目标 8%、带 SAR 线的紧止盈(台账 011)。工作包四选股打分另一仓库单独审批。工作包五文档。 + ---