一、先把三个函数拆明白
| 函数 | 含义 | 能否历史回测 |
|---|---|---|
| DYNAINFO(17) | 量比(实时) | ✗ 实时函数,缓存无 |
| DYNAINFO(14) | 涨跌幅 = 现价/昨收−1(0.03=高开3%) | △ 仅"高开3%"可代理 |
| DYNAINFO(10) | 当前成交金额(元) | ✗ 实时+缓存无金额字段 |
翻译成人话,这个公式在 9:25 集合竞价结束后干的事:挑出"量比放大到 3 倍以上、高开超过 3%、成交额过了 1000 万"的票。量比和成交额是流动性+热度过滤,高开 3% 是强势过滤。思路不复杂——就是个开盘强势扫描器。
二、为什么不能回测(这是重点)
前面 19 篇我都能拿历史 K 线验证胜率,因为那些公式用的是 CLOSE、MA、REF 这类历史存在的数据。但 DYNAINFO 不一样:它读的是"此刻"的盘口。你今天 9:30 跑它,出来的是今天开盘的那一瞬间;去年的这个时候它返回的是去年的盘口,历史里不留存。我的 K 线缓存只有日线 OHLC,没有每分钟的量比和成交额序列,所以这三个条件我一个都复现不了原貌。
三、能复现的那一项,已经出卖了本质
三个条件里,只有"高开 3%"能在日线里忠实还原(集合竞价时现价=开盘价)。我拿 296 只沪深300成分股、45558 个股票日,把"高开超 3% 后持有 20 日"跑了一遍——这就是这个公式的主导选股动作:
| 条件 | 信号数 | 20日平均收益 | 胜率 |
|---|---|---|---|
| 全部股票日(基线) | 45558 | +0.45% | — |
| 高开 > 3%(= DYNAINFO(14)>0.03) | 857 | +3.94% | 49.1% |
看这组数字——平均收益 +3.94%,胜率却只有 49.1%。又是第 17 期讲过的右偏分布陷阱:十次里有五次是亏的,平均数被少数连板大肉单硬拽成正数。你要是真拿它"高开 3% 就追",实际体验是频繁小亏、偶尔吃一口大的,胜率还没到扔硬币的水平。
量比和成交额两项,我用日线做了粗略代理(量比≈日成交量/5日均量),加上后样本塌到个位数、平均收益转负——但代理太粗糙、样本太少,这条不下结论,只说明一点:两项实时过滤加进来,只会进一步收窄到一个极小的、无法在历史里验证的候选集。
四、它的真问题:纯追高,零上下文
没有趋势/位置判断:不看来是上升通道还是下降通道,不看来是低位还是高位,高开 3% 就选。弱市里的高开 3% 放量,很多时候是诱多或脉冲,接的就是最后一棒。
没有大盘/板块环境:指数单边跌的时候,全市场高开票都在被砸,这个公式照样扫出一堆。
没有卖出逻辑:只负责"开盘挑出来",后面怎么处理全凭个人,而追高的处理恰恰最考验纪律。
一句话:它把"开盘强势"当成了"能赚钱",中间跳过了最关键的位置、趋势、环境三步。这跟第 19 期那只"密探低吸"被 bug 干成追高,是同一个病根——只盯强度,不盯结构。
五、如果你要用它,怎么用才不挨揍
① 当"观察池"不是"买卖单":9:25 扫出来的是当天强势候选,得再叠加自己的趋势/位置判断才下手,别无脑追。
原公式(实盘用,盘中/集合竞价后运行,无需修改):
XG:DYNAINFO(17)>3 AND DYNAINFO(14)>0.03 AND DYNAINFO(10)>10000000;
② 补一层结构过滤:比如叠加"股价在 20 日线上、近 5 日不是暴跌反弹",把脉冲和诱多挡掉。
③ 认清零回测:别信任何人对这个公式报的"胜率",那是编的或可代理的。
下次再有人跟你说"我的集合竞价公式胜率 90%",你就问他一句:你回测的是哪个 DYNAINFO?历史里根本没这数据,你测的是空气吧?
