个人 A 股日频量化交易系统阶段性研究报告:全部策略、研究战绩与系统演进(2026 年 7—10 月)

ydxred70 分钟阅读0 次阅读

报告期:2026 年 7 月至 10 月

状态核查截面:2026 年 10 月 13 日中午;策略记录核对时间 13:22—13:35,UTC+8

作者:ydxred

性质:个人研究与工程实践记录,不构成投资建议

本文接续2026 年 5—7 月阶段性研究报告。下文既记录正收益,也记录亏损、停用、证伪、未完成和当前故障。所有成绩注明证据类型与截至日期,不能把回测、每天重新计算的观察快照、独立纸面账户和券商实盘混为一谈。

摘要:系统到底走到了哪一步

这一阶段,系统的发展已经不能用“又增加了几个因子”概括。数据获取、滚动训练、组合构造、交易约束、真实股数会计、纸面账本、Windows 执行、任务监控、备份恢复和网页展示都发生了变化;对策略的认识,也从短窗口表现逐步转向长周期、不同起点、不同资金与成本条件下是否还成立。

截至本报告截面,可以给出五个直接结论。

第一,确实存在历史正收益的策略,但没有一条可以仅凭本文的数字宣称未来稳定赚钱。 2024 年 4 月以来的数据库回放中,60 万元小盘组合、规则红利、止盈双袖等路线表现为正;但它们在资金、股票池、模型、区间与会计上不同,不是同场、同条件的实盘比赛。

第二,60 万元的小盘策略与 5 万元主板策略不是一个东西。 原 60 万元、30 股组合,在独立的退市零回收压力场景中完成 2018—2026 年长测,年化约 12.06%,最大回撤约 31.73%。旧 5 万元、5 股主板版本的同类长测却亏损,15bp 滑点下年化约 -0.45%,最大回撤约 41.19%。大资金、多股票、不同板块范围的结果不能按比例搬到小账户。

第三,新的 cash80 候选有继续观察的理由,但只是纸面候选。 它使用 5 万元、最多 8 股、80% 目标投入、60 交易日调仓。固定起点、50bp 单边滑点的 2018 长测年化为 9.50%;换调仓起点后,年化区间约为 2.55%—9.50%,最差路径回撤约 30.35%。9 月 16 日至 10 月 12 日的独立连续纸面账本共有 13 个交易日,资产从 50,000 元到 51,384.26 元,累计 +2.77%。这段观察很短,尚未覆盖一个完整调仓周期。

第四,失败研究是本阶段重要成果的一部分。 短期反转、40 日防御、注意力衰竭等路线完成了成百上千条调仓相位检验,均未通过各自预先设定的收益、回撤、夏普或稳健性门槛。分钟因子研究则在数据质量阶段就停止,没有用不合格输入生成收益结论。事件研究和打板严格撮合也没有提供足以升级实盘的优势证据。

第五,系统工程比上一阶段更可核对,但“服务在线”和“业务正确”仍需分开。 最近的核查中,API、调度器和执行端心跳可用,自动真实交易总闸关闭;部分策略最新任务却因历史持仓缺少合法估值而失败。拒绝输出不可靠净值是必要行为,但它也意味着业务问题尚未解决,不能用一个绿色在线状态掩盖。

本报告因此不把系统定位为“已完成的赚钱机器”。更准确的定位是:一套具备多策略研究、可执行性模拟、独立纸面验证和受控执行能力的个人量化系统;已经能明确否定一部分策略,也形成了值得继续观察的候选,但长期盈利与真实执行质量仍需分别证明。


一、先把“战绩”分成四种,避免一开始就看错

量化系统中最容易误导人的,不一定是一个明显错误的公式,而是把不同来源的收益率放进同一个排行榜。

本系统目前至少有四种证据。

证据类型实际怎么产生能回答什么不能回答什么
历史回放使用指定模型、规则、数据与成本,重新计算过去在这些条件下,历史上可能怎样当时是否真的持有、是否真实成交
每日首次观察快照每天回放后,保存当日首次观察到的端点和同路径前日值当天系统第一次算出了什么一套现金与股份始终连续的独立账户
独立连续纸面账本从固定初始现金与冻结规则出发,逐日延续持仓、现金、权益和订单冻结后实际积累的模拟路径券商排队、真实冲击与实际交割
券商成交及对账真实订单、成交、持仓、现金、费用与交割证据已发生的交易和执行偏差自动证明长期正期望

本文中的“年化”“最大回撤”“夏普”,绝大多数来自第一类。cash80 和旧 5 股小资金账户的短期成绩属于第三类。不能把这两类相加,也不能把一张历史回放曲线说成“账户已经赚到了这么多钱”。

1.1 为什么保存每日快照还不够

假设昨天的回放使用旧模型,算出期末资产 100 万元;今天模型或复权数据变了,重新计算历史后得到 110 万元。直接用 110 万除以昨天保存的 100 万,会得到 +10%,但这可能根本不是今天的市场收益。

目前的修正是保存同一次回放中的前后两个端点:

本次回放的单日收益 rₜ = 本次回放的当日资产 Vₜ ÷ 本次回放的前一交易日资产 Vₜ₋₁ − 1

再链接这些合法的单日观察收益,并记录模型与引擎身份。这比跨版本相除可靠,但仍不是一套从初始现金开始持续结转、从不重跑过去的独立账本。

本次核对还发现,早期部分 ML 快照缺少同路径前日值,不能把页面上从 7 月开始的整段链接收益直接当作严谨前向成绩。本文选择 8 月 26 日以后的完整日链接区间单列,不回填历史,也不把缺失日当成零收益。

1.2 为什么不做一个“最赚钱策略排行榜”

至少需要先统一以下条件:

  • 相同的开始和结束日期;
  • 相同的可交易股票池与板块权限;
  • 相同资金规模、整手和仓位规则;
  • 相同的公司行动、退市与缺价处理;
  • 相同费用、滑点、成交容量和不可成交规则;
  • 相同数据与模型版本;
  • 同样独立、没有被反复使用的验证样本。

不满足这些条件,最多只能说“这条记录的某项数字更高”,不能说已经找到了最优策略。


二、全部策略路线总览:不是只有小盘这一条

系统里的账户名、策略类名、实验名和执行账户不是一一对应关系。同一打分器可以产生不同组合,一个研究方向也可能有多个资金档和成本档。

下面按用途整理主要路线。

路线核心思路资金或组合特征当前应如何定位
主板 ML在普通主板股票池内进行机器学习排序与组合数据库回放的百万元尺度主板生产信号路线与研究回放需分别核查;不是已证明盈利的实盘
全 A ML 基线更广股票池中的模型选股百万元尺度比较基线,不是普通主板小资金替代品
攻防双袖 J同一模型、两种持仓节奏与风险纪律防御与进攻袖合成一个组合模型相同不等于两种独立 alpha
止盈/移动止盈双袖在组合上加入盈利保护与离场规则百万元级回放用于比较持仓纪律,不能只看最好区间
基本面 A估值、财务与价量信息结合的模型路线百万元级回放需关注公告时点、财报年龄和缺失模式
规则红利用显式规则选股,不依赖同一 ML 打分百万元级回放与机器学习路线独立比较
60 万元小盘五因子小流通市值池内,五类规则因子排序60 万元、30 股、60 交易日调仓短测较强;长测需区分严格失败与独立压力场景
中证 500 指数路线指数权重底座,可叠加模型倾斜千万元尺度当前配置倾斜系数为 0,不能称正在主动增强
ETF 轮动ETF 之间进行轮动与风险控制2 万元历史实验当前配置停用,保留历史记录
旧日线打板用日线表达涨停事件3 万元旧实验已废弃、停用;不得拿旧收益充当分钟严格研究成绩
旧 compact 五因子为小资金重新设计主板与真实股数约束3/4/5 万元、5 股、95% 目标投入长测失败,保留观察不改变 NO_GO
股息增强 compact基础分数加入股息维度多持仓数、周期和起点单一路径漂亮,起点稳健性不足
cash80股息增强基础上降低目标投入并增加持股数5 万元、8 股、80%、60 交易日独立连续纸面候选,未批准实盘
Claude 固定选股观察固定选股清单的后续表现跟踪独立观察,不等同自动模型组合单次选择、样本有限,单列口径
打板实验线分钟级封板/开板事件与可成交性研究与日频生产策略隔离严格口径未证明显著净优势
PEAD 事件研究检验业绩预告/快报后的可交易漂移事件样本,不是完整账户净值正向路线被否定,负向过滤增益不足
反转/防御/注意力候选在开发期预先固定规则后检验可执行损益3/5/8 万元、多个成本与调仓相位已完成的三条路线均未过门槛
分钟因子候选下行波动、尾盘延续、成交量集中度固定小样本诊断数据质量门槛未过,没有收益结论
深度网络与其他估值候选LSTM、TCN、Transformer 或其他评分研究研究实现与验证工具有代码不代表有可引用的完成业绩

“全部”并不意味着把每个版本号都当成一个新策略。一个候选修复输入检查、换日志格式、增加异常处理,通常不会产生新的投资逻辑。反过来,资金、股票池、仓位、调仓或会计政策改变,即使名字相似,也需要分开记成绩。

