通达信跟庄擒牛副图指标源码:主力资金线与量能饱和度解析
2026/9/18 1:34:32 网站建设 项目流程

简介:这份通达信副图指标源码文档面向股票技术分析爱好者与公式编写初学者,围绕“跟庄擒牛”思路整合均线差、强弱与波动等多类信号,帮助使用者在通达信软件中自行导入、观察主力与散户情绪变化,并据此辅助判断买卖时机。压缩包仅含 1 个 doc 文件,整体约 179KB,内容以指标公式源码为主,可直接查阅、复制到公式管理器中进行调试与二次改写。文件涵盖 DIFF 与 DEA 带状趋势、RSI1 相对强弱、AR 波动幅度,以及卖点雷达、买点雷达、主力控盘、小股民、BT1/BT2/BT 等组件,并对顶底提示、天知底、天知升等信号做了图形化标记。目前已有 974 人学习下载,适合希望从源码层面理解副图指标结构、学习条件选股与信号组合逻辑的读者参考。

1. 副图里那条曲线,才是主力留下的指纹

很多人把通达信副图当装饰,主图看形态,副图随手挂个 MACD 就算完事。真做起短线来会发现,K 线能骗人,成交量也能骗人,但资金在盘口留下的痕迹很难同时抹干净。跟庄擒牛副图指标源码要处理的,就是把「主力在不在、是在吸筹还是已经拉升、量能放到什么程度算饱和」这三件事,压缩成一条可读的曲线加一个信号标记,挂到副图里去。

它适合有一定看盘经验、愿意自己动手改公式参数的人:不做全自动交易,只做主图信号的二次确认。通达信公式语言的门槛并不高,SUMEMACROSS这些函数翻来覆去就那几个,真正决定这套指标能不能用的,是判定条件的组合方式和参数取值,而不是那几十行代码本身。

所以下面不打算只贴一段源码了事,而是从副图该显示什么、主力资金怎么用价量近似、信号阈值怎么定,一路写到装进公式管理器之后怎么验证和排错。

2. 跟庄擒牛副图指标盯的是资金、量能与筹码三个维度

2.1 副图指标与主图指标的分工边界

主图负责价格结构,均线、形态、缺口、平台这些东西都在主图上,它是「结果」。副图负责成因,量能、资金、动量这些都在副图,它是「过程」。把资金线画到主图上会出现一个很实际的问题:资金净流入的数值动辄是几万到几十万,和股价 8.5 元、12.3 元完全不在一个量级,叠在一张图里要么股价被压成一条直线,要么资金线被压成一条平线。

所以跟庄擒牛这一类指标天然属于副图。常见做法是让副图同时承载三样东西:一条主力资金线(判断方向)、一个量能饱和度数值(判断力度)、一个信号点(判断时机)。三者量纲不同,但可以共享同一套逻辑判断,只是绘制时把量能饱和度藏进条件里,不直接画出来。

提示:如果一定要把量能饱和度画成曲线,先用VOLSAT/100归一化,否则它会把你副图里其他线全部压扁。

2.2 用典型价和量能估算主力净流入

通达信普通行情里拿不到真正的逐笔资金流,只有 Level-2 才有主力大单数据。所以绝大多数「主力追踪」类副图指标源码,走的都是价量近似路线:用典型价代表当日成交重心,用收盘价相对前一日的变化代表方向,用成交量代表力度,三者相乘得到单日资金流的近似值。

{单日资金净流入近似值} TP:=(HIGH+LOW+CLOSE)/3; {典型价:当日成交重心的近似} DIR:=IF(CLOSE>REF(CLOSE,1),1, IF(CLOSE<REF(CLOSE,1),-1,0)); {方向:涨记正、跌记负、平记零} FLOW:=TP*VOL*DIR/10000; {除以10000,把单位压到万元级}

TP用最高、最低、收盘三个价格的算术平均,比直接用收盘价更贴近当日真实成交成本;DIR是一个三值开关,平盘日直接归零,避免把横盘误判成资金流入;FLOW末尾除以 10000 纯粹是为了让副图上的数值落在几十到几百这个可视区间,不改也行,只是数字会很长。

这套近似的局限要提前说清楚:它无法区分一笔成交是主动买入还是被动成交,遇到尾盘拉抬、对倒放量这类手法会产生误判。所以它只能做趋势性参考,不能当成精确的资金数据用。

