从上一篇闲聊 | 我花近 5000 元,用 Claude、Codex、DeepSeek 搭了一套 A 股价格行为选股系统发出来到现在,刚好三个月。这三个月我基本泡在这一件事上:和 AI 来回改这套系统。数一下—这个项目相关的任务会话 1000+ 个;代码从三万多行,长到现在的十七万行,另外还有六万五千行测试。每次一有灵感想法就忍不住动手优化,现在总算搞得七七八八,能稳定地跑起来了。

在讲“拆成什么样”之前,先说我日常一整天到底怎么跑。因为这篇文章里每一处改动,都藏着我很多的踩坑、实操及经验结果,但估计只有一小部分有缘人能看懂。

我现在的一天,是这样跑的。

图片

早上 8:30 前后,几件事在盘前自动跑完:当天的事件催化日历、涨停股股票池、风险名单、第4模型情绪股票池的更新。开盘前,这些全部就绪。所以盘中我不再从头去筛股票——该筛的活,开盘前已经干完了。

盘中我真正要动手的时候,才让我的 AI 用最新数据跑一份交易计划,通常十分钟左右。我拿到的是这一时刻的最新结果,而不是早上的旧答案。工作日午间还有一档自动跑,其余时候我想动,就手动再跑一次。

跑完,我一天真正要看的票,大概只剩十只上下。带着这几只票,我到盘面上做肉眼参考,找入场结构;结构到了,才轮到“买不买”这个决定。

一句话总结这条流水线:盘前把范围压小,盘中把数据刷新,最后把动不动手留给人。

为什么这么搭?就两个动机:更快,和更准。

更快——我不想把盘中时间花在筛票和重复计算上。能提前做的,盘前一次性做掉;能少算的,先算便宜的、再算贵的。比如先拉周线、日线把方程算完,过关了才去拉 1 小时数据;不满足,这一小时根本不用算。看起来只是少算几步,省下的是盘中每一轮的十分钟。

更准——光快没有用,结论得是真的。风险要在算赔率之前先剔除,数据要先证明是对的,止损和目标要用真实结构,最后一步授权要一条链走完。这些改动,都是为了让我看到的那个数,经得起盘后复盘。

所以后面每一节都是同一个顺序:先讲这一节为什么要改、动机是什么,再讲具体怎么操作。先有因,后有果。

核心命题一句话:筛选目标没变——少看、只碰位置还没坏掉的交易;变的是判断方法——从“给股票打分”,改成“给这笔交易算赔率”。

| 上篇你看到的

|

现在

一个 V2 打分模型

|

四个入口,进门后共用一条判断链

| |

L1 排雷写在模型里

|

还没看 K 线,先过生存资格

| |

L2 给板块打热度分

|

先找结构好的板块/主线,再算个股赔率

| |

L3 给形态和偏离打分

|

形态成立后,用真实止损、真实目标算 EV

| |

TopN + 分数线决定关不关注

|

EV 过线才看 1 小时;报告里的状态不是买点

| |

模型筛票,人按 Brooks 买

|

系统给到 A/B/C/K1/K2,最后动不动手仍是人

|

这张表里每一行的动机,都只有两类:更快,或更准。

自动化不是把人删掉,而是把人的注意力留给机器还没覆盖的判断。

第 1 节 入口升级:一个池,为什么不够

一句话核心:四个入口负责发现四种不同的机会,进门之后共用同一条判断链——入口只回答“这只票从哪来”,不回答“能不能买”。

动机:这一节改的是“发现”,一半为更全,一半为更快。 一个池会漏掉盘中突然被资金点名的票,还会让题材和首板互相污染;拆成四个门各管一类机会,进门后共用一条链,既少漏,也少重复算。

之前是:一个 V2,L2 给板块打热度分,最后只压成十几只。

实跑发现3个问题。只从“已经强过”的票里打分,会漏掉盘中突然被资金点名的票;板块热度分高,不代表里面这只个股现在赔率好;题材记忆和短线首板观察是两回事,硬塞进一个池会互相污染。