2.1 主要日常路线的具体参数

下面是本次核对的当前组合结构。它说明现在配置的研究对象,不反向保证早期存档在整个区间始终使用完全相同的参数。

路线股票池/本金持仓与节奏特有规则
主板 ML 双袖沪深主板/100 万元防御 60%、进攻 40%;进攻 10 股、10 日,防御按月双袖共享打分器,在单一组合中合成
全 A 基线含创业板、科创板/100 万元与主板版对应的基线双袖结构主要用于观察放宽股票池后的差异
攻防加强 J全 A 研究对照/100 万元防御 40%、进攻 60%防御择时下限 85%,进攻下限 70%
止盈/移动止损版ML 基线/100 万元基线组合叠加离场纪律止盈 20%,从持仓高点回撤 10% 离场
基本面候选 A主板、日均成交额至少 3,000 万元/100 万元20 股、40 日调仓-10% 止损,择时下限 60%
规则低波红利质量主板、日均成交额至少 3,000 万元/100 万元30 股、20 日调仓股息、盈利收益率、低波规则,不依赖 ML
中证 500历史成分/1,000 万元20 日调仓、单票上限 5%当前 tilt=0,按指数对照解释
ETF 双动量ETF/2 万元120 日动量、持有 2 只、按月轮动当前停用

规则红利的旧账户文案曾写“全 A”,而当前实际调度路径只取沪深主板;本文以核到的当前实现为准。ETF 的旧展示名称也不构成“已上真钱”的证据。

2.2 系统的技术骨架

Linux 研究与后端采用 Python、pandas/NumPy、PyArrow/Parquet、DuckDB、SQLAlchemy 和 PostgreSQL 等组件;模型研究包括 LightGBM 与深度网络分支;任务由调度器组织,FastAPI 提供接口,Vue/TypeScript/ECharts 负责交互展示。Windows 端独立承担桌面券商交互与健康采样。

从职责上可以画成一条主链与两条分支:

行情与公告 → 当时可见的特征 → 模型或规则排序 → 组合与风险预算 → 历史模拟/连续纸面。

只有另行满足真实执行条件的信号,才可能进入 Windows 执行 → 委托 → 成交 → 对账;所有环节共同进入 任务记录、监控、告警、备份和看板。

源码中存在某个组件,不代表它已启用。例如深度网络是研究实现,ETF 当前停用,打板与日频资金隔离。架构图说明连接关系,不替代实际运行证据。


三、数据库中已完成的历史回放:现有主要策略战绩

以下为本次只读核对到的最新成功、已提交历史回放。任务未完成或失败后的部分输出不进入表格。

除 ETF 外,起点均为 2024 年 4 月 1 日;结束日期按各行实际最后成功记录列示。由于终点并不完全一致,表格是现状盘点,不是严格同窗排名。

3.1 主要日频路线

路线本金→期末资产,元截至日期累计收益年化收益最大回撤夏普比率
主板 ML1,000,000→1,194,968.082026-09-30+19.50%7.39%18.48%0.60
全 A ML 基线1,000,000→1,249,340.442026-09-30+24.93%9.33%20.86%0.67
攻防双袖 J1,000,000→1,348,135.542026-09-30+34.81%12.71%20.10%0.76
止盈/移动止盈双袖1,000,000→1,417,276.142026-10-12+41.73%14.78%19.21%1.04
基本面 A1,000,000→1,237,971.692026-10-12+23.80%8.80%15.41%0.64
规则红利1,000,000→1,470,364.362026-10-12+47.04%16.46%12.43%1.10
60 万元小盘五因子600,000→1,038,350.072026-10-12+73.06%24.21%21.65%1.11
千万元中证 500 路线10,000,000→14,175,163.802026-09-30+41.75%15.00%16.78%0.75

本表年化采用对应已提交汇总的自然日跨度口径,不能与后文采用 252/观察数口径的独立长测直接比较小数点。

从这组记录可见,小盘组合在这一较短历史窗口的累计收益较高;规则红利的回撤和夏普也值得关注。但它们不是同一种“优胜”:收益最高、回撤最低、近期观察最好、最适合 5 万元,分别是不同问题。

这里还有一个容易误读的事实:主板 ML、全 A 基线、双袖 J 和指数路线的尾日停在 9 月 30 日,不是有意选了这个漂亮日期,而是后续任务没有形成新的可接受终态结果。当前任务失败的原因和策略过去的收益,应分开披露。

3.2 ETF 路线

ETF 历史记录的区间为 2018-01-02 至 2026-08-27,初始模拟资金 2 万元:

累计收益年化收益最大回撤夏普当前配置
+44.86%4.38%22.72%0.35停用

期末模拟资产为 28,972.36 元。它的历史记录没有被删除,但停止更新不能解释成“近期没有涨跌”,更不能与更新至 10 月的其他路线放在一个近期表现榜里。

3.3 指数增强为什么需要重新解释

指数增强类的设计是:

股票 i 的目标权重 ∝ 其指数权重 × exp(tilt × 模型标准分 zᵢ)

其中指数权重是底座,模型分数决定主动偏离。当前配置的 tilt 为 0,因此模型倾斜不起作用。这条曲线应按当前实际配置描述为指数底座路线,而不能把其收益都归功于机器学习选股。

此外,千万元资金下能够持有很多成分股,并不意味着 5 万元也能复制相同权重。整手、最小佣金、价格和现金余量都会让小账户严重偏离目标指数。

3.4 旧版长期存档也列出,但不冒充新严格结果

数据库还有 6 月写入的以下旧引擎长窗存档。列出它们是为了交代全貌,不是把它们与后续严格修正后的研究混为一谈。

旧存档区间本金→期末资产,元累计收益年化最大回撤夏普
中证 500 长期2019-06-03—2026-06-1510,000,000→17,326,700.65+73.27%8.13%27.91%0.58
规则红利长期2018-01-02—2026-06-151,000,000→1,700,645.30+70.06%6.49%22.24%0.52
60 万小盘长期2018-01-02—2026-06-15600,000→1,345,266.15+124.21%10.03%31.52%0.57
已废弃日线打板2020-07-01—2026-06-1630,000→82,141.62+173.81%18.42%68.40%0.59

旧日线打板即使累计收益很高,也伴随 68.40% 回撤,而且日线框架不能充分表达封板瞬间的真实成交顺序。它已经停用,不能将这条旧年化当成今天分钟打板策略的战绩。60 万小盘的旧长窗也不能取代后文的新严格失败记录与独立零回收压力场景。

3.5 这些账户采用怎样的成本假设

本次读取的当前通用股票模拟配置为佣金万分之 2.5、最低 5 元、默认滑点 5bp;小盘路线覆盖为 15bp。ETF 模块不收股票印花税。旧日线打板使用过 20bp 滑点。

特别需要披露:通用配置中的印花税参数仍为 0.001、过户费参数为 0.00002。这是模拟参数,不是当前法定收费标准。早期通用回放也没有对每个成本字段都保留与独立小资金研究同等完整的冻结证据,因此不能拿今天配置反向保证全部旧成绩的精确费率。

这使当前数字具备明确解释边界,但不允许简单手工“减去多收费用”后宣布另一组收益:费用会改变整手、现金和后续持仓,若调整必须另行完整回放,本次没有这样做。


四、首次观察快照与独立纸面账本:分开看近期成绩

4.1 可完整链接的每日回放观察段

下表统一从 2026-08-26 起,只使用同次回放前日值完整、没有缺失观察日的后段。收益通过合法日链接累计;不是把相邻两天来自不同回放的绝对资产直接相除。

计算包含 8 月 26 日这一天的收益,以其同路径前一交易日收盘为起算基点。本次没有独立绑定同窗指数全收益序列,因此不编造这段观察的基准超额;表中的中证 500 模拟账户也不是指数本体。

路线观察截止日记录数区间链接收益链接最大回撤
主板 ML09-3025+1.67%1.84%
全 A ML09-3025+1.66%1.89%
攻防双袖 J09-3025+1.15%2.44%
止盈/移动止盈双袖10-1228+2.20%1.91%
基本面 A10-1228+5.31%2.18%
规则红利10-1228+3.54%2.92%
60 万元小盘10-1228+2.66%6.41%
中证 500 路线09-3025-3.33%6.31%

ETF 在这一统一起点后只有两天记录,不具有可比较的观察长度,故不参加本表排名。

这些记录中仍可能包含不同模型或引擎标签。完整日链接解决的是跨路径相除问题,不会把一条不断更新的系统自动变成“冻结参数后、现金股份连续”的实验。短观察期也不适合机械年化。

4.2 两个真实股数的独立纸面账户

账户连续纸面区间记录数初始资金最新资产累计收益最大回撤持股数
旧 compact 五因子09-14—10-121550,000 元49,865.37 元-0.27%1.84%5
cash8009-16—10-121350,000 元51,384.26 元+2.77%1.22%8

本次核验读取的是已提交完整账本,并验证其链式完整性;不是进行中任务的中途收益。