2.3 量能饱和度:把「放量」变成可比较的数字

大盘股放 2 个亿和小盘股放 2 个亿,意义完全不同,绝对成交量没法横向比较。量能饱和度的思路是把当日成交量除以自身的中期均量,得到一个百分比:

VOLMA:=MA(VOL,M); {M日平均成交量} VOLSAT:=VOL/VOLMA*100; {量能饱和度,100表示与均量持平}

VOLSAT等于 100,说明今天的量和过去 M 天的平均水平一致;达到 150 就是放量五成;飙到 300 以上通常是异动。把阈值设在 80 意味着「量能刚刚越过均量线」,这类条件适合做信号的早期触发;设在 120 以上则过滤得更狠,信号会明显变少。市面上叫「量能饱和度圆圈」的同类公式,本质都是这一步的变体,只是把阈值做成了可调的圆圈标记。

指标构成计算公式反映内容在副图中的角色
主力资金线SUM(TP*VOL*DIR,N)后做EMA平滑资金进出方向与力度柱状主线
量能饱和度VOL/MA(VOL,M)*100相对自身均量的放量倍数触发条件,不绘制
价格强度CLOSE>MA(CLOSE,M)是否处在多头结构里过滤条件

2.4 通达信公式语言里几个必须先搞懂的符号

有两个符号必须分清::=是赋值但不输出,:是赋值并输出。写成A:=CLOSE>REF(CLOSE,1)时,A 只是个中间变量,副图上看不到它;写成B:MA(CLOSE,5)时,副图上会真的画出一条五日均线。很多从 .doc 文档里复制过来的源码跑不出效果,第一步就该检查冒号。

A:=CLOSE>REF(CLOSE,1); {中间变量,不画线} B:MA(CLOSE,5); {输出变量,会在副图画出五日线}

其余常用的几个:REF(X,N)取 N 周期前的值,SUM(X,N)求 N 周期累加,EMA(X,N)是加权平滑,CROSS(A,B)判断 A 上穿 B,HHV/LLV取区间最高最低。这六个函数足够支撑一版完整的跟庄擒牛副图。

3. 从零写一版可编译的跟庄擒牛副图源码

3.1 参数定义与中间变量命名

参数不要写死在源码里。通达信公式管理器的参数页支持给每个变量设默认值、最小值和最大值,写死之后每次改动都要进编辑器,非常低效。下面这版源码假定已经在参数页填好三个参数:N默认 10、M默认 30、TH默认 80。源码里直接引用变量名,不再重复声明。

变量命名建议带上含义,ZLLINEA1好读,VOLSATB2好排查。通达信对变量名长度不敏感,但对全角字符极其敏感,后面会专门讲这个坑。

3.2 吸筹段与拉升段的判定代码

主力行为在副图上至少分两段看:吸筹段量能温和、价格区间收敛;拉升段价格站上中期均线、资金线持续走高。把这两段分开判断,可以避免把震荡期的横盘误当成启动信号。

{吸筹段:价格区间收敛 + 量能温和放大 + 资金线抬高} RANGE:=HHV(HIGH,N)-LLV(LOW,N); {N周期内的价格振幅} XICHOU:=RANGE/LLV(LOW,N)<0.10 {振幅小于10%,横盘特征} AND VOLSAT>MA(VOLSAT,5) {饱和度高于自身5日均值} AND ZLLINE>REF(ZLLINE,1); {资金线较前一日抬高} {拉升段:价格站上中期均线 + 资金线为正} LASHENG:=CLOSE>MA(CLOSE,M) AND ZLLINE>0;

RANGE/LLV(LOW,N)<0.10这个 0.10 是可以调的,越小越严格,越小也越容易漏掉那种缓慢抬升的窄幅爬坡形态。VOLSAT>MA(VOLSAT,5)是拿饱和度跟自己的短期均值比,而不是跟绝对数值比,这样在不同活跃度的股票上表现更一致。

3.3 擒牛信号的触发条件与副图绘制

信号不要只用一个条件。单靠量能触发,横盘股天天给信号;单靠资金线触发,滞后太严重。两个一起用,再叠一层价格结构过滤,误报会明显下降。