现在拆成四个门。

  1. V2

    我不擅长打板,不追当天涨停;我等一只票涨停过、然后被市场重新定价的机会。观察窗口是目标日前 5–12 个交易日的主板首板;“创 180 日新高”这种筛法已经放弃。这个窗口不是随便拍的,它对应 Al Brooks 的一个思想:回调一般要 5–10 根 K 线,多头才会考虑买入——太短结构没走出来,太长热度已经凉了。

  2. 板块下钻

    先在同花顺 881 行业里找结构更好、动态胜率更高的板块,再进板块逐只用同一套赔率方程算。板块指数能算,不代表里面每只都能买;连板梯队只是发现线索,不是授权。

    这里藏着我纠结很久的一次转向:上一版我按板块 EV 排序,后来发现板块指数 EV 高,不代表筛出来的个股能赚钱——指数是一篮子打包,你买的却是里面那一只。想明白之后我把口径反过来了:先从动态胜率高的板块里找,再在这批板块里挑 EV 高的个股。

  3. 量比

    分时数据里的量比大于等于 2,只是一张发现门票,过门票不等于可买;这个阈值也没有被证明过是最优参数。我看它的真实理由是潜伏:有些票短期不显眼,但开始放量,说明有资金悄悄进来了。这种票值得提前挂进观察,等结构走出来再动手。

  4. 第 4 个入口

    题材人气风向标长期观察池——基础席、当日活跃席、历史席,历史不退池。它刚独立出来,连着跑了几个交易日,还在观察期,它盯的是各个板块题材、热点的风向标——A 股资金是有记忆的,哪个方向被反复做,哪个方向就有风向标价值。

硬规则:四个入口不是同一个股票池;进门之后,全部走同一套价格行为、止损、目标、动态胜率、EV、1 小时入场。

所以四个门的分工一句话:V2 做涨停股的回调,板块找近期胜率高的方向,量比更多是潜伏,第 4 模型观察题材的风向标。

这里也要谢谢早期“每日风险观察室”里的群友,很多思路是在大家的讨论里一点点磨出来的。

<span leaf=""><img data-aistatus="1" data-imgfileid="501123669" data-ratio="0.65625" data-s="300,640" data-src="https://mmbiz.qpic.cn/sz_mmbiz_png/S7CXDibdmlfPoc9iaicjZt8hWNVcXsXoQegOz1pCHeoibM0UXSq2W2BOeT7SV2tW2fhqX98Wx4Rx98FR7ufJNaX7G0RGeH33micqZFrjaicibY8d4g/640?wx_fmt=png&amp;from=appmsg&amp;watermark=1#imgIndex=1" data-type="png" data-w="1600" type="block" data-original-style="null" data-index="4" src="/stock002/images/pool/20260816/9b12dede6144fdc6.png" _width="677px" alt="图片" data-report-img-idx="1" data-fail="0"></span><span leaf="">四个门,一条链</span><br><span leaf="">发现:这只票从哪来</span><br><span leaf="">资格:有没有研究资格</span><br><span leaf="">方程:这笔交易赔率还在不在</span><br><span leaf="">入场:1 小时信号有没有走完</span><br><span leaf="">执行:人决定动不动手</span>

第 2 节 资格升级:排雷不再跟打分混在一起

一句话核心:先判断一家公司有没有资格进入研究,再判断这笔交易有没有赔率——风险资格和交易赔率,本来就是两个问题。

动机:先快、后准。 没资格的票在价格行为之前先剔掉,后面所有计算都不用为它付;风险独立于打分之后,漂亮的分数再也盖不住垃圾风险。

上篇当时:L1 排雷,ST、退市、连续亏损、负净资产直接出局;但财务差的票靠质量分温柔扣分,排雷还是模型里的一层。

实跑发现3个问题。风险当扣分,漂亮分数会把垃圾风险盖住;等形态、胜率、目标、EV 都算完再标风险,盘中时间已经浪费;缺数据容易被当成“没风险”,或者填 0 混过去。

现在怎么走:先原始池,再分层,然后才谈价格行为。

  • 硬剔(hard)

    退市、面值、负净资产、立案/重大违法、监管红旗、会计差错——价格行为之前直接出池。

  • 预警(warn)

    风险还在演化、没到硬剔,保留,但原因必须带进计划。

  • 数据缺口(data_gap)

    缺资料既不是有风险也不是安全,前台显示“—”,禁止填 0。

  • 守恒

    原始池 = 最终池 + 硬剔池,两边零交集,不等就报错。

  • 可整改的监管事项,只有出现明确关闭事件才降为预警;问询函不等于关闭。

这条规则不是拍脑袋加的,是因为我之前吃过类似的亏,很多次。吃一次亏,就往硬剔清单里加一条;现在,它成了价格行为之前的一道独立闸门。

<span leaf="">风险资格 ≠ 交易赔率</span><br><span leaf="">没资格:看都不看</span><br><span leaf="">有预警:能看,但必须带着伤看</span><br><span leaf="">缺数据:不知道,不等于没事</span>