旧账户最新现金 3,826.37 元、持仓估值 46,039.00 元,累计 5 笔纸面成交;cash80 最新现金 12,203.26 元、持仓估值 39,181.00 元,累计 8 笔纸面成交。两者都还没有提供真实券商执行证明。

cash80 的短期上涨不能推翻旧版长期失败,也不能让它自己直接获得实盘资格。它尚未经历完整 60 交易日再平衡,尚未充分观察换手、极端行情、缺价、企业行动与连续执行成本。

因此,这张表不计算年化、不承诺未来收益,也不把纸面成交称为券商成交。

4.3 Claude 固定选股与其他实验观察

Claude 固定选股是一组单独留痕的选股观察,不等同于系统的滚动 ML 组合,也不等同于文本风险过滤器。2026 年 7 月 15 日的实验先在 3,192 只主板股票中筛选,主要条件包括日均成交额至少 3,000 万元、连续两年盈利质量、负债率、PE/PB 和流通市值门槛。

209 只通过初筛后,采用质量 40%、估值 35%、股息 15%、成长 10%的复合排序,取 20 只深入研究,再结合反方尽调,锁定 5 只等权名单:贵州茅台、伊利股份、吉比特、公牛集团、宇通客车。这些是 7 月历史实验记录,不是当前买入推荐;当时估值和股息也不代表今天。

实验约定 60 交易日中期观察、125 交易日正式检验,不因后续涨跌偷偷更换初始组合。触发证伪条件需要记下,而不是事后改写最初判断。

当前成绩缺口也明确保留:本次没有找到可核验的最新持久化终态跟踪报告。 已有跟踪脚本会读取缓存并打印计算结果,但脚本存在不能替代结果证据。本次没有运行该脚本或重读行情,因此不填造“现在收益率”,不把该实验纳入战绩排名。

评价它还需固定买入价、分红再投资、费用、资金与同期基准。单次组合即便盈利,也不足以估计长期胜率,更不能因为模型名称就默认存在独立投资优势。


五、60 万元、30 股小盘五因子:短期漂亮,长测有条件

这是用户反复问到的“原版 60 万元那个”。它不是 ML 模型,而是规则型小盘多因子。

5.1 策略到底选什么

这条路线的主要框架为:

  • 初始模拟资金 60 万元;
  • 目标持有 30 只股票;
  • 在符合条件的沪深股票中构造池,范围不局限于普通主板权限;
  • 从流通市值较小的部分筛选,市值分位门槛约为底部 30%;
  • 流动性门槛为日均成交额至少 500 万元的对应配置;
  • 综合低换手、低波动、账面市值比、20 日反转、盈利收益率等五个规则维度;
  • 60 交易日调仓;
  • 长测按照固定 15bp 滑点及相应冲击、费用假设处理。

30 只股票使个股风险能够分散到更多标的,但小盘风格本身仍可能集中。30 股不代表不存在风格拥挤,也不代表普通账户拥有全部板块权限。

5.2 2018 长测为什么出现两个不同结论

严格原版遇到持仓退市后的缺价事件时,无法给出合法连续估值,因而失败。这个失败没有被删除、重命名为成功,也没有通过删股票、最后价格卖出或假定现金回收来“修好收益”。

后续另建了一个研究场景:对于满足预定条件、已确认退市的剩余持仓,转为零估值的残余权益,不产生市场卖出,不产生回收现金。

这叫零回收压力场景,不是原版策略完整通过。它不表示退市权益最终一定为零,也不是整个策略收益的理论最坏下界。模型中的其他假设仍可能低估现实风险。

5.3 独立终态复算结果

区间为 2018-01-02 至 2026-10-09,共 2,125 个交易日。

指标零回收压力场景结果
初始资金600,000.00 元
期末资产1,567,097.85 元
净增加资产967,097.85 元
累计收益+161.18%
年化收益12.06%
年化波动率22.56%
最大回撤31.73%
夏普比率0.62
Calmar0.38
年化换手指标约 5.15 倍
模拟成交1,599 笔,买入 917、卖出 682
显式佣金、印花税与过户费用31,080.20 元

滑点和冲击已经通过该场景成交价体现,不能再把同一项成本重复扣一次。该引擎的数量仍属于相应复权会计空间,不能把输出数量直接作为券商真实原始股数下单。

年化采用 252/观察数口径;夏普使用该复算约定的日收益与零无风险利率。因此,本表的 12.06% 与自然日口径报告在末位上可能不同,不应为了凑齐表格擅自统一旧报告数字。

5.4 每年都赚钱吗

年份场景收益
2018-19.90%
2019+18.17%
2020+12.35%
2021+19.22%
2022+27.75%
2023+10.06%
2024+2.09%
2025+45.92%
2026,截至 10-09-1.65%

长周期复利为正,不等于每年都赚钱。2025 年很强,2026 年截至日却为负;仅凭这一条策略的亏损,也不能判断整个股市“都不好”。

最大回撤对应的高点在 2023 年 12 月 6 日,低点在 2024 年 2 月 7 日,直到 2024 年 11 月 7 日才恢复。投资者实际经历的,不只是一个 31.73% 的数字,而是一段资产缩水和等待恢复的时间。

5.5 对“长期还是可以赚钱”的准确回答

这份证据支持的是:在明确的历史输入、成本和零回收会计场景下,该路线长期模拟收益为正。

它不支持的是:未来一定盈利、最大回撤不会更大、5 万元同样有效、原版所有退市问题已经解决、真实成交可以无偏复现。它值得继续研究,不等于已经完成实盘放行。


六、旧 3/4/5 万元主板五因子:完整长测明确失败

小资金研究不是简单把 60 万元改成 5 万元。旧 compact 路线重新限制为主板、排除风险警示股票,目标最多 5 股、95% 投入、60 交易日调仓,并使用真实整数股会计。

6.1 比原版多了哪些约束

主要条件包括:

  • 原始价格不低于 2 元;
  • 小流通市值筛选;
  • 20 日日均成交额至少 2,000 万元;
  • 上市时间、有效历史长度满足要求;
  • 先形成前 25 名候选,再按整手可负担性选择,最多 5 只;
  • 买入以 100 股为单位,T+1 可卖限制,已有零股可在清仓时卖出;
  • 旧仓小额调整存在金额门槛,但不能阻拦完整退出或风控退出;
  • 遇涨跌停、缺合法限价或无可用股数,不强行成交;
  • 分红、应收权益与公司行动单独记账。

这意味着同一个排序,在不同资金下可能买到不同数量,甚至不同股票。只有一手买不起的股票,不会因为模型评分高就凭空出现。

6.2 2018—2026 年六条完整结果

区间统一为 2018-01-02 至 2026-09-11,2,111 个交易日。表中滑点为对应单边档位,其他费用另按冻结规则计算。

初始资金滑点期末资产累计收益年化收益最大回撤
30,000 元15bp27,865.28 元-7.12%-0.85%40.71%
30,000 元30bp25,643.19 元-14.52%-1.79%41.25%
40,000 元15bp37,802.04 元-5.49%-0.65%40.95%
40,000 元30bp35,399.24 元-11.50%-1.40%41.37%
50,000 元15bp48,094.71 元-3.81%-0.45%41.19%
50,000 元30bp44,487.64 元-11.02%-1.34%41.74%

六条全部为负,不是“差一点就过”。即使最宽松的一组,只看名义资产也没有收回初始本金,更不要说资金时间成本与承受的回撤。

这个结论不因之后几天纸面上涨而改变。旧版的明确状态仍是长周期负收益、不可据此投入实盘。

6.3 为什么短测曾经显得很好

在 2024 年 4 月开始的短窗口中,5 万元路线的分阶段表现约为:

阶段收益
2024-04-01—09-23-15.37%
2024-09-24—12-31+28.56%
2025 全年+66.42%
2026 年至 09-11-7.07%

2025 年贡献的现金利润超过整个短窗口净利润的 100%,意味着其余阶段合计在抵消利润。不同资金档对应比例约为 104.76%—105.87%。

此外,596 个净值日并不等于 596 次独立验证。该窗口中只有约 10 批真正的再平衡决策。每天画一个点,会让证据看起来很密集,但独立决策样本并没有同步增加。

6.4 会计核对通过,为什么策略仍不行

这一研究保留了六条独立账本核对、公司行动检查和测试记录;现金与净值复算可以一致。它证明的是:在定义好的假设下,亏损不是简单加减算错。

计算正确与投资有效是两个判断。 审计通过而策略失败,恰好是验证工具应该能够给出的结果。


七、七类新因子:做了什么、留下了什么、否定了什么

旧五因子失败后,没有立即把资金转去另一个漂亮截图,而是在固定基础框架上测试新增信息。

7.1 研究候选

新维度实际含义容易误解的地方
盈利能力代理使用估值比值构造的代理不等同直接取得公告时点 ROE
中期动量跳过最近一段后的中期价格延续不等于短期追涨
下行风险关注负收益侧波动低波动未必高收益
换手稳定性观察交易活跃程度的稳定性与单纯低换手不是同一个量
股息维度使用当时可得股息率信息缺失不是股息率为零
销售估值销售收益率等相对估值不代表便宜股票必然修复
质量防御组合将若干质量与防御代理合成增加维度会增加选择自由度