{擒牛信号:量能上穿阈值 + 资金线为正 + 价格在中线之上} QN:=CROSS(VOLSAT,TH) AND ZLLINE>0 AND CLOSE>MA(CLOSE,M); {副图绘制:资金线画柱,正红负绿} STICKLINE(ZLLINE>=0,0,ZLLINE,3,0),COLORRED; STICKLINE(ZLLINE<0,0,ZLLINE,3,0),COLORGREEN; ZERO:0,COLORGRAY; {零轴参考线} DRAWICON(QN,ZLLINE,1); {信号点标箭头} DRAWTEXT(QN,ZLLINE*1.15,'擒牛'),COLORYELLOW; {文字标注}

STICKLINE(COND,PRICE1,PRICE2,WIDTH,EMPTY)的五个参数分别是条件、起点、终点、柱宽和是否空心,柱宽 3 属于中等偏细,副图线多的时候不容易糊成一片。DRAWICON的第三个参数是图标编号,1 通常是向上箭头,不同版本通达信的编号略有差异,可以换成 2、3 试。DRAWTEXTZLLINE*1.15是把文字抬高 15% 避免压住柱子,因为信号触发时ZLLINE>0已经保证不会出现负数坐标。

3.4 从 .doc 复制源码到公式管理器的完整步骤

以 .doc 格式流传的指标源码,复制过程本身就是一个高频故障点。中文 Word 会自动把半角标点替换成全角,:=变成:=;变成,通达信编译时直接报错。

  1. 打开 .doc,先全选复制到记事本(Windows 记事本或 VS Code 都行),不要直接粘进公式编辑器。
  2. 在记事本里用查找替换把全角换成半角:,全角换成半角;,全角( )换成半角。逗号尤其容易混,全角逗号在函数参数里必挂。
  3. 检查是否有 Word 自动换行留下的软回车,这类换行粘进去会变成非法字符。
  4. 打开通达信,快捷键Ctrl+F调出公式管理器,选择「技术指标公式」→「新建」。
  5. 公式名称填跟庄擒牛,填写中文描述,画线方法选「副图」。
  6. 切到参数页,依次填入NMTH三个参数的默认值、最小值、最大值。
  7. 切回公式编辑页,粘贴处理过的源码,点「测试公式」,没有报错再点「确定」。
  8. 回到任意个股 K 线图,在副图区域右键选择跟庄擒牛,观察信号是否符合预期。

注意:测试公式报「语法错误」但又看不出问题,八成是某处藏了一个全角空格。全选后用记事本的「显示所有字符」或者 VS Code 的不可见字符渲染,一眼就能找出来。

4. 参数怎么调:周期、阈值与量能饱和度的取值

4.1 三个必调参数与默认值的来历

N=10是资金累计窗口,取 10 是因为 A 股一周五个交易日,两周正好 10 天,能覆盖一个完整的短线小周期;M=30是中期均线周期,一个月约 21 个交易日,取 30 是留出缓冲,避免月末月初的量能跳变影响判断;TH=80是量能饱和度的触发门槛,低于 80 意味着当日成交还没到均量水平,谈不上「放量」。

参数默认值可调范围作用调大之后调小之后
N105~20资金净流求和周期曲线更平滑,信号滞后更灵敏,噪声明显增加
M3020~60均量/均线周期过滤短期波动,偏向中长线捕捉短线,容易假突破
TH8050~150量能饱和度触发阈值信号少而精,可能漏掉启动点信号多而杂,需要人工二次筛

调参不要三个一起动。正确顺序是先固定 M 和 TH,只调 N 观察资金线的平滑程度;资金线形状满意后,再调 TH 控制信号密度;最后调 M 去匹配你习惯的持仓周期。三个参数同时改,出问题根本定位不到是哪个引起的。

4.2 用条件选股和历史回放验证信号

副图上肉眼看着挺准,一选股就发现信号满天飞,这是最常见的情况。把副图源码改造成选股公式,用数据验证一下信号密度,比盯图靠谱得多。

{跟庄擒牛选股公式 - 与副图共用同一套判定} TP:=(HIGH+LOW+CLOSE)/3; DIR:=IF(CLOSE>REF(CLOSE,1),1,IF(CLOSE<REF(CLOSE,1),-1,0)); FLOW:=TP*VOL*DIR/10000; ZLLINE:=EMA(SUM(FLOW,10),5); VOLSAT:=VOL/MA(VOL,30)*100; XG:CROSS(VOLSAT,80) AND ZLLINE>0 AND CLOSE>MA(CLOSE,30);