先判断一家公司有没有资格进入研究,再判断这笔交易有没有赔率。

第 3 节 证据升级:接口能返回数据,不等于能进交易结论

一句话核心:先证明这根 K 是对的,再谈它支撑什么判断——没有可信数据时,未知好过编一个结论。

动机:这一节纯粹为了“更准”。 算得快没有用,先证明手里这根 K 是对的,才谈它支撑什么结论。

上篇只提了一句“每次重新拉日线、实时重算”,几乎没讲数据源怎么验证。

实跑踩过的坑,都是具体现象:目标日错位,拿昨天的收盘算今天的计划;未前复权,除权之后“跌破”是假跌破;缺一根 K,高低点、止损、目标全偏;静默失败,系统卡住,或者拿旧缓存冒充新数据。

现在进系统前至少核七样:交易日、字段含义、前复权、开高低收完整、来源身份、这根 K 是收盘完成还是盘中临时、失败时会返回什么。周线、日线、1 小时用同一套完整 K——历史完成 K 加当前这根临时 K;临时 K 不是预览,是同一条规则里的最新端点。

失败只分三类:单只票取不到可信数据,这只票停算,不清空成假结论;市场结构判断不清,输出“未知”,不编一个趋势;共享名单坏了,整轮停,不用旧报告顶上。

源顺序做成信息卡,不进正文朗读:日线/周线,腾讯 → 东财 → 通达信 → 新浪 → 长桥;1 小时,腾讯 → 新浪 → 东财 → 长桥。

速度上还有一个不显眼但很管用的机制:每个数据源只给几秒钟预算,第一次失败,底层再补一次有界重试;还不行就立刻换下一个源,不在坏源上干等。同一轮里某个源连续失败,这一轮就把它熔断,不再碰它,下一轮再重新试。单看是“少等了几秒”,一轮里几百只票乘起来,就是几分钟。

这不是理论洁癖。之前就有一只票,日线 K 线过期、空响应,系统直接按失败关停——今天不算它,也不拿脏数据出结论。

有证据的失败,好过系统卡住不说话;没有可信数据时,未知好过编一个交易结论。

第 4 节 方程升级:这是全文的心脏

一句话核心:赚钱判断从“分数够不够高”,改成“这笔交易的期望值是不是真的为正”——而期望值的正,取决于止损和目标是不是真的。

动机:两个动机在这里同时在场。 方程必须用真实的止损和目标,这是“更准”;先算周线日线、过关才拉 1 小时,这是全文最直接的一处“更快”。

之前:L3 用 EMA20 偏离、量比、振幅、前高空间打分;偏离超过 18% 直接拦截;下单前“止盈空间覆盖 2 倍风险”是硬要求。

现在拆成三件事。

4A 同一个形态,换市场背景,胜率不是同一个数。 之前几乎不讲市场状态。现在:最近 40 根能证明趋势还是震荡,就认当前这 40 根;认不清再往 80、160 扩。外层只解释大环境,不覆盖当前动作;周线只做有界修正。

拿主线里这只票(吉宏股份)当天跑出来的嵌套结果看,就是下面这张表:

| 窗口

|

结论

40 根

|

区间(RANGE)

| |

80 根

|

区间(RANGE)

| |

160 根

|

区间(RANGE)

| |

全部 260 根

|

区间(RANGE)

| |

周线

|

下降趋势的过渡段(偏空)

|

它当天就是“一只票在区间里震荡,区间外面套着周线级别的下降背景”。最近 40 根已经能证明是区间,就直接采信 40 根,不因为更大窗口也这么说才去扩大。反过来,如果 40 根看不清,才往 80、160 扩——扩窗口只是为了解释背景,不是为了给当前动作找理由。

图片

动态胜率等于“形态乘状态下的基础胜率 + 结构证据调整 + 有边界的周线调整”,再被上限封顶。老实说,这是纯经验主观制定的规则,方便精细化算出每一只票的数据结果。

4B 目标太远、止损太窄,都能造出漂亮赔率。 之前用“2 倍风险”卡空间,现在盈亏比不再单独做门,它只进 EV。

目标位这块,我纠结最久的就一句话:近端的市场周期,优于左侧的背景区域。 同一形态里自己的测量——这一腿的长度、区间的高度、形态自带的测距——永远先于左边那些历史高低点;只有近周期测量用完了,才轮到严格验证过的左侧阻力做备选。