单因子截面标准化后进行截断;缺失值按该研究协议中性处理。股息增强采用“基础分数与股息标准分各占一半”的组合,不是六个因子每个占六分之一。

这看似只是一个权重细节,却会显著改变风险暴露,必须写清楚。

7.2 完成度与失败处理

该批共 23 条运行路线,其中 21 条完成并通过相应独立核对,2 条由于公司行动碎股权益规则不能确定而失败。失败路线没有按零收益填入平均,也没有从方法说明中隐藏。

最终股息维度成为继续研究的方向,盈利能力代理未能通过后续验证。其余候选没有提供足以替代基础路线的证据。

7.3 一个看上去很好、但仍被拒绝的股息版本

固定 5 股、95% 目标投入、60 日调仓,2018—2026 年结果如下:

调仓相位对应实际起点滑点累计收益年化收益最大回撤
phase 02018-01-0230bp+136.25%10.40%27.78%
phase 202018-01-3030bp+19.10%2.05%39.51%
phase 402018-03-0630bp+86.54%7.59%33.40%

只展示第一行,会像一个很不错的策略。展示全部三行,就会看到调仓起点对结果影响很大。

phase 20 的高点恢复耗时约六年。它失败的原因不是“没有正收益”,而是没有满足所有预定相位的风险要求。正收益不自动等于符合投资目标。

7.4 收益是否由少数股票贡献

对股息版本 phase 0、30bp 路线的经济股票归因,102 个标的合计净利润约 68,125.06 元;净现金分红约 13,743.51 元,费用与滑点成本合计约 12,957.95 元。

最大单一盈利股票贡献约为净利润的 31.62%,前五只约为 81.97%。这里的分母是全组合净利润,不是所有盈利股票的正利润总和,两种口径不能混用。

这不证明策略一定无效,也不证明收益全部来自偶然,但提示需要检查集中度、个股路径与风格暴露,而不只是看组合年化。

7.5 缺失数据本身也可能影响选股

该研究中,符合条件股票日的股息字段有效覆盖约 61.59%,盈利能力代理约 74.24%;不同特征的有效性定义不同,不能把这些比例简单理解为供应商错误率。

缺失股息按中性 z=0 处理,不是强行补成“零分红”。但大量中性值仍会改变截面排名,因此应把覆盖率、行业分布和时期稳定性作为策略的一部分观察。


八、组合结构实验:加股票、降仓位、择时、错峰是否有效

因子好不好,与组合怎样承担风险是不同问题。围绕股息方向,研究比较了持股数、调仓频率、市场择时、现金比例和子账户错峰。

8.1 独立入场窗口检验

这些实验不是截取同一条净值曲线的不同片段,而是在 2021、2022、2024 等入口重新初始化现金、持仓和调仓时钟。

下表的年化是 2021 入口对应相位中位数;回撤为被检查的新入场窗口中的最差值。

结构30bp 年化中位数50bp 年化中位数最差窗口回撤风险筛选结论
原五因子,5 股/60 日10.46%9.37%31.43%未过
股息,5 股/60 日7.57%6.25%34.10%未过
股息,5 股/20 日4.87%2.93%37.20%未过
股息,8 股/60 日9.28%8.20%30.49%未过
股息,8 股/20 日6.56%3.96%31.99%未过
股息,8 股/60 日+MA200 择时0.69%0.32%20.73%仅达到最低研究观察门槛

最后一行看起来回撤更低,但赚钱能力也被压得很弱。50bp、固定相位的对应期末资产约为 50,930.13 元,而同区间中证 500 全收益基准的年化约为 4.51%。

这说明风控规则可能通过大量持币降低回撤,却没有改善单位机会的投资价值。不能因为“回撤通过”就忽略长期欠仓和跑输基准。

8.2 两个账户错峰是不是天然更稳

主要比较中,2021 入口、固定相位、50bp 的表现为:

结构年化收益各新入场窗口最差回撤
8 股、95% 投入参考8.20%30.49%
8 股、80% 投入6.30%25.80%
双账户、同日调仓7.08%31.48%
双账户、错峰调仓8.42%32.38%

错峰并没有自动带来更低回撤;组合最大单一股票权重仍可能升至约 30.84%。

这些子账户使用独立现金与费用,不把相反方向订单事后净额化,不用简单平均百分比替代合并资金账本。否则“小账户分散”很容易在纸上制造本来没有的低成本优势。

8.3 2024 年回撤是否只是手续费造成

一组 8 股、95% 投入、50bp 的相位差异归因中,2024 年 1 月 4 日至 9 月 18 日,两个相位亏损差约 3,611.84 元,其中额外费用仅约 238.04 元,占差额 6.59%。

损失分散在多只股票,不是简单由一只极端股票或一笔费用解释。这个结果提醒:降低手续费值得做,但不能拿“手续费贵”替代对选股时点与持仓结构的研究。


九、cash80:为什么保留为候选,以及它的真实边界

在上述实验之后,cash80 被留下作为独立纸面观察对象。名字中的 80 指目标资金投入上限,不是“80% 胜率”。

9.1 冻结规则

  • 初始资金 50,000 元;
  • 普通沪深主板范围;
  • 最多 8 股;
  • 目标投入 80%,其余留作现金;
  • 基础五因子与股息标准分按固定方式合成;
  • 60 个官方交易日调仓;
  • 冻结 phase 0 为观察路线,不因后续表现换相位;
  • 使用真实原始股数、整手、实际现金及独立公司行动会计;
  • 研究压力档采用 50bp 单边滑点,并另计相应费用。

本轮稳健性研究共涉及 60 个组合、96 次运行;此前的 95% 投入参考结果另列,不混入“新运行成功数”。零执行失败说明这些模拟正常完成,不代表 96 次独立发现了正收益。

9.2 不同初始年份,结论差多少

从零入场年份固定 phase 0 期末资产phase 0 年化相位年化中位数相位年化范围该入口相位最差回撤
2018110,008.04 元9.50%5.94%2.55%—9.50%30.35%
202170,769.11 元6.30%6.30%4.08%—8.12%21.97%
202266,798.31 元6.38%7.34%6.38%—8.84%22.87%
202462,594.39 元8.71%8.71%4.69%—10.31%25.80%

终点均为 2026-09-11,对应 50bp 档。每一行是新的入场账户,不是原账户继续运行到该年后的切片。

从 2018 入场的最弱相位,高点恢复约耗时五年半,最差滚动 12 个月约 -28.71%。有正年化并不意味着适合不能承受长期回撤的人。

9.3 固定 2018 路径的年度表现

年份phase 0、50bp 收益
2018-15.36%
2019+24.55%
2020+15.94%
2021+2.31%
2022+11.04%
2023+11.75%
2024+6.31%
2025+31.53%
2026,截至 09-11+1.40%

不能因为这组历史年份大多为正,就给出未来盈利概率。它已经参与了候选比较和选择,不是未见过的全新验证样本。

9.4 80% 目标投入不等于每天投入 80%

整手限制、买不进一手、涨停、候选不足及交易成本都会留下额外现金。主要新入场实验中,18 条路线各自平均投入比例再等权平均约为 69.87%;这不是某个单账户每天的固定投入,更不是 2018 全样本的统一仓位。

这也限制了因果解释:回撤下降可能部分来自少持股票、多留现金,而不是因子突然变强。若要把“选股改进”和“风险暴露降低”分开,需要匹配敞口的对照实验。

9.5 独立纸面为什么比每天重跑更重要

cash80 从冻结规则和初始现金出发逐日追加:

  • 每天的输入清单与身份;
  • 现金、股份、应收权益;
  • 计划、实际纸面成交、拒绝原因;
  • 当日净值与上一个账本头;
  • 执行版本和候选代码绑定。

已存在日期不能重新算一个更漂亮的版本覆盖。错过的日期不能事后伪装成当日观察;恢复只能使用已封存输入,不能重新抓取修订后的行情冒充原始记录。

供应商如果修改旧行情,追加过程可能明确拒绝,而不是悄悄改写过去。代价是系统需要处理失败和存储压力;收益是前向证据更诚实。


十、其他开发期候选:不能只保留成功故事

以下三条候选的开发期均为 2020-01-02 至 2023-12-29,970 个交易日。它们使用单独冻结的研究协议,与 2018 长测、日常 ML 回放不是同一实验。

这里的 970 个净值日,也不是 970 次独立策略验证。研究还比较多个调仓相位、成本和资金档,专门检查起点依赖。

10.1 短期反转 H20

15bp、phase 0 的结果:

资金持股数累计收益年化收益最大回撤夏普
3 万元3-39.65%-11.89%61.96%-0.32
5 万元5-23.22%-6.41%47.12%-0.12
8 万元8-19.34%-5.25%41.90%-0.10

共检查 300 条相位路线,独立复算没有发现账本不一致,但经济结果明显失败。年化换手约 18.66—20.23 倍,高于协议上限;战胜相应基准的相位分别只有 4/20、4/20、8/20。提高滑点到 30bp、50bp 没有扭转结论。

这条路线不是“还在等部署”,而是已经不满足目标。

10.2 防御 H40

