简介:通达信分时成交量见抓涨停指标公式源码是一份面向短线交易者的通达信副图公式文档,重点解决分时量能识别与涨停启动信号捕捉问题。文档给出PFFIN流通盘换算的真实换手率、VOL量柱、均量比与昨量比进度条、OBV累计能量等核心算法,并通过STICKLINE按涨跌平绘制不同颜色量柱;当成交量超过前期最大量时以加粗红绿警示,出现放量且换手达标时输出“★”抓涨停标记。资源仅含1个doc文档,大小约270KB,复制源码到通达信公式管理器即可直接使用,适合有一定指标使用基础、希望深入理解分时量价逻辑的投资者。目前已吸引2312人浏览学习,足见其短线实用价值;读者不仅能获得可运行的源码,还能借鉴DRAWTEXT、DRAWRECT等绘图函数与量比条件写法,用于自选股预警或二次策略开发。
1. 分时成交量见★抓涨停指标:一个把异动直接画在K线上的副图
做超短线的人都有这种体会:分时图看量,总是一根一根柱子对比,眼睛扫完左侧还要瞄右侧,量能异动稍纵即逝;等到盘后复盘,又因为不知道当时那根放量到底对应了什么价格行为,错过了最值得总结的样本。这份通达信分时成交量见★抓涨停副图源码,解决的正是这个问题——它不只是一个带颜色的成交量柱,而是把「放量、创新高、换手达标、价格收红」这几个条件揉在一起,当某根分时K线同时满足时直接画一个红色★,并在副图上留下成交额、均量比、昨日比三条参考线,让你在盘中一眼就知道「此时该不该盯住这只票」。指标里没有任何未来函数,信号全部由当前及历史已发生的分时数据计算,盘中信号不会因为后续K线走出来而消失或回补,这一点对分时决策来说比什么都重要。适合做分时突破、首板、弱转强的短线交易者,也适合每天收盘后快速回看当日异动个股。
2. 拆源码:量、价、换手、时间四维条件的组合逻辑
2.1 两个容易被忽略的基础变量:MM和流通盘计算
源码开头这几行,是很多人直接跳过但恰恰决定信号质量的地方:
VOL,VOLSTICK,PRECIS0; mm:=0; IF PFFIN(4251,0)>0 Then begin mm:=PFFIN(4251,0); end; 流通盘:=CAPITAL-mm/100; dbhs:if(capital<2000000,v/capital*100,v/流通盘*100),linethick0;PFFIN(4251,0)取的是当日财务字段中的某一项数据(这里按常见用法是限售股或质押相关股本),把它从CAPITAL里扣掉,得出「实际可流通盘」。为什么要扣?因为全流通时代的CAPITAL对很多次新股、有解禁预期的票是失真的,换手率分母偏大,导致换手数值被稀释,★信号里的dbhs>0.15这个换手门槛就永远触发不了。如果PFFIN取不到数据(比如某些品种不披露),mm保持为0,流通盘退化为CAPITAL,逻辑依然成立,只是精度差一点。dbhs这一行里还有一个容易忽略的分支:当CAPITAL小于200万(单位是手,也就是总股本小于2亿股)时,直接用V/CAPITAL*100计算换手,不走流通盘逻辑——小盘股的分母本身就接近真实流通盘,没必要再扣一遍。
提示:PFFIN(4251,0)的0表示取最新一期数据。盘中调用时,如果当日财务数据未更新或停牌补数据异常,它可能取到旧值。遇到信号频繁但换手率明显对不上的情况,先打开财务数据面板核对这个字段。
2.2 标准量和四色量柱:一根K线对应两种颜色的背后逻辑
代码里定义了「标准量」这条参考线:流通盘/1000,单位是手。它本质上是「千分之一流通盘换手」对应的量能水平。为什么取1000?因为对一只流通市值50亿的票,千分之一换手大约是500万成交额,这个量级在分时级别能区分「正常波动」和「异动」,是短线客默认的分时量能基线。把它画成一条固定横线,配合STICKLINE画出的量柱,盘中扫一眼就知道哪几根K线是明显放量的:
标准量:if(count(v>流通盘/1000,0)>0,流通盘/1000,0),colorff00ff,PRECIS0; STICKLINE(C<REF(C,1),0,VOL,5,0),COLORgreen; STICKLINE(C>REF(C,1),0,VOL,5,0),COLOR4040FF; STICKLINE(C=REF(C,1),0,VOL,5,0),COLORwhite;绿柱是下跌量,蓝紫色柱是上涨量,白色是平盘量。注意这里上涨用COLOR4040FF是偏蓝的紫色,不是纯红,这是为了让后文真正的异动柱(红色)在视觉上跳出来。宽度参数5对应分时副图正常粗细,若你觉得柱子太粗盖住了相邻K线,可以改成4或3;0表示空心柱还是实心柱,这里取0是实心,便于盘中快速识别量能大小。
2.3 分时放量创新高的加粗柱:time参数才是细节
接下来是一组带time条件的STICKLINE,它们是副图上最显眼的粗柱:
STICKLINE(C<REF(C,1) and v>ref(最大量,1) and time>94200,0,VOL,5,0),COLOR3d,colorgreen,LINETHICK2; STICKLINE(C>REF(C,1) and v>ref(最大量,1) and time>94200,0,VOL,5,0),COLORred,COLOR3d,LINETHICK2; STICKLINE(C=REF(C,1) and v>ref(最大量,1) and time>94200,0,VOL,5,0),COLORwhite,LINETHICK2;条件拆开看是三层:一是当前K线收盘价相对上一根K线涨/跌/平;二是当前分时成交量大于之前所有分时K线的最大量(ref(最大量,1)取的是上一根位置的历史最大值);三是time>94200。time在通达信里是当日时分秒转成的整数,94200代表09:42:00,也就是开盘12分钟之后才允许触发信号。为什么过滤前12分钟?开盘头几分钟的集合竞价释放量和连续竞价初段的量能经常虚高,很多票开盘第一根K线就是全天最大量,如果不过滤,9:31就会画一个粗柱,然后全天再也没信号,这个柱子就失去「盘中异动提醒」的意义了。
9:42这个阈值不是随便定的,它约等于开盘后15分钟的位置,此时竞价量能的干扰已经过去。如果你偏好打板,可以改成93000甚至不设时间条件;如果你偏好分时二次启动,改成94500更稳。这个参数是这份源码里最值得按自己风格调的地方之一。
2.4 三根极值柱:1.5倍量、0.22换手对应的两种形态
再往下是三根更苛刻的STICKLINE:
STICKLINE(v>ref(最大量,1)*1.5 and c>ref(c,1) and dbhs>0.15 and time>94500,0,VOL,5,0),COLORyellow,COLOR3d,LINETHICK2; STICKLINE(C>REF(C,1) and dbhs>0.22 and time<94200,0,VOL,5,0),COLOR66ffff,color3d,LINETHICK2;第一根黄色粗柱:当前量超过历史最大量1.5倍、价格收红、换手大于0.15%(注意单位是百分数,dbhs>0.15意味着换手率超过0.15%)、并且时间在9:45之后。这是「暴力放量突破」的信号,通常对应分时平台突破或回踩后的二波拉升。第二根是亮青色柱:价格收红、换手超过0.22%、时间在9:42之前——这是早盘抢筹信号。0.22%这个数值对多数票来说意味着开盘15分钟内就完成了全天计划成交量的两成以上。两条逻辑覆盖了「早盘抢筹」和「盘中爆量」两种不同的强势形态,配合前面的★使用效果更好。
2.5 ★信号的真正触发条件:lxtp与lxtp1的区别
★是这个指标的灵魂,直接看定义:
lxtp:=((v>ref(v,1) and dbhs>=0.1 and ref(v,1)>ref(最大量,2)) or (v>ref(最大量,1) and dbhs>=0.08 and ref(v,2)>ref(最大量,3))) and c>ref(c,1); lxtp1:=((v>ref(v,1)*0.9 and dbhs>=0.1 and ref(v,1)>ref(最大量,2)) or (v>ref(最大量,1)*0.9 and dbhs>=0.1 and ref(v,2)>ref(最大量,3))) and c>ref(c,1); DRAWTEXT(lxtp1,v*0.98,'★'),ALIGN1,VALIGN1,COLORdd22b8,LINETHICK3; DRAWTEXT(lxtp,v*0.98,'★'),ALIGN1,VALIGN1,COLORRED,LINETHICK3;lxtp由两个分支组成。分支一:当前量大于上一根量、换手不低于0.1%、且上一根量大于前两根之前的历史最大量——意思是「昨天(前一根)已经放量突破过一次,今天(当前这根)继续放大」,这是延续信号。分支二:当前量大于历史最大量、换手不低于0.08%、且前第二根量大于前第三根之前的历史最大量——意思是「前一根之前的某根K线已经创造过天量,当前K线再次突破」,这是二次突破信号。两个分支都要求当前K线收红。
lxtp1和lxtp唯一的区别是量能门槛松了10%:v>ref(v,1)*0.9、v>ref(最大量,1)*0.9,并且换手统一不低于0.1%。它是lxtp的容错版本,用来捕捉「接近突破」的异动。两个★画在同一位置,粉色是弱信号、红色是强信号,盘中如果只看到一个红色★,说明条件完全达标;看到一个粉色★,说明量能差一口气但换手已经跟上,需要人工结合盘口再判断一下。
提示:这里ref(最大量,2)和ref(最大量,3)的层数要理解透——最大量本身是HHV(v,0)的滚动值,ref它一次相当于「看到上一根K线为止的最大量」,ref两次相当于「看到前第二根为止的最大量」,配合v>ref(v,1)形成「第二根放量创出新高」的递进关系。新手常在这里把ref层数写错,导致信号永远不触发或频繁误触发。
2.6 均量比、昨日比与OBV底图的三重参考系
副图下半部分画了两个横条和一个OBV堆量区,它们是量价信号的辅助验证:
比例:=v/ma(v,10)*100; DRAWTEXTREL(2,130,'均量比:'),COLORYELLOW; DRAWTEXTREL(60,130,NUMTOSTRN(比例,2)+'%' ),COLORYELLOW; bl:=sum(v,0)/"引用.v1#day"*100; DRAWTEXTREL(2,300,'昨日比:'),COLORYELLOW;比例是当前分时量与10周期均量的比值乘以100,显示为百分比。超过100%说明当前分时量高于近期平均,超过200%意味着是平均水平的2倍,这是判断「放量是否持续」的实时窗口。bl是用当日累计成交量除以「引用.v1#day」——也就是调用某只参照票的日线昨收量,数值含义是「当前成交占昨日全天成交的百分比」。这两条横条的填充宽度(DRAWRECTREL的实心矩形)会随着数值变化动态伸缩,盘中不用读数字,看填充条的长度就能感知量能热度。
再往下是OBV能量潮的变体:把OBV数值对半分,以某个基准线F为轴,正值向上画蓝色柱、负值向下画深绿色柱,并用FILLRGN填充了基准线到最低价的区间。这部分不是重点,但有一个细节值得说:OBVJ的累加逻辑是收涨加成交量、收跌减成交量,它和上方的分时量柱是两套独立体系。当上方出现红色★而OBV柱同步向上伸长时,量价配合的确认度高;如果★出现但OBV柱走平甚至向下,说明放量集中在下跌段,拉升那根K线的量能其实不足,这种★要降级处理。
3. 导入与副图配置:从公式管理器到盘中实盘验证
3.1 公式创建与粘贴的五个步骤
源码拿到手,第一步是建公式文件。我将步骤写在这里,跟着做一遍就能在通达信里看到完整副图。
第一步,打开通达信客户端,按Ctrl+F调出公式管理器,点「新建」,公式名称填「分时见星抓涨停」,画线方法选「副图」,勾选「主图叠加」不要开(这是副图指标)。第二步,把源码全部复制到公式编辑区。第三步,点「测试公式」,通达信会先检查语法错误。第四步,测试通过后点「确定」保存。第五步,打开任意个股的分时图,在副图区域右键选择「分时指标」→「分时见星抓涨停」,副图立即生效。
注意,源码里有一个跨周期引用:"引用.v1#day"。这里的「引用」是某个公式的名称,v1是它输出的变量。如果你没有提前建一个名为「引用」的公式并输出v1(昨日成交量),这个跨周期引用会报错或显示为0,导致bl这条线失效。最简单的替代方案是把"引用.v1#day"直接替换成ref(v,1)的日线值,或者用一个简化公式:先建一个公式名为「引用」,代码写v1:vol;,保存后再回来编译这个分时指标。这是新手导入时最容易卡住的地方。
3.2 分时副图的缩放与参数适配
导入成功后,副图默认高度可能偏大或偏小。通达信分时副图的高度由系统根据指标值域自动分配,而这个指标里有STICKLINE画到VOL的值域,也有DRAWTEXTREL画在固定相对坐标的文本,还有OBV柱画在另一个量纲上。如果副图显示得乱,第一件事是在副图右键「指标参数」调整精度位数,把成交量的PRECIS0改成PRECIS2——不是让量显示小数,而是让dbhs和比例这两条线的数值显示两位小数,方便盘中读换手。
副图的Y轴建议开启「坐标最优化」,否则最大量柱会把副图撑爆、均量比进度条被压在底部看不见。优化后,副图会自适应量柱高度,均量比和昨日比两条DRAWRECTREL横条始终可见。我一般还会把副图的网格线调淡(右键「分时坐标」→「不显示网格」),因为量柱和★已经够密集,再叠加网格视觉噪音太大。
3.3 盘中实盘验证:信号出现时应该看什么
副图跑起来之后,不能只盯★出现就下单。我建议把盘中确认分成三步。
第一步,看★的颜色和位置:红色★出现在分时K线收红且量柱明显放大时,说明lxtp完全达标;粉色★说明量能差一点,需要结合盘口。第二步,看均量比和昨日比的进度条:均量比超过200%且昨日比超过50%,说明当日成交已显著超前日,这是「资金真金白银进场」的旁证;如果★出现但两个进度条都很短,说明量能只是局部的脉冲,不具备持续攻击性。第三步,回到分时图本身看价格行为:★对应的那根K线是否突破了前高平台、回踩时是否缩量、分时均价线是否向上。指标只是筛选器,最终决策要把筛选结果放进自己的交易框架里。
4. 避坑指南:分时指标使用的五个血泪教训
4.1 信号盘中消失?先查「引用.v1#day」的跨周期依赖
现象:盘中某个时段★出现了,过几分钟再看同一位置却消失了,再刷新又出现,信号闪烁不定。
原因:这个指标里"引用.v1#day"引用的日线数据在盘中会随当日成交量累计变化。当日成交量一直在变,bl曲线也在变,但lxtp本身不引用bl,所以理论上★不该因此消失。真正导致闪烁的是通达信分时指标的跨周期刷新机制——如果「引用」公式里v1:=vol;而不是v1:vol;,输出属性错误,盘中跨周期数据会在部分刷新周期内返回0,间接影响其它行的计算稳定性。
解决:把「引用」公式的输出定义改成显式输出v1:vol;,并在主图上先运行一次「引用」公式让系统缓存日线数据。从那以后我每次导入这类带跨周期引用的指标,都会先跑一遍被引用公式再切回分时图,不再让闪烁问题浪费盘中时间。
4.2 换手率分母不一致导致★泛滥
现象:某些次新股分时图上★信号特别多,几乎每隔十几分钟就出一个,但多数★之后股价并没有继续拉升。
原因:dbhs计算中,CAPITAL小于200万时走v/capital*100分支。对总股本小于2亿股的小盘股,这个分母直接用了总股本。但次新股流通盘≈总股本,这个逻辑没问题;问题出在那些总股本不小、但实际流通盘极小的票(比如大股东锁仓比例极高的老股),CAPITAL大于200万,走了流通盘分支,本应扣减的限售部分却因为PFFIN(4251,0)取不到数据而没扣,分母虚高,换手被低估,★该出现时反而出不来;反过来,如果PFFIN取到了某个偏小的异常字段值,分母被扣得过多,换手虚高,★就会泛滥。
解决:在副图上叠加一条流通盘数值的文本输出(比如DRAWTEXTREL显示流通盘数值),盘中对比F10里的真实流通股本,偏差超过20%就放弃流通盘分支,在源码里把流通盘直接改成CAPITAL重新编译。这是数据质量问题,不是逻辑问题,靠调参数解决不了。
4.3 集合竞价K线污染最大量基准
现象:9:30到9:35之间频繁出现粗柱甚至★,但9:40之后这些信号全部消失,全天无新信号。
原因:通达信分时图的第一根K线包含集合竞价成交量,部分版本还会合并9:30整根K线。如果竞价量极大,HHV(v,0)从第一根就被定格为天量,后续所有v>ref(最大量,1)条件全部失效。源码里time>94200的过滤只作用于粗柱和黄色柱,没有作用于lxtp——lxtp的量大条件不受时间过滤,所以竞价天量会压制全场信号。
解决:在lxtp和lxtp1的定义里都加上time>93000或time>93500条件,让9:35之前的K线不参与★计算。我习惯用93000,因为9:30到9:35之间的真实异动可以通过青色柱(dbhs>0.22 and time<94200那条)单独观察,不需要★重复提示。
4.4 均量比数值与副图显示不一致
现象:副图显示均量比是180%,但按v/ma(v,10)*100手算出来的数值明显不同。
原因:ma(v,10)在分时图上不是按分时K线数计算,而是按从开盘到当前的总分钟数动态计算。如果你在盘中某个时刻回看,ma(v,10)的窗口包含了当前未走完的那根K线,它的成交量是瞬时值,到了下一分钟这个值会被重算。所以盘中看到的均量比是「实时滚动值」,收盘后复盘时同一位置的数值会变,这是分时指标的正常现象,不是bug。
解决:盘中看趋势,不看绝对值。均量比超过200%就说明量能在持续放大,具体数字并不重要;要精确复盘,应切换到日线级别用相同的公式计算。
4.5 ★信号之后追进去被套
现象:红色★出现后买入,价格冲高回落,尾盘被套两三个点。
原因:★条件是「放量+收红+换手达标」,这是异动确认,不是趋势预测。★出现的时点往往是一波拉升的中段,如果此时换手已经超过全天预期的七八成,后续买盘乏力,价格自然回落。任何量价信号都只能说明「此刻资金在进场」,不能说明「进场后资金还能持续」——后者的确认要等回踩不破均价线或二次放量突破。
解决:把★当第一关注点,不是当买点。我通常的做法是★出现后切到分时笔数看大单流向,如果连续大单买入但价格滞涨,说明有抛压对冲,不追;如果价格缩量回踩均价线上方三五个点又反身向上,才考虑进场。指标负责发现,交易系统负责执行,中间隔着一段人工确认。
5. 进阶技巧:用公式系统把★信号搬上日线选股
5.1 把lxtp日线化实现「昨日有★」选股
分时信号只能盘中看,没法选股。但只要把lxtp的计算周期从分时改为日线,它的核心逻辑(放量、突破历史最大量、换手达标)在日线级别同样成立,而且能用来做次日选股。我一般会另建一个日线公式,把分时源码里的分时专用函数整体替换:
X周期:=BARSLAST(C>REF(C,1)); 放量创高:=V>REF(HHV(V,0),1) AND C>REF(C,1) AND 换手率>0.15; 二次突破:=V>REF(HHV(V,1),2) AND REF(V,1)>REF(HHV(V,2),3) AND 换手率>0.1; 日线星:放量创高 OR 二次突破;逻辑说明:放量创高对应分时的lxtp分支二,条件是当日成交量大于历史最大量、收红、换手率大于0.15%;二次突破对应lxtp分支一的递进结构,要求昨前期出现过一次天量、今日再次放量。换手率这里用系统函数动态计算(按流通盘),不必再调用PFFIN。选出来的票盘中打开分时副图验证★是否出现,两级确认比单看日线信号可靠得多。
参数说明:换手率阈值0.15和0.1是分时版的直译。日线级别的换手通常比分时小一个数量级,实际选股时如果信号过多,把阈值提到0.5以上;如果过少,降回0.1。这和涨停板数量、市场活跃度有直接关系,没有通用最优值,按你交易的票池平均换手来回调。
5.2 信号的二次确认:结合分时均价线做条件注释
★只是一个静态标记,但你可以通过修改DRAWTEXT的显示内容,让它输出「当时距均价线的偏离幅度」,辅助判断追高风险。在源码的DRAWTEXT行附近加一行计算:
偏离:=(C-均价线)/均价线*100; DRAWTEXT(lxtp,v*0.9,NUMTOSTRN(偏离,1)+'%'),COLORWHITE;逻辑说明:如果★出现时偏离已经超过3%,说明价格离分时均价线过远,短期回调概率大;偏离在1%以内,说明价格刚刚突破、追入成本相对可控。这样★不再是孤立的★,而是带了一个「追高温度计」。你需要先在分时源码里定义均价线变量(通达信系统自带,直接用即可),同时注意DRAWTEXT文字不能太多,否则会把量柱盖住。
5.3 参数化改造:一个源码适配三种交易风格
把这几个关键值改成参数,可以在不重新编译公式的情况下切换风格:
时间阈值:=94200; 量倍阈值:=1.5; 换手主阈值:=0.15;风格一(保守):信号当天已涨7%以上就不显示★,用C/REF(C,1)<1.07过滤涨停板附近的高位票;风格二(激进):把时间阈值改成93000、量倍阈值改成1.2,让信号更早出现、覆盖更多早盘异动票;风格三(打板):把换手主阈值升到0.3,只保留暴力放量级别的信号,减少盘中噪音。我自己的习惯是主用风格二做盘中关注,收盘后把选出来的票切到日线周期跑一遍风格三参数,筛掉换手不足的假信号。指标给你的是通用逻辑,适配自己风格的那一步永远要自己做,这也是从「用别人的指标」到「有你自己的系统」的分界线。希望这篇拆解能帮你把这份源码真正用起来,少走我当初一个一个坑踩过来的弯路。
本文还有配套的精品资源,点击获取