注意副图源码里ZLLINEVOLSAT用的是参数变量NMTH,选股公式里必须写成具体数值,因为选股公式的参数传递方式和副图不完全一样。两边数值保持一致,验证结果才有意义。

XG:这个冒号表示输出选股结果,通达信会把它当布尔值处理。运行选股后看结果数量:如果每天全市场选中超过一百只,说明条件太松;如果一周只有一两只,说明太严。合理区间通常是每天十到三十只,再叠一层人工筛选。

4.3 信号钝化、假信号和参数过拟合的区分

信号钝化指的是某一段时间信号完全不出,通常发生在市场整体缩量的阶段,VOLSAT始终在 60 上下晃,永远碰不到 80。这时候不要急着把 TH 降到 60,先确认大盘成交量是不是整体萎缩,如果是,那说明指标本身没错,是市场环境不适合这个参数。

假信号是信号出了但后续走势不配合,典型表现是信号当天放量上攻,第二天缩量回落。这类情况单看副图解决不了,需要叠加一层价格结构过滤,比如要求信号出现时CLOSE>MA(CLOSE,M)MA(CLOSE,M)本身是向上走的,也就是均线多头排列。

参数过拟合是最隐蔽的问题。用历史数据反复调参调到「看起来每个启动点都抓住了」,往往意味着参数只对那段历史有效。判断方法很简单:把参数拿到最近三个月完全没参与调参的行情里跑一遍,胜率和信号密度如果掉了一大截,那就是过拟合了。

5. 进阶技巧:避免未来函数与提高跟庄信号胜率

5.1 未来函数的识别与无漂移替换

跟庄擒牛副图里最容易混进来的未来函数是ZIGPEAKTROUGHBACKSETREFX这几个。它们的共同特征是引用了当前周期之后的数据,回测时看着无比精准,实盘用起来信号会漂移甚至消失。判断方法很粗暴:把副图拖到最后一根 K 线,记下信号位置,然后刷新行情再回看,如果信号挪位置了,源码里就有未来函数。

替换思路是把「事后找拐点」改成「事前定窗口」。ZIG找的是局部极值点,但局部极值要在拐点确认之后才能知道;用HHV(HIGH,N)LLV(LOW,N)回看固定窗口,虽然不会那么精准地标在最低点,但至少不会漂。

{有漂移风险:事后才知道的极值} 高拐点:=PEAK(1,10,1); {无漂移替换:固定窗口回看,信号不会变} 高拐点:=HHV(HIGH,10);

5.2 多周期共振与副图联动的写法

单一周期的信号胜率有限,可以用CALLSTOCK把周线数据引进来做共振。日线副图触发擒牛信号时,顺带判断周线级别的资金线是否也为正,两个周期同向的信号,质量通常比单周期高一个档次。

{引用周线收盘价与成交量} 周收:=CALLSTOCK('',VTCLOSE,7,0); {7表示周线周期} 周量:=CALLSTOCK('',VTVOL,7,0); 周均线:=MA(周收,10); 共振:=CLOSE>MA(CLOSE,30) AND 周收>周均线;

CALLSTOCK的第三个参数是周期代码,7 代表周线,6 代表月线,跨周期引用会明显拖慢公式计算速度,副图上挂一两条就够了,不要大面积用。共振这个条件叠加到QN后面,信号数量会砍掉一半左右,但留下来的信号明显更干净。

5.3 源码版本管理与跨平台文本化

很多人在公式管理器里改了几十版,最后自己都记不清哪一版是能用的。养成一个习惯:每次调参或改逻辑之前,先在公式管理器里导出一次源码备份,命名带上日期和参数,比如跟庄擒牛_20240612_N10M30TH80。通达信支持把公式导出成文本文件,这一步比截图管用得多。

副图源码的跨版本兼容也要留意。老版本里能编译的DRAWICON参数编号,换到新版本可能对应另一个图标;STICKLINE的柱宽在不同分辨率下表现也不完全一致。如果发现换机器之后图形变了,先检查公式管理器版本,再对照源码逐行核对函数参数,别急着怀疑逻辑写错了。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询