15bp、phase 0:

资金累计收益年化收益最大回撤夏普战胜基准相位
3 万元-12.87%-3.39%32.30%-0.1012/40
5 万元-10.52%-2.75%24.44%-0.1018/40
8 万元-10.73%-2.81%25.64%-0.1317/40

600 条相位路线完成核对。平均投入约 93%—94%,因此不能简单说它亏损只是“现金太多,没有参与上涨”。它在实际持仓条件下仍未产生足够净收益。

10.3 注意力衰竭 H20

15bp、phase 0:

资金年化收益最大回撤夏普战胜基准相位
3 万元+10.02%36.90%0.498/20
5 万元+1.25%39.94%0.188/20
8 万元+0.96%33.03%0.169/20

这是“有一行年化超过 10%,仍然不通过”的典型案例。回撤、夏普、换手及相位稳定性都没有达到协议要求;三个资金档的相位中位超额均为负。30bp 下,5 万和 8 万档还转为负收益。

该批 300 条相位运行完成核验,不等于策略通过。文件齐全、退出码正确和现金核对一致,只保证计算结果可被讨论。

10.4 尚未形成可接受收益结果的候选

估值 Huber 等候选最近可引用的 9 月记录还停在合成验证阶段,未形成已接受的正式评分和可执行损益。曾失败的 C 分区计算也保留失败身份,不能用已完成的大部分分区推断整体策略表现。

对于这些路线,正确标签是“没有可引用的完成收益”,不是“0% 收益”,也不是“正在赚钱”。本次文章整理没有重新启动它们,也没有打开封存样本。


十一、事件研究、打板和文本模型:有想法,不等于有优势

11.1 PEAD:业绩利好发布后,还剩多少可交易利润

7 月完成的 PEAD 研究检查了业绩预告和快报。已记录的原始事件统计分别约为 47,228 与 14,725 条;进入具体分析的有效样本会因筛选和持有期不同而变化。

正面预告在剔除一字板、采用次日开盘入场及净费用口径后:

分析样本或口径结果
正面预告后 5 日净超额有效样本约 25,189-0.34%,t≈-7.6
正面预告后 10 日净超额对应有效样本-0.22%,t≈-3.7
负面预告后 5 日净超额约 21,782-1.20%,t≈-19

正面消息可能在开盘跳空中已经反映,看到公告后再以可实现价格买入,并不等于捕捉到公告前后的全部涨幅。因此该路线没有进入更复杂的严格账户回测,也没有新建投资袖。

负面事件的回避价值看上去更有可能,但与主板策略历史 581 笔买单匹配后,命中约 3.27%,预计节省约 12bp/年,增益不足以支持当时新增复杂度。它保留为潜在风险过滤材料,而不是已部署盈利来源。

这些是 7 月已完成研究记录,不是 10 月重新跑出的新业绩。事件 t 值也不能直接翻译成投资者盈利概率。

11.2 打板:成交假设一变,优势可能消失

打板实验与日频系统隔离,因为封板瞬间、排队、隔夜跳空和开板后的成交并不能用“每天开盘买一次”准确模拟。

本次核对到的最新严格已提交运行形成于 10 月 10 日,研究窗为 2024-08-01—2026-10-10,共约 53,174 个涨停/炸板事件,其中 24,622 个被判为严格可进场,占 46.30%。固定双边成本假设为 0.40%,包含两边各 15bp 滑点。

目标口径为首板、首次封板较早、开板后快速回封,且只接受事件先后顺序能够证明的样本。

口径样本数每笔平均净收益t 值单笔胜率
全部严格可进场24,622-0.2049%-6.27642.81%
首板全部19,060+0.0450%1.34143.57%
严格目标3,083+0.0091%0.10344.73%
目标口径每日 Top52,148+0.0452%0.41444.97%
旧“开板即买”,弃用47,173-0.5884%-22.41042.55%
旧乐观回封目标,弃用8,839+0.4045%7.12749.24%

严格目标的均值相对于波动过小,不能证明显著 alpha。旧乐观口径看起来均值更高、统计更显著,但不能继续拿它宣传。差异的核心不是算法名称,而是是否真的可以买到、是否用到了事后可见信息、是否正确计入交易约束。各列样本也不是完全相同,不能把差值解释成一个精确的因果修正收益。

每笔平均收益不是账户年化,也没有自动包含资金并发占用和连续复利。严格口径没有证明优势,就不应接入生产资金。

11.3 文本风险层与 Claude 固定选股不是同一件事

文本风险层的用途,是对最近一段时间的风险标签进行缓存、投票、解释和股票池过滤。它可以帮助整理信息,但是否增加收益,需要独立消融。

Claude 固定选股观察则是另一个实验:在某个时间点给出名单,再按预定规则跟踪。它不能借用量化模型、事件研究或文本过滤器的成绩证明自己。

本文不把“接入了大模型”当作投资优势。能生成有说服力的理由,与能够形成经过交易成本检验的超额收益,是两种不同能力。


十二、分钟数据研究:这次为什么连收益表都没有

为了检验日线之外是否存在新增信息,研究曾在固定 16 只诊断股票上检查分钟数据。规模约为 752.6 万行、31,227 个实际股票日;完整诊断日历网格为 36,080 个股票日。

预先固定的三个方向分别是:

  1. 日内下行波动,偏好较低下行风险;
  2. 尾盘 14:30—15:00 的收益延续;
  3. 分钟成交量集中度,偏好更分散的交易。

没有先看哪个因子赚钱再挑质量标准。进入计算前,就要求合法时间桶、价格数量关系和连续官方交易日窗口。

12.1 为什么 241 行不等于 241 个正常连续分钟

供应商的时间桶可能包含开盘集合竞价等约定。上午、下午交易段分开处理,不能跨午休制造一个普通的一分钟收益;同样不能把价格明显异常的时间桶简单删除,再把前后拼成连续序列。

20 日滚动因子要求 20 个连续的官方交易日通过质量检查,而不是“向前找 20 个碰巧保留下来的好日子”。

12.2 有效覆盖率远低于门槛

时段通过连续窗口条件有效比例
2018—2021 开发段293/3,8307.65%
2022—2023 验证段248/2,5889.58%
2024—2026-08-06 最近段154/2,5066.15%

预定的扩展门槛为 90%。三段均远低于门槛,因此没有进入 PnL 回测。

这个结论只针对固定诊断样本与该协议,不能外推成“所有分钟数据都没用”。但它足以阻止本次研究拿不合格数据宣称发现策略。

12.3 两个来源一样,也不一定是独立验证

一次有界修复检查发现,同一历史日两个来源的异常记录完全一致;这可能是共享上游,不是互相证实正确。

另一个来源的短窗口 OHLC 较正常,但成交额/成交量关系与连续历史长度仍不满足研究要求。最终没有通过“猜单位”“用未来全天最高最低价修复当时分钟”或随意删异常来继续计算。

实现测试通过,只证明程序按规则工作,不证明输入质量已经达标。对这条研究线,停止是研究结论的一部分,而不是遗漏了一张应该补出来的收益图。


十三、数据系统:从拿到行情,到知道当时能看见什么

策略的可复现性首先取决于输入。当前系统以 Tushare 为主要日频来源,同时为特定研究接入独立、限定范围的数据路径。

13.1 数据对象与职责

数据类别用途关键风险
原始日线报价、人民币预算、真实股数账本缺价、单位、停牌与退市
后复权日线连续收益、价量特征不能直接作为券商价格
前复权日线图表及特定研究展示基准变化可能回写历史
独立复权因子在价格空间间转换占位值、缺失或非法因子
涨跌停价判断模拟可成交边界不能只凭“接近 10%”推测
官方交易日历调仓、标签、T+1、任务时序自然日与交易日混用
daily_basic市值、估值、换手、股息等缺失、覆盖偏差、单位
财务与公告盈利质量、资产负债、增长报告期不等于公开日期
指数与历史权重基准、池与指数组合使用未来成分导致偏差
公司行动现金与股份权益会计权益确认、到账与可卖时点

Parquet 存储研究和行情批量数据,按股票和复权类型隔离;DuckDB 用于批量查询。业务数据库保存信号、订单、持仓、回测、任务、快照和执行健康等状态。二者功能不同,备份与更新方式也不同。

13.2 数据抓取的改进

实现层有令牌桶限频、指数退避、失败股票集合重试与大面积失败报错。Tushare 成交量的“手”转换成“股”,成交额的“千元”转换成人民币元。

日终还会比较最新交易日覆盖数与近期基线;明显不足时定向补拉并告警。已有持仓和近期信号的原始价可单独刷新,避免把研究用复权价格展示成真实持仓报价。

这些检查可以减少静默漏数,但无法仅靠“接口返回成功”证明每个历史截面完整。

13.3 时间可见性的具体规则

财务数据按公告日严格早于交易日连接。例如 12 月 31 日的年报若次年 4 月才公开,1 月不能使用。公告当天也不直接当成整个交易日都已知。

相关模块支持按日期区间还原历史风险警示状态、按查询日取不晚于当时的指数权重;行业分类也要遵循对应研究协议,不应直接用今天的行业或后来的修订补写历史。这些是模块能力和方法要求,不代表每条旧回测已经完整做到:调用端是否传入了历史日期、覆盖是否完整,仍须按路线核验。

