简介:通达信集合竞价选股指标公式,面向热衷盘前短线博弈、追求快进快出的通达信用户。文档聚焦竞价量比选股,给出完整条件选股源码,核心逻辑涵盖流通盘限制、开盘涨幅、换手率及换手均线、涨停后回调区间、量比阈值等多个维度,要求个股处于低点刚起爆状态,专用于竞价阶段快速锁定候选标的。整份资源仅1个docx文件,大小约60KB,无需额外依赖,打开即可复制公式导入通达信,按说明设置参数即用;文档同时强调该策略只适合盘前竞价短线操作,尽量挑选刚起爆的个股,有助于使用者理解条件边界与风控思路。已有572人学习下载,适合掌握基础公式编辑、希望强化集合竞价选股体系的投资者参考,也可作为进一步编写个人指标公式的起点。
1. 集合竞价选股的逻辑与通达信公式的边界
开盘定全天,这话放在 A 股的集合竞价上不是玄学,而是一套可以量化的博弈逻辑。9:15 到 9:25 这十分钟,隔夜消息、主力意图、散户情绪全部被压进同一口锅,而 9:25 撮合出的开盘价、开盘量和开盘金额,就是这一锅情绪最后凝成的结晶。高开幅度表达资金态度,竞价放量表达资金下注,两者叠加后,后续半小时走出独立行情的概率明显高于随机买点。通达信是散户普及度最高的行情与公式平台,它允许把“高开幅度、竞价金额、竞价量占比”这类因子写成指标公式源码,再用条件选股、预警和排序功能在开盘前扫一遍全市场。但它的边界也很清楚:逐笔挂单不给公式读,撤单轨迹不留存,能够拿到的就是一副开盘价、成交量、成交额三个字段组成的快照。下面这套做法,就是把这张快照用出信息量的一条通路。
2. 通达信竞价数据从哪来:盘口函数与时间窗口
2.1 DYNAINFO 动态盘口函数在集合竞价期间的取数表现
通达信公式语言里有两条取数通道:一条是 K 线序列函数,比如 O、H、L、C、VOL、AMOUNT,它们从本地行情缓存读数据,取值跟随当前公式周期变化;另一条是动态盘口函数 DYNAINFO,它直连交易主站的实时行情快照,取值不会因为公式周期不同而被重新采样。放在集合竞价选股这个场景,真正可用的字段只有 DYNAINFO 系列里的少数几个下标。
| 函数调用 | 字段名 | 集合竞价期间的取数表现 |
|---|---|---|
| DYNAINFO(1) | 最新价 | 9:15-9:25 随虚拟撮合价跳动,9:25 后固定为开盘价 |
| DYNAINFO(2) | 昨收盘 | 全程稳定,为前一日收盘价 |
| DYNAINFO(3) | 今开盘 | 竞价结束前跟随参考价变化,结束后固定为最终开盘价 |
| DYNAINFO(6) | 总成交量(手) | 竞价累计成交量,9:25 后不再变化 |
| DYNAINFO(7) | 总成交额(元) | 竞价累计成交额,9:25 后不再变化 |
值得注意的是,DYNAINFO 函数的下标在通达信各版本以及券商定制版里并没有做到完全统一,特别是 10 到 20 区段的量比、换手率、涨速等扩展参数,有的版本把量比放在第 10 位,有的放在第 17 位。我一般不在竞价公式里直接引用这类扩展下标,而是只用上面这张表里的 1、2、3、6、7 手工组装字段:涨幅偏差用最新价减昨收再除以昨收,竞价金额用 DYNAINFO(7) 除以 10000 折算成万元。这样换券商、换版本时少一道参数解释差异导致的排错过程。
提示:把公式写进去之前,先打开通达信公式管理器里的“插入函数”面板,核对一遍当前版本对 DYNAINFO 各下标的注释。同一个下标在不同版本里对应不同字段的情况确实存在,这一步省不掉。
2.2 盘后数据无法回放竞价,公式只能在 9:25 后实时执行
很多刚接触竞价选股的用户会在收盘后跑一遍条件选股,然后发现结果和盘中完全对不上,就以为是公式写错了。实际的限制在数据层面:通达信本地保存的日线、分钟线和分时数据,不会单独保存 9:15 到 9:25 这十分钟的独立周期,竞价撮合量会被并进 9:30 的第一根一分钟K线里,分时图上的竞价曲线也只是盘中实时刷出来的虚拟曲线,收盘后不再保留逐笔快照。
这个机制决定了竞价选股公式的执行窗口只能是 9:25:00 到 9:30:00 之间,最好在 9:25:20 之后再触发,给行情主站留出推送最新快照的时间。同样的公式,放到 10:00 再跑,DYNAINFO(6) 取到的已经是盘中累计成交量,而不是竞价那十分钟的量,整个人为设计出来的因子就失去了定义基础。想复盘当天的竞价结果,只能换一种思路:把周期切到 1 分钟K线,用 9:30 那根K线的开盘价和成交量做近似还原,后面第五章会说怎么验证。
2.3 三个稳定可用的竞价因子:开盘涨幅、竞价金额与竞价量占比
把上一节的字段压缩一下,通达信公式在竞价场景里真正稳定可用的因子只有三个:开盘涨幅、竞价金额、竞价量占比。开盘涨幅代表价格层面高开多少,竞价金额代表资金在竞价阶段投入的绝对规模,竞价量占比代表竞价成交相对昨日全天成交的热度。三个因子过滤的是三种不同类型的噪声:只看涨幅,会被无量高开骗进去;只看金额,会淹没在大盘股的高成交额里;只看量占比,又会漏掉低价股里金额不足的标的。放在一起做交集,选出来的池子才接近“有资金参与的高开异动”这个定义。
3. 集合竞价指标公式源码:从最小可用到组合筛选
3.1 最小可用版:涨幅加金额的选股公式
先给一个最小可用的竞价选股指标公式。
{集合竞价选股:最小可用版,9:25 后执行} 开盘涨幅 := (DYNAINFO(3)-DYNAINFO(2))/DYNAINFO(2)*100; 竞价金额 := DYNAINFO(7)/10000; 条件1 := 开盘涨幅 >= 2 AND 开盘涨幅 <= 6; 条件2 := 竞价金额 >= 3000; XG: 条件1 AND 条件2;这段公式只有两处字段计算和两个筛选条件。DYNAINFO(3) 取开盘价,DYNAINFO(2) 取昨收盘价,二者相减后除以昨收,得到高开百分比;DYNAINFO(7) 取竞价成交额,除以 10000 换成万元单位,这是通达信公式里的惯用换算,避免后续比较参数时位数写错。XG 是条件选股公式的标准结果输出名,公式只允许一个输出项,XG 为真代表个股入选。
开盘涨幅限定在 2% 到 6% 是有意留出的区间:低于 2%,高开力度不够,信号噪音太多;高于 6%,要么离涨停板太近,要么已经透支了开盘后的冲高空间。竞价金额 3000 万是偏保守的漏斗,目的是把集合竞价阶段就有真实资金参与进来的股票挑出来,回避那种靠少量买单拉高开盘价、实际没有承接盘的高开假象。执行的时候,把这个公式放进通达信的“条件选股”,计算范围选沪深 A 股,模式选实时选股,到 9:25:30 之后点执行就能看到结果。
3.2 手动组装竞价量占比:通达信里稳定的写法
最小可用版缺一个关键维度:相对量能。不同流通盘规模的股票之间,竞价金额绝对值的参考意义完全不同。流通市值一百亿的股票高开 2%,竞价成交两千万很正常;流通市值二十亿的股票同样高开 2%,竞价成交两千万就是明显的异动。所以第二个版本要补一个相对量指标,我常用的做法是把它定义为“竞价量占比”:
{竞价量占比:竞价成交量相对昨日5日均量的百分比} 昨5日均量 := REF(MA(VOL,5),1); 竞价量占比 := DYNAINFO(6)/昨5日均量*100;这里 REF 和 MA 的先后顺序是公式的成败点。REF(MA(VOL,5),1) 取的是一根已完成的日线级别的5日均量,即昨天及之前五个交易日的平均成交量,不包含今天开盘后新增的实时量。如果把这个顺序写反,比如写成“MA(REF(VOL,1),5)”,也能得到一组相近的数字,但在盘中动态计算时容易触发通达信对未来数据的误判,部分版本还会报警提示潜在未来函数,干扰后续排错。按前一种写法,公式取到的是一个稳定、可复现的分母。
竞价量占比怎么解读:占比超过 10%,说明集合竞价这十分钟已经完成了昨日全天一成的成交量,这种票通常带了明显的资金动作;占比在 5% 到 10% 之间属于温和放量,可以当作候选池子里的次级条件;低于 3%,竞价几乎没有量能,高开大概率是空涨,应该直接从策略里剔除。
3.3 完整版源码:涨幅、金额、量占比与排除条件一起上
把最小版和量占比组合起来,加上 ST、次新和涨停开盘的过滤,就是一份完整可用的集合竞价选股公式:
{集合竞价选股:完整版,9:25-9:30 执行} 开盘涨幅 := (DYNAINFO(3)-DYNAINFO(2))/DYNAINFO(2)*100; 竞价金额 := DYNAINFO(7)/10000; 昨5日均量 := REF(MA(VOL,5),1); 竞价量占比 := DYNAINFO(6)/昨5日均量*100; 非ST := NOT(NAMEINCLUDE('ST')); 非次新 := CAPITAL >= 3000000; 非涨停开盘 := 开盘涨幅 < 9.8; XG: 开盘涨幅 >= 2 AND 开盘涨幅 <= 6 AND 竞价金额 >= 5000 AND 竞价量占比 >= 10 AND 非ST AND 非次新 AND 非涨停开盘;这份完整版把竞价金额从 3000 万提高到 5000 万,并把竞价量占比设成不低于 10% 的硬条件,同时排除了三类不适合参与竞价格局的品种。NAMEINCLUDE('ST') 是通达信内置的股票名称查找函数,能识别简称中的 ST 字样,取反后就是非 ST 条件;CAPITAL 表示流通股本,单位是手,3000000 手等于 3 亿股,用来过滤流通盘过小的次新股;非涨停开盘条件排除了开盘直接封上涨停的品种,这类票没有竞价承接的逻辑可言,介入空间也不存在。
需要留意的是,9.8 这个阈值是按主板 10% 涨停制度留出的余量。如果扫股范围包含创业板或科创板,涨停幅度是 20%,这里的阈值要同步改成 19.5,否则会放进来一批直接顶死在一字板上的标底,破坏选股池的意义。
3.4 阈值参数表:按市场热度快速调整
竞价选股和整体市场环境高度相关,参数不能一套全年用到底。我会在通达信公式的“参数”定义区把下面四个阈值单独列出来,每次实盘只改参数数值,不动公式主体。
| 参数 | 默认值 | 弱势市场建议 | 强势市场建议 | 调整逻辑 |
|---|---|---|---|---|
| 开盘涨幅下界 | 2% | 1% | 2.5% | 弱势中高开1%已算强势,放松下界 |
| 开盘涨幅上界 | 6% | 5% | 8% | 强势中可容忍更高开盘溢价 |
| 竞价金额 | 5000 万 | 3000 万 | 8000 万 | 金额越大,资金真实性越高 |
| 竞价量占比 | 10% | 8% | 12% | 太高的占比反而伴随炸板风险 |
调参的顺序也有讲究:先调金额和量占比,最后动涨幅区间。金额与量占比决定资金是否真实,涨幅区间决定进攻强度。资金真实性被破坏时,优先提高金额阈值来控制风险;只有在大盘情绪明显回暖时,才考虑放宽涨幅上界去接更强的开盘脉冲。
4. 公式调优与踩坑:竞价信号为什么会失灵
4.1 9:24:59 的参考价和 9:25:00 的真相
集合竞价的最后六十秒,是撤单和虚假挂单最密集的时间段。部分资金的做法是:在 9:24 前后挂出大额买单,把虚拟撮合价推到很高甚至顶上涨停,然后在 9:24:59 撤单,制造出竞价强势的假象,真实成交却留在低位。通达信盘口的 DYNAINFO(1) 在这个阶段每刷新一次就会变一次,如果公式做成盘中预警且触发窗口设在 9:24 到 9:25 之间,那么触发瞬间看到的是虚拟撮合价,到了 9:25:00 开盘价落地后,这个信号已经失去约束基础。
处理方式是把预警启动时间严格设在 9:25:20 之后。这个时间点之后,行情主站已经推送了包含最终开盘价的快照,竞价量、竞价额也都凝固下来,公式取到的就是一整套完整且可复现的数据。另外一个相关误区是,有人想抢 9:15 到 9:20 的早段信号,这个时段虽然不能撤单,但 9:20 之后能撤,前五分钟的挂单结构天然不稳定,参考价值最低。早段更适合观察高开幅度变化趋势,不适合当作选股信号触发点。
4.2 量能饱和度不是越高越好:巨量高开也可能是出货
近期不少量化指标源码交流里都在提“量能饱和度”这个词,含义大致是当前竞价量相对前期基准量能的饱和程度。在通达信公式里,这个值用竞价量占比来衡量即可。我的实际体感是:竞价量占比落在 10% 到 25% 区间,是比较健康的“资金抢筹”形态;一旦超过 30%,反而要警惕另一个可能性——高开之后出货盘借助竞价流动性批量卖单。
区分抢筹与出货,不能只看量能饱和度,要把涨幅放到同一个坐标里看。涨幅很小但量能高度饱和,说明有人在高开不多的情况下完成了大量换手,这是典型的承接性出货;相反,涨幅明显但量能没有极度放大,说明资金愿意支付溢价换取筹码,属于正向信号。通达信公式可以这样表达这组组合关系:
{组合判断:量能饱和度与涨幅的匹配关系} 开盘涨幅 := (DYNAINFO(3)-DYNAINFO(2))/DYNAINFO(2)*100; 量占比 := DYNAINFO(6)/REF(MA(VOL,5),1)*100; {抢筹型:涨幅适中,量能饱和度中等偏上} 抢筹型 := 开盘涨幅 >= 3 AND 开盘涨幅 <= 5 AND 量占比 >= 10 AND 量占比 <= 25; {出货型:涨幅不足,量能饱和度过高} 出货型 := 开盘涨幅 < 2 AND 量占比 > 25; XG: 抢筹型 AND NOT 出货型;这组公式把“量能饱和度”放进涨幅的语境里解读,比单因子看盘有更少的歧义。量能饱和度本身只是热度指标,没有好坏;只有在涨幅坐标系里定义位置的量能饱和度,才有方向上的含义。接下来把它作为补充条件加进完整版公式,就能明显减少高开诱多带来的误选。
4.3 先排除三类特殊样本,再谈竞价选股
完整版竞价选股的第一步不是选强势股,而是排除掉结构上不适合参与竞价博弈的样本。第一类是开盘直接一字封板的品种,开盘价就是最高价,DYNAINFO(7) 的竞价金额往往极小,但涨幅读数是满的,必须用“开盘涨幅阈值”拦掉;第二类是 ST 股,涨跌幅限制只有 5%,涨停开盘的涨幅读数天然偏小,竞价量能却可能因为连续跌停后的投机盘而异常放大,拿普通阈值去卡没有意义,直接 NAMEINCLUDE 排除;第三类是上市不满五个交易日的新股和次新股,没有完整的昨日均量序列,竞价量占比的分母算不准,CAPITAL 流通盘约束可以把这部分标的挡在池外。这三个排除条件在公式体量里只占三行,但对最终选股结果有效率的提升往往是决定性的。
5. 把选股公式接进通达信预警与盘后验证
5.1 盘中预警的搭建步骤:从公式源码到实时行情提醒
公式在条件选股面板里手动执行,每天只跑一次没问题;但如果你想在 9:25 之后几十秒内就把结果弹出来,更实用的是通达信的条件预警功能。配置路径:先打开“功能 → 公式系统 → 公式管理器”,把完整版选股公式保存为条件选股公式,确认输出项只有 XG 一个;然后进入“功能 → 预警系统 → 条件预警设置”,点击添加,公式选择刚才保存的集合竞价选股公式,股票范围选沪深 A 股;最后把预警开关打开,启动时间填 09:25:30,保持通达信主站连接正常,软件放前台运行。
整个流程依赖通达信实时行情推送,在开盘瞬间的行情数据量较大时,预警计算出现几秒到十几秒的延迟是正常的,不要因为弹窗晚就当机重试或反复手动触发。通达信本地数据库如果同时被多个预警任务读取,可能短暂锁表,反而拖慢后续行情刷新。让预警安静跑完第一批选股结果,再去做二次确认。
5.2 盘后用第一根分钟K线复核竞价结论
参数调整是否合理,不能靠盘中感觉,需要盘后复盘。通达信默认不回放竞价过程,但可以用第一根分钟K线做交叉验证:把个股周期切到 1 分钟,找到 9:30 那一根K线,它的开盘价就是当日竞价开盘价,成交量九成以上来自竞价撮合量。把这个数字和盘中公式取到的 DYNAINFO(6)、DYNAINFO(7) 对照,两者应当接近。如果偏差很大,说明预警触发时主站推送还没到位,或者执行时间设得过早,需要把启动时间再往后推。
我一般会在每天收盘后,把竞价选股结果导出到表格,只留四个字段:股票代码、开盘涨幅、竞价金额、竞价量占比,再把这天 9:30 到 10:00 的实际走势标注在旁边。连续记录二十个交易日,就能看到自己设定的涨幅区间和量占比阈值与实盘走势的相关性强弱,并据此微调第 3 章那张参数表里的默认值。没有这层数据回流,公式源码再完整也只是静态代码。
5.3 把选股结果导出到自定义板块,留作竞价池
最后一个技巧是把条件选股的结果固化下来。得到选股列表后,点击“选股入板块”按钮,新建或选择一个自定义板块,比如命名“竞价池”,把本轮全部符合条件的股票放入该板块。之后通达信就可以对这个板块整体做分时排序,或者切换到多股同列界面批量查看竞价后的量价走势,不用在自选股里手动添加一堆名字。这个板块保留的是当天 9:25 时点的静态结果,次日开盘后再看它对比大盘的走势,就能把“公式筛选”和“日内走势”两段逻辑串成一条完整的验证链,也便于月末复盘时快速回看每一天的选股质量。
本文还有配套的精品资源,点击获取