第2个经验是 66%。震荡区间我统一按 0/50/66/100 标坐标:0 是区间底,50 是均衡线,66 是上三分之一起点,100 是区间顶。价格还在 66% 以下时,反弹的第一目标就放 66%,而不是直接赌区间顶——A 股区间反弹第一波,大多数时候推到上三分之一就开始减速折返,直接押顶的成功率低。价格已经站上 66% 了,也不回头看身后的 66%,改取更近的合格测量。这是我的实操经验参考,不是统计证明。

4C 打分退出,赚钱判断改成一句话。

<span leaf="">EV = 胜率 × 盈亏比 − 败率</span>

止损距离定为 1 个 R。只有 EV 大于 0.05R,才值得去算 1 小时入场。EV 是排序,不是下单按钮;费用、滑点、T+1 还没进这个数,所以它不是真实净收益。

<span leaf="">分数高 ≠ 现在还能买</span><br><span leaf="">EV 好看 ≠ 目标和止损是真的</span><br><span leaf="">EV 过线 ≠ 可以按键</span>

比如,8 月 14 日盘中,吉宏股份 002803,现价 19.48,真实结构止损 17.22,T1 23.89,动态胜率 41%。套公式:EV = 41% × 1.95 − 59% ≈ 0.21R,过线。按上篇 L3,它形态在反转、量价不差,可能进 Top10 重点关注;按现在,过线只是拿到算 1 小时的门票,离“能买”还远。

提速旁注:这就是开头说的“先算便宜的、再算贵的”。日线、周线便宜,先把方程算完;EV 过关,才值得为它拉 1 小时数据。不是少一道证据,是不为还没拿到资格的候选继续付计算成本。盘中跳过一些没那么重要的数据,也是同一逻辑。

速度优化不是少一道必要证据,而是不为还没拿到资格的候选继续付计算成本。

第 5 节 距离升级:出现在报告里,离能执行还有多远

一句话核心:人看到的不再是分数,是距离——一只票离“真正能动手”还差哪几步,报告必须写清楚。

动机:为了“更准”的最后一公里。 把距离写出来,人就不再被一个分数带着走。

之前是:重点关注 = Top10 且 V2≥62 且 L2≥50;同步列表还有股价、偏离、昨日涨停、弱市总开关;结尾说过不自动下单。现在升级的不是“人还在”,是“距离被写出来”。

| 状态

|

人话

|

能不能当成可买

A

|

1 小时信号、入场触发、跟随质量都过了,现价仍在执行区

|

正式可买(只说“价在区内”,不说“直接买”)

| |

B

|

信号 K 已确认,只差价格触发

|

盯盘,等触发

| |

C

|

候选信号 K 出现了,还没确认

|

盯盘,不是授权

| |

K1

|

大级别结构已进决策区,只差一根合格 1 小时信号 K

|

核心观察

| |

K2

|

靠近决策区,还差一个前置事件

|

核心观察

|

五句必须写细:核心观察不包含 A/B/C;没有合格 1 小时信号 K,不能跳到可买;我自己用 30 分钟信号下手,是系统外动作,单独记账,不许事后改写成 A,也不许混进模型胜率;盘中状态是临时版,收盘用完整 K 重算,可能移动;人可以放弃一笔系统授权的交易,但不能把硬剔、数据失败、K1/K2 手改成授权。

比如上面的吉宏股份,价格窗口其实已经在执行区内,但 1 小时信号 K 判为失效、需要重算,1 小时闸门否决——所以它没有正式买入授权,只进核心观察。三个问题分开看:价在区内?是。信号 K?没有。正式授权?没有。旧系统只会告诉你分数多少;新系统把“还差哪一步”写了出来。

最后,以上纯个人主观记录,因为里面的细碎点很多很多,或许下一阶段还会有新的变动,仅供参考交流,如果这篇对你有用,或者有更好的想法,也欢迎留言分享。

也认真说一件服务上的事。为了满足一些粉丝的需求,现在开放付费咨询:

  • 1V1 单次付费咨询:88 元/次/小时

  • 会员:2000 元/年,一年不限次数,每次约 5 分钟

  • 会员Qun会在未来7天内建立,会实时同步买点卖点逻辑、帮搭建属于自己的交易系统等(无保留)

  • 想要加入,后台私信即可

会员只是多一层更直接的一对一服务,不是必须。大家按自己的情况选,不加入也完全没关系,有兴趣也可以看我的小red书,每天盘后会更新选股结果及实盘验证。

图片

🌹🤝