特定 D 研究政策要求 SW2021、半开区间、歧义股票日省略、行业允许为空及预注册全局排除自身均值。这是该支路的规则,不能与其他时期的行业中性化实现拼成“一套全系统统一规范”。

13.4 仍然没有被彻底解决的输入风险

供应商会修订旧记录;历史停牌证据可能不全;公告同日冲突、退市后权益、碎股分配与长期缺价仍可能阻断任务。当前系统的改进,是尽量识别并记录不确定性,不是宣称数据从此没有偏差。

独立封存样本继续保持封存。本文没有为写文章打开、定位内容或使用它,也没有把已反复开发的历史称为新的独立样本。


十四、机器学习层:特征、标签、训练与退化管理

14.1 模型到底看什么

当前源码中主要特征入口如下,列数为剔除前:

集合列数主要内容
basic11多周期收益、动量、波动、Amihud、相对均线偏离
alpha158 简化实现60K 线形态、趋势、区间位置、量价与统计特征
fundamental36估值规模换手、财务质量、增长、财报年龄
fund_basic47basic 与 fundamental 合并

alpha158 是名称,不表示当前实现恰好有 158 列。basic 中的 20 日收益与 20 日动量目前是同一公式,11 列也不是 11 种独立信息。

常见定义例如:

h 日收益 rₕ(t) = 当日价格 Pₜ ÷ h 日前价格 Pₜ₋ₕ − 1

Amihud₂₀ = 最近 20 日「单日收益绝对值 ÷ 当日成交额」的平均值

h 日均线偏离 = 当日价格 Pₜ ÷ h 日移动均价 MAₕ − 1

基本面包括 PE、PB、PS 的倒数、股息、市值、换手、ROE、ROIC、利润率、负债、现金流、增长和公告年龄等。非正估值不会简单解释成“更便宜”;滚动窗口不足、财务缺失和类别缺失也采用不同处理,影响样本选择。

14.2 标签不是未来收益承诺

二分类训练根据同一天可用池内未来 H 日收益的 70% 和 30% 分位阈值标出高、低标签,中间区域不参加该分类训练。无大量并列值时,直观上约为前 30%、后 30% 和中间 40%;存在并列收益时,实际样本比例不一定恰好如此。

模型学的是相对强弱。即便排序有效,在市场下跌时,高分股票仍可能亏损;即便 AUC 超过 0.5,整手、成本和不可成交也可能消耗所有优势。

因此 AUC 0.55 不是“55% 概率赚钱”,更不是“年化 55%”。

14.3 滚动训练的时间隔离

当前训练器默认使用滚动时间窗口,设置:

  • 60 个交易日的验证段;
  • 与标签周期 H 对应的训练/验证间隔;
  • 尾部 H 交易日剔除,防止标签跨过窗口终点;
  • 在干净验证段早停,确定轮数;
  • 按确定轮数在允许的完整窗口重新拟合;
  • 保存窗口、样本数、特征顺序和评估元信息。

训练器的通用默认值与某个已部署模型自己的配置不是一回事。旧文章中的 H=20、12 个月训练窗,不能未经核对继续作为今天线上事实。推理模型选择还有额外隔离条件,其中自然日与交易日的使用也需要分别说明,不能一概宣称“全部按交易日”。

14.4 模型自动更新不是无条件替换

当前晋升有五道门槛:

  1. 特征名称与顺序一致;
  2. 至少具有 12 个滚动窗口;
  3. 最新训练窗口确实前移;
  4. 近六窗平均 AUC 不低于 max(0.51,旧模型近六窗均值减 0.03);
  5. 最新单窗 AUC 至少为 0.50。

以上是当前代码中的模型晋升门槛,不是实盘批准条件。连续两个最新窗口低于 0.52 另有退化警告,但不等同于上述硬拒绝条件。通过后原子替换并保留旧版;失败继续保留旧模型。重训在独立子进程中进行,避免训练内存问题直接拖垮服务。

本次核到 10 月 8 日的一次重训已终态晋升,候选末窗口为 8 月 31 日,共 29 窗,近窗 AUC 约 0.5657、最新窗约 0.6358。这是模型元信息,不是对应策略已完成新前向盈利的证明,也不能据此反推未读取的全部超参数。

14.5 健康度乘数与陈旧指标

状态默认乘数含义
healthy1.00最新窗 AUC≥0.55,且近六窗均值≥0.53
decaying0.65最新窗 AUC≥0.50,但未满足 healthy 条件
collapsed0.30最新窗 AUC<0.50
unknown0.65缺少可用指标,不按满健康处理

指标每天重新发布,不代表指标对应的数据每天更新。系统区分“发布时间”和“评估窗口截至日”;窗口日期超过 100 个自然日时,执行端将乘数限制在不高于 0.65。

这些是预算缩放工具,不是市场择时神谕。AUC 需要未来标签才能确认,本来就有滞后,不能当作当天市场风险的实时报警器。

14.6 可解释性与过拟合

系统具备 RankIC、ICIR、分层单调性、顶底差、特征重要性与消融工具。但 feature gain 不是因果贡献,RankIC 也不是可卖空多空账户收益。

财报年龄等特征可能捕捉披露规律或缺失模式,而非真正的企业质量。增加调参轮数、因子数量和组合搜索空间,会增加多重选择偏差;不能把“试得多”自动理解为“结论更可靠”。

深度网络源码也已存在,但没有独立完成结果就不能宣称优于树模型,更不能说它们已经全部参与线上交易。


十五、组合与择时层:模型分数如何变成仓位

打分只解决先后顺序,组合层才决定如何承担风险。

双袖结构共享一个打分器,但可以采用不同持股数、调仓周期、排名缓冲、流动性门槛和择时下限。两袖先形成目标权重,再合成单一账户,避免内部互相买卖造成虚假换手。

股票 i 的合成权重 = 防御袖预算权重 × 该股票在防御袖的权重 + 进攻袖预算权重 × 该股票在进攻袖的权重

排名缓冲也会改变真实持仓。例如目标 20 股、缓冲 40 名,旧持仓仍在前 60 名时可能继续保留,而不是每次机械买入当天最高的 20 只。它减少交易,也会让组合偏离即时排名。

市场择时使用研究市场序列与快慢均线,把风险预算映射为二值或连续敞口。连续方式可以缓和来回切换,却也可能在慢涨行情中长期欠仓。未形成完整均线时,部分实现仍使用默认满敞口,不能概括为“任何数据不足都会自动降仓”。

止损、止盈、移动回撤、完整退出与小额调整死区必须有明确优先级。小额调整过滤只应减少无意义微调,不能拦截真正的退出。

这些组合规则解释了为什么同一个 ML 模型会得到不同业绩,也解释了为什么不能只拿 AUC 比较投资结果。


十六、真实可执行损益:整手、费用、企业行动不能放到最后再补

16.1 5 万元账户为什么尤其敏感

以 5 万元、80% 投入、8 股等权为例,每只目标市值约 5,000 元。不计费用时,股价 25 元对应 200 股;股价 30 元时,按同一目标通常只能安排 100 股,剩余资金不能买三分之二手。实际订单还必须预留手续费与滑点,并检查可用现金,不能拿恰好 5,000 元现金无条件买满 5,000 元股票。

一笔 5,000 元交易若最低佣金 5 元,单边佣金就是 0.10%;买卖合计约 0.20%,还未计印花税、过户费和滑点。若研究压力档是每边 50bp,往返滑点又约为 1%。这是解释成本敏感性的例子,不是对每个实际账户合同费率的断言。

减少股票数能提高每单金额,却增加集中风险;增加股票数能分散,却加重整手和最低佣金约束。这是小资金组合设计的实际权衡。

16.2 费用必须随日期和模块明确

不同历史模块存在不同默认费率,不能从一个配置文件抄一个值用于所有结果。独立小资金会计按日期处理印花税、过户费,并保留佣金最低收费及分币精度。

例如,证券交易印花税自 2023 年 8 月 28 日减半;A 股过户费自 2022 年 4 月 29 日下调。相关政策日期可分别参见财政部、税务总局公告与政府网站转载的中国结算降费通知。

政策标准、券商合同佣金、模拟扣费和实际交割单费用仍是不同层次。本文引用各终态运行的固定成本,不重新用今天费率改写历史成绩。

16.3 复权价与真实股数

复权价格适合连续收益计算,但不能直接用于“5 万元可以买多少股”。当前系统既有后复权数量空间的通用引擎,也有原始整数股的独立小资金账本。

后者明确维护:

  • 可用现金与冻结/应收项目;
  • 原始整数股份和 T+1 可卖量;
  • 分红登记日权益;
  • 除权日应收确认;
  • 到账日现金变化;
  • 送转股上市后可卖;
  • 现金选择权申请、锁股与结算。

现金红利按研究协议保守预留税费,不宣称精确复原每位投资者实际持有期税额。不明确的碎股规则或权利义务,宁可拒绝继续,也不猜一个有利答案。

16.4 一个会计时间差可以改变策略

以已完成研究中的现金选择权事件为例,申请成功不等于现金马上到账。锁住的股份不能再卖,可买资金也不能提前增加;只有合法结算日才发生现金变化。

如果省略这些步骤,模型可能用尚未收到的钱买入下一只股票,或把同一权益算两次。净值曲线会看上去连续,但不对应任何真实可执行账户。

16.5 通用引擎仍有近似

部分传统回放对手数、原始限价缺失有兼容回退,容量模型也不一定完全等同于独立小资金路径的前日已知 ADV 约束。因此不能把最新独立会计的全部优点归给所有历史成绩。

报告应保留模块差异,而不是用“考虑了成本、没有未来函数”两个笼统标签结束方法说明。


十七、从信号到券商:交易执行是另一套状态机

系统将研究计算放在 Linux 侧,Windows 侧负责券商客户端交互、账户读取、委托和对账。数据库信号是两端之间的契约,订单记录则承担幂等与状态追踪。

简化流程为:

数据完成 → 生成有效信号 → 风控与预算 → 读取券商账户 → 持久化报单意图 → GUI 提交 → 回执核验 → 成交对账 → 执行成本分析。

任一步“返回成功”都不能跳过后续证据。

17.1 真实下单前的 11 项检查

当前实现收拢了以下就绪条件:

  1. 自动交易总闸最终复查;
  2. 策略在生产白名单内;
  3. 交易日历可信且当天开市;
  4. 信号未过期;
  5. 券商现金可读且不是模拟资金;
  6. 持仓读取成功,读不到不能当空仓;
  7. 计划具备原始参考价格;
  8. 健康度预算乘数有效;
  9. 买单数量符合当前执行档;
  10. 不存在未对清的未知报单;
  11. 部分减仓所需总资产可读,不能误退化为全部清仓。

执行配置中的首单验证、板块权限和订单金额上限,不等于研究策略的仓位参数。某条研究路线通过回测,也不会自动改变真实交易总闸。

17.2 为什么先保存意图,再点击买入

报单前先保存 submit_intent,并确认数据库提交成功,然后才触碰券商界面。若数据库提交不明,不调用券商。

GUI 弹出“成功”仍不够。需要匹配新增合同号、股票代码、方向、数量、价格和时间。若 GUI 或通信异常,不能确定券商是否收单,就进入 submit_unknown 并阻止自动重发。

这是因为“我没收到成功回复”不等于“外部世界没有发生交易”。错误重试可能比漏单更危险。

17.3 对账与执行成本

后续以券商实际委托和成交更新成交股数、均价、状态。全成、部分成交、撤单、拒绝必须分开。

对账日期按订单真实创建日的交易时区处理,不能拿前一日信号日期去匹配当天委托。执行成本分析分别比较决策价、委托价与成交价,区分买卖方向。

如果费用只是按合同配置补算,也要标明,不冒充交割单实读费用。历史上的个别联调成交可以证明链路某次走通,不能直接组成完整实盘策略业绩。


十八、日常调度、任务状态和“还在跑吗”

一个量化系统的工作并不止训练或下单。日常流程还包括数据增量、辅助数据、模型健康、信号、纸面、总结、执行成本、周比较和月度重训。

18.1 任务有先后依赖

阶段输入输出
日终行情与基本面数据源、官方交易日增量缓存、完整性检查
辅助数据指数、权重、复权、限价回测与信号所需边界数据
模型健康已训练窗口指标带截至日的健康状态
信号计算当时可见输入、指定模型规则目标权重或目标股数
纸面处理信号、已有账本、交易约束完成/失败终态与相应产物
执行与对账真实账户、信号与订单意图委托、成交和持仓证据
报告与监控已完成任务和账本摘要、错误与告警

具体调度时间可以被部署配置覆盖,不能把源码默认 cron 当成所有线上任务已经正常运行的证明。

18.2 防止重复运行和无主任务

同名调度任务的 API、cron 与调度 CLI 共用受控入口,通过数据库会话互斥锁和持久任务状态防止并发重复。这项保护不能自动外推到任意独立研究脚本。

失联或超时后,任务可能处于 indeterminate,而不是立刻被当作失败重跑。尤其是有外部动作的任务,时间久不代表副作用没发生。

后台进程仍在计算、终态文件是否已写出、聊天是否会自动通知,是三件不同的事。完成通知需要单独的监控与送达链路。不能因为启动命令成功,就让用户误以为一直有人盯着最终结果。

18.3 研究任务应如何观察

评分或回测进行中,只检查进程、阶段、错误、日志大小和资源,不读取部分收益来提前挑选方向。正常结束后,再确认退出状态、输出唯一性、清单和输入边界,才阅读终态成绩。

本报告仅汇总已完成结果,没有为了凑全文而重跑策略、追加数据或触碰封存样本。


十九、Windows 小内存与桌面可靠性:问题不能只归结为配置低

一台 4 GB Windows 机器能否稳定运行券商客户端,取决于物理内存、提交额度、后台终端、登录状态、桌面会话和脚本生命周期的共同作用。

本阶段做的并不只是建议增加内存。

19.1 物理内存和提交内存分开监控

地址空间、工作集、私有字节和系统提交额度不是同一个指标。低内存诊断需要找真正占用 private bytes 的进程,而不是看一个很大的虚拟地址保留量就断言泄漏。

监控本身也会耗资源。反复启动 PowerShell 采样可能加重压力,因此部分采样结果缓存,并在需要时才做较重诊断。

19.2 隐藏看门狗的子进程生命周期

隐藏看门狗及其 PowerShell 子进程需要明确生命周期。对应启动器持有受控 Job Object,限制继承句柄,约束父任务结束后的子进程存活。这个控制已在该路径实现,不表示机器上所有终端和后台进程都自动受同一机制管理。

执行任务在依赖未就绪时等待;一旦业务开始,不再通过外层重试悄悄执行第二遍。

19.3 健康检查不能破坏登录

曾经出现过登录窗口、健康连接和守护脚本互相干扰的问题。当前逻辑对登录中和主交易窗口未就绪的状态作区分,避免健康探测顺手关闭提示窗口,形成“探测—关闭—重启—再探测”的循环。

桌面保活优先保留已有正常控制台会话,不随意把另一个断开的远程会话顶上来。每日无条件重启也改为依据健康状态判断,避免主动打断正常客户端。

19.4 修复的边界

这些改进减少了已知累积和冲突,但不构成“4 GB 永远够用”或“所有泄漏已根治”的证明。没有当前证据的具体进程根因,也不应为了让文章完整而补写为已修复。

运维目标不是保证永不失败,而是让失败能被及时检测、避免重复交易、保留现场并有可验证恢复路径。


二十、前端、账户隔离和监控:不能让漂亮页面掩盖空白

当前前端源码覆盖 15 类业务页面:工作台、绩效、策略比较、纸面账户、实盘监控、回测、持仓、流水、K 线、信号、风险、数据缓存、调度、监控和设置。

页面多不是核心价值,数据来源清晰才是。

20.1 账户切换必须真正隔离

数据库纸面账户、独立账本和真实执行账户通过统一目录发现,但读取接口保持区分。切换账户会清除旧卡片,迟到请求不能把上一个账户的数据盖回来。

只有现金的账户仍可显示;来源不可读要标 unavailable 或 partial,不能悄悄消失,也不能借用别的账户填完整。

cash80 初始化参考计划与实际纸面成交分开。缺少依据的持仓成本、行业集中度、拒单率或实盘风险显示待核验,不凭空填零。

20.2 至少五种“在线”

  • Linux 进程活着;
  • 调度心跳更新;
  • Windows 执行端可以上报;
  • 券商已登录且账户真正可读;
  • 某条策略今天完成了业务任务。

第一项不能代替第五项,第五项也不能证明策略盈利。

告警涵盖离线、恢复、低内存、券商断连、信号过期、应下未下、任务失败、成交与拒单。通知发送成功后才推进水位,避免发送失败却被系统标成已通知。配置存在时可用通道重试和兜底,但支持该功能不等于当前每个外部通道都已验证送达。

20.3 本报告截面的实际业务问题

截至 10 月 13 日核查,API 和调度服务运行,执行端能上报且处于 dry-run,真实交易总闸关闭。

但 10 月 12 日部分主策略和回放任务因历史持仓缺少合法估值失败,最新成功日期停留在更早交易日。其他路线和独立账本仍有更新。

这不是“整个系统都挂了”,也不是“系统完全健康”。正确说法是:基础服务可用,但部分业务链路存在待解决的数据/会计阻断。


二十一、备份、恢复、版本与代码资产

21.1 备份不止是生成压缩包

当前实现包含数据库逻辑备份、角色与权限、清单与哈希、压缩校验、隔离数据库恢复、核心表检查和异地加密归档回读。

最近核查记录包括 10 月 13 日的本地与异地备份,以及 10 月 11 日的隔离恢复和异地回读成功。它们证明相应日期的恢复演练走通,不意味着任何时点都能零损失恢复。

日级备份、任意时间点恢复、不可变保留、防勒索恢复是不同等级,不能互相替代。订单与账本尤其需要对丢失窗口有清楚预期。

21.2 GitHub 更新与线上恢复是两回事

本阶段已将整理后的代码和文档合入 main,并核对已合并树与指定运行文件。但“代码在 GitHub 上”不等于服务已经换成该版,也不等于任务成功,更不等于策略赚钱。

代码版本、部署版本、数据版本、候选参数、模型版本和账本版本都应能对应。只看提交日期,无法解释一张收益表。

原始行情、账户秘密和访问凭据不应为了“仓库完整”进入 Git。可复现研究需要的是明确输入契约、来源和校验,未必需要把有授权限制的原始数据公开。

21.3 测试数量应如何理解

测试覆盖了不少边界:整手、费用、企业行动、账本复算、重复任务、未知报单、账户切换、旧响应覆盖、恢复与版本绑定。

但一次通过几百个测试,只能证明那一组用例中的行为。它不等于所有生产路径已覆盖,也不等于未来真实市场满足模拟假设。文章不把测试计数当作策略可信度分数。

21.4 研究净收益还没有覆盖全部个人运营成本

表中策略 PnL 计入的是各模拟约定的交易费用和滑点,不自动包含服务器租金、数据接口权限、模型调用、备份存储和人工维护时间。本次没有对这些账单作完整成本归集,因此不编造一个“每月维护费”或商业净利润。

对于 5 万元资金,这一点尤其现实:即使投资组合有正的交易后收益,固定运营成本仍可能占据很大比例。研究价值、可交易收益与个人整体投入产出,需要分开核算。


二十二、这一阶段改变认识的几个教训

22.1 好看的短窗口会掩盖长周期失败

旧 5 股小资金路线在 2025 年表现强,拉回 2018 年后六种资金成本组合全部为负。短测不是造假,但如果只展示短测,就会把市场阶段依赖隐藏掉。

22.2 “只有一个数据问题”可能改变整条收益

退市缺价不是画图的小瑕疵,它决定是否还拥有资产、能否回收现金和后续可投资金额。不能为了继续计算,偷偷选择有利处理。

22.3 工程研究曾占用过多注意力

此前部分研究把大量精力投入部署、远程控制和执行封装。后来明确改为研究优先,先判断在本地受控开发环境中是否存在可执行价值。

这不是不要安全,而是把“研究策略值不值得”与“如何生产级部署”分开。没有通过基本经济检验的策略,不需要先建设一套复杂上线系统来证明它失败。

22.4 正收益不自动通过

注意力候选某资金档年化超过 10%,股息版本某相位年化超过 10%,仍因回撤或稳定性失败。目标不是找到一行正数,而是满足预定资金、风险和执行约束。

22.5 数据质量失败不是可以跳过的前置步骤

分钟数据实验没有生成 PnL,恰恰是因为先设了输入门槛。若边看收益边调整清洗规则,结果可能只是对异常数据的适配。

22.6 研究过程中的范围偏差也应留痕

早期曾有操作对三个非封存原始文件进行通配哈希读取,只输出哈希、未解析或展示数据行;另一次来源检索短暂输出过草稿结果哈希元数据,随后停止,未据此使用结果。此类操作不应被重做或包装成研究证据。

本次核对终态回放参数时,也曾因参数内嵌估值注释而意外输出已提交历史停牌元数据,之后改为逐键白名单。它不是进行中评分、原始行情或封存样本,但仍提醒:只读不等于可以宽范围读取,内容范围也需要约束。

这些误读没有被用作本文的策略选择或收益证据;本文数字仍以逐项核验的终态来源为准。记录这些范围偏差,是为了让研究过程具备可追溯性,而不是只保留顺利部分。


二十三、现阶段的价值、未完成事项与下一步

23.1 已经有价值的部分

系统的价值包括:

  • 把数据、模型、组合、交易与账本连接成可检查链路;
  • 能按目标资金模拟整手、费用和企业行动;
  • 能保留失败而不是强行产出净值;
  • 能区分模型退化、数据故障、执行故障和投资亏损;
  • 形成独立连续纸面账本;
  • 保留多条失败路线,减少重复投入;
  • 对 Windows 桌面执行、幂等、对账和恢复建立实际控制;
  • 让结果可以按版本、输入与时间核对。

这些属于研究与工程资产,不等于可以估出一个有依据的商业售价,也不等于策略未来收益已经被证明。

23.2 仍未完成的部分

问题当前状态什么才算完成
旧 5 股主板策略长周期失败不能靠短期上涨翻案;若重设计需另立新候选
60 万小盘严格长测原版缺价失败,压力场景完成明确可执行会计边界与更充分验证
cash80 观察13 个交易日积累足够自然前向、完整调仓与异常场景证据
部分日常任务缺价服务可用但业务失败有来源的估值/事件处理及成功终态,不能猜价
ML 完整早期观察部分同路径前日值缺失不伪造补录;保留局限并积累新记录
分钟因子数据门槛未过合法、连续、足够覆盖的输入先过关
打板/正向 PEAD未证明可交易优势不能用乐观口径或故事替代净结果
真实执行质量有执行能力与隔离控制足够的真实成交、成本、持仓和资金对账
长期风险历史回撤与相位敏感仍显著更长的冻结后观察及预先约定的风险门槛
灾难恢复日级备份和恢复演练存在恢复目标、数据损失窗口与保护等级分别验证

23.3 继续推进时,不应做什么

不应因为等得久而放宽实盘标准;不应为得到一个“能用”答案打开独立封存样本;不应将失败候选换名继续计数;不应在策略经济性尚未成立时重新陷入无限部署加固。

优先级应是:让已有终态证据可解释,让当前纸面自然积累,解决有来源的数据与会计阻断,再评估是否具备小额受控执行验证条件。

即使将来开始小额验证,也应预先固定预算、允许的订单、停止条件和对账要求。开始验证不是宣布策略毕业。

23.4 最终回答:有没有找到赚钱策略

如果问题是“有没有历史上扣除既定成本后赚钱的路线”,答案是有,本文给出了具体版本、资金、区间和数字。

如果问题是“有没有已经证明未来长期赚钱、现在可以放心自动实盘的 5 万元主板策略”,答案仍然是否。cash80 是值得继续观察的候选,不是已经兑现的承诺。

比上一阶段更重要的进步,是能够解释两种答案为什么同时成立:历史正收益是证据的一部分;真实资金可用性,需要更完整的证据链。


附录 A:指标与比较口径

名称本文如何使用主要局限
累计收益期末/期初资产减一,或合法日收益链接需确认现金流、区间和账户来源
年化收益采用各原始报告注明的方法自然日与 252 日口径存在差异
最大回撤从此前高点至后续低点的最大下降幅度,表中写正的损失幅度历史最大值不是未来上限
夏普日收益均值与波动的对应年化指标短样本、非正态和方法差异影响很大
相位同一调仓规则的起始偏移相位之间相关,不是独立市场
全收益基准按相应指数口径计入分红再投资不等于可直接无成本买到的 ETF
bp1bp=0.01%,50bp=0.50%必须说明单边还是往返
NO_GO未达到指定研究或执行门槛必须说明失败的是代码、数据还是经济结果
paper-only仅模拟账户/纸面证据不是券商实盘
holdout独立保留、未用于开发的样本反复看过的历史不能重新命名为 holdout

匹配 2018-01-02 至 2026-09-11 的已归档基准中,沪深 300 价格指数年化约 1.14%、中证 500 价格指数约 2.09%、中证 1000 价格指数约 0.53%、中证 500 全收益约 3.65%。价格指数与全收益指数不能混用,也不能拿这些截至 9 月的数字直接评价截至 10 月、起点不同的策略超额。

附录 B:主要证据来源与复核方式

本文不是重新运行一次全量研究,而是只读核对当前已合并源码、线上已提交终态记录、独立纸面账本和已完成研究汇总。

文章内容主要证据
主要日频历史成绩最新成功任务绑定的数据库回放记录及原子提交净值
每日观察段同路径前日值完整的已提交快照;不使用缺失项回退拼接
两个小资金纸面账户已完成日账本、链式完整性、资金与持仓汇总
60 万长测10 月 12 日归档的零回收场景终态独立复算,行情截至 10 月 9 日
旧 compact 六路线9 月 13 日终态 RESULT 与独立账本核对
因子、相位、结构、cash809 月 14 日已完成 REPORT/READOUT 及相应归因
三条开发期候选9 月 6—7 日反转、防御、注意力终态报告
分钟研究9 月 14 日质量与有界修复报告,未进入 PnL
PEAD7 月完成研究记录与汇总元信息,未冒充本次重算
打板10 月 10 日最新严格已提交运行的终态摘要
数据、ML、执行与界面已合并源码对应实现,区分默认参数与实际配置
服务、备份与部署10 月 13 日只读运行核查,以及明确日期的恢复记录

公开文章不包含访问凭据、私人账户信息、原始数据或服务器内部接入细节;也不使用单元测试数量、源码行数或 GitHub 提交数替代策略有效性。

截至本报告结束,没有因撰写文章启动真实交易,没有改变生产开关,也没有读取独立封存样本。

分享这篇文章

Related / 相关阅读

评论(0)

  • 加载评论中…

